セキュリティとはデータの保護に関することであり、保存または伝送中にデータへの不正なアクセスやデータの損傷を防止する方法です。Application Server には、J2EE 標準に基づく動的で拡張可能なセキュリティアーキテクチャがあります。標準実装されているセキュリティ機能には、暗号化、認証と承認、および公開鍵インフラストラクチャがあります。Application Server は Java セキュリティモデルをベースに構築され、アーキテクチャが安全に動作できるサンドボックスを使用するため、システムやユーザーにリスクが及ぶ可能性がありません。説明する項目は次のとおりです。
概して、2 種類のアプリケーションセキュリティがあります。
deploytool などのツールで編集することによって操作できます。配備記述子はアプリケーションの開発後に変更可能なので、宣言によるセキュリティの方が柔軟性に富んでいます。アプリケーションによるセキュリティのほかに、Application Server システムのアプリケーション全体に影響するシステムセキュリティもあります。
プログラムによるセキュリティはアプリケーション開発者により制御されるため、このマニュアルでは説明していません。宣言によるセキュリティについては、このマニュアルである程度説明しています。このマニュアルは、主にシステム管理者を対象としているため、システムセキュリティを中心に説明しています。
Application Server には次のセキュリティ管理用ツールがあります。
asadmin。多くの管理コンソールと同じタスクを行うコマンド行ツール。管理コンソールからできない操作でも、asadmin を使用して操作できる場合があります。コマンドプロンプトまたはスクリプトのいずれかから asadmin コマンドを実行して、繰り返しのタスクを自動化します。asadmin の一般的な基本情報については、「管理用ツール」を参照してください。deploytool。個別のアプリケーションセキュリティを制御するために、アプリケーション配備記述子を編集するグラフィカルパッケージ化ツールおよび配備ツール。deploytool はアプリケーション開発者を対象にしているため、このマニュアルでは使用方法を詳細に説明しません。deploytool の使用手順については、ツールのオンラインヘルプおよび http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html の『J2EE 1.4 Tutorial』を参照してください。Java 2 プラットフォーム、J2SE (Java 2 Standard Edition) には、次の 2 つのセキュリティ管理用ツールがあります。
keytool。デジタル証明書および鍵のペアの管理に使用するコマンド行ユーティリティ。keytool は、certificate レルムのユーザー管理に使用します。policytool。システム全体の Java セキュリティポリシー管理に使用するグラフィカルユーティリティ。管理者が、policytool を使用することはほとんどありません。
keytool、policytool、およびほかの Java セキュリティツールの使用方法の詳細については、http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#security の『Java 2 SDK Tools and Utilities』を参照してください。
Application Server の今回のリリースの場合、ファイル domain.xml には特定のドメインの仕様が収められ、最初に平文で IMQ ブローカのパスワードが収められています。このパスワードを収めた domain.xml ファイルの要素は、jms-host 要素の admin-password 属性です。このパスワードは変更不可能なので、インストールの際、セキュリティに重大な影響は与えません。
ただし、管理コンソールを使用してユーザーやリリースを追加し、このユーザーやリリースにパスワードを割り当ててください。このパスワードの中には、たとえばデータベースにアクセスするためのパスワードなど、平文で domain.xml ファイルに記述されているものがあります。このようなパスワードを平文で domain.xml ファイルに保持すると、セキュリティ上の危険を引き起こす可能性があります。次の手順を実行すると、admin-password 属性やデータベースパスワードを含む domain.xml のすべてのパスワードを暗号化できます。
domain.xml ファイルがあるディレクトリ (デフォルトでは install_dir/domains/domain_dir/config) から、次の asadmin コマンドを実行します。
asadmin create-password-alias <エイリアス名>
次に例を示します。
asadmin create-password-alias jms-password
パスワードプロンプトが表示されます。この場合は admin です。詳細については、create-password-alias、list-password-aliases、delete-password-alias コマンドのマニュアルページを参照してください。
domain.xml のパスワードの削除および置き換えを行います。これは、asadmin set コマンドを使用して行います。この目的の set コマンドの使用例は次のとおりです。
asadmin set
server.jms-service.jms-host.default_JMS_host.admin-password=${ALIAS=
jms-password}
ファイルの中にはエンコード化されたパスワードを含むものがあり、ファイルシステムのアクセス権を使用しての保護が必要になります。これらのファイルには次のものが含まれます。
/domains/domain_dir/master-passwordこのファイルにはエンコード化されたマスターパスワードが含まれているので、ファイルシステムのアクセス権 600 で保護する必要があります。
--passwordfile 引数を使用する引数として、asadmin へ渡すために作成されたすべてのパスワードファイルは、ファイルシステムのアクセス権 600 で保護する必要があります。マスターパスワード (MP) とは、全体で共有するパスワードです。これを認証に使用したり、ネットワークを介して送信したりすることは決してありません。このパスワードはセキュリティ全体の要なので、ユーザーが必要に応じて手動で入力したり、またはファイルに隠蔽したりすることができます。これは、システムで最高の機密データです。ユーザーは、このファイルを削除することで、強制的に MP の入力を要求できます。マスターパスワードが変更されると、マスターパスワードキーストアに再保存されます。
マスターパスワードを変更するには、次の手順に従う必要があります。
asadmin change-master-password コマンドを使用して、依存するすべての項目を再暗号化してください。次に例を示します。
asadmin change-master-password>
Please enter the master password>
Please enter the new master password>
Please enter the the new master password again>
警告: この時点で、実行中のサーバーインスタンスを開始してはいけません。対応するノードエージェントの SMP が変更されるまでは、決して実行中のサーバーインスタンスを再起動しないでください。SMP が変更される前にサーバーインスタンスを再起動すると、起動に失敗します。
asadmin change-master-password コマンドをもう一度実行して、ノードエージェントおよび関連するサーバーを再起動してください。
管理パスワードの暗号化については、「「パスワードのセキュリティ管理」」で説明されています。管理パスワードの暗号化は強く推奨されています。管理パスワードを暗号化する前に変更する場合は、asadmin set コマンドを使用してください。この目的の set コマンドの使用例は次のとおりです。
asadmin set
server.jms-service.jms-host.default_JMS_host.admin-password=new_pwd
管理パスワードは、管理コンソールを使用しても変更できます。管理コンソールを使用して管理パスワードを変更するには、次の手順に従います。
admin-realm」ノードを選択します。admin という名前のユーザーを選択します。セキュリティの責任は次のように割り当てます。
アプリケーション開発者は次の責任を負います。
アプリケーション開発者は、deploytool などのツールを使用してアプリケーション配備記述子を編集できます。このセキュリティタスクの詳細については、次の URL に掲載されている『The J2EE 1.4 Tutorial』の「Security」の章で説明しています。
アプリケーション配備担当者は次の責任を負います。
アプリケーション配備担当者は、deploytool などのツールを使用してアプリケーション配備記述子を編集できます。このセキュリティタスクの詳細については、次の URL に掲載されている『The J2EE 1.4 Tutorial』の「Security」の章で説明しています。
システム管理者は次の責任を負います。
システム管理者は、管理コンソールを使用してサーバーセキュリティの設定を管理し、keytool を使用して証明書を管理します。このマニュアルは主にシステム管理者を対象にしています。