Web アプリケーションを構成するために、基本認証、
フォーム・ベースの認証、クライアント証明書ベースの認証という 3 つのタイプの Web ログイン認証メカニズムを使用することができます。
Web アプリケーション内の Web リソースは、それらのリソースにセキュリティー役割を
割り当てることにより保護します。
このタスクについて
Web アプリケーションを保護するために、保護の必要な Web リソースを判別し、
それらを保護する方法を決定しておきます。
注: この手順は、
アセンブリー・ツールを使用する場合に必要なステップ、または使用しているアセンブリー・ツールのバージョンに一致しない可能性があります。
ご使用のツールおよびバージョンに応じた指示に従う必要があります。
以下のステップでは、アセンブリー・ツールを使用して Web アプリケーションを保護する
方法を詳しく説明します。
プロシージャー
- アセンブリー・ツールで、1 つ以上の Web モジュールを含んでいる、
Web アーカイブ (WAR) ファイルまたはアプリケーション・アーカイブ (EAR) ファイルをインポートします。
詳しくは、Application Server Toolkit の文書の『Importing Web archive (WAR) files』および『Importing an enterprise application EAR file』を参照してください。
- Project Explorer フォルダーで、Web アプリケーションを探します。
- デプロイメント記述子を右クリックし、「Open With」>「Deployment Descriptor Editor」をクリックします。 「デプロイメント記述子」ウィンドウが開きます。エディターのオンライン情報を参照するには、
F1 を押して、エディター名をクリックします。 Web アーカイブ (WAR) ファイルを選択すれば、
Web デプロイメント記述子エディターが開きます。エンタープライズ・アプリケーション (EAR) ファイル
を選択すれば、アプリケーション・デプロイメント記述子エディターが開きます。
- アプリケーション・レベルまたは Web モジュール・レベルで
セキュリティー役割を作成します。 セキュリティー役割が Web モジュール・レベルで作成される場合は、
役割もアプリケーション・レベルで表示されます。
セキュリティー役割がアプリケーション・レベルで作成される場合、
役割はすべての Web モジュールで表示されません。
アプリケーション・レベルでセキュリティー役割をコピーして 1 つ以上の Web モジュール・セキュリティー役割に貼り付けることができます。
- Web モジュール・レベルで役割を作成します。Web デプロイメント記述子エディターで、
「セキュリティー」タブをクリックします。「セキュリティー役割」の下で、「追加」をクリックします。セキュリティー役割名を入力し、
セキュリティー役割の説明を入力して、「終了」をクリックします。
- アプリケーション・レベルで役割を作成します。アプリケーション・デプロイメント記述子エディターで、
「セキュリティー」タブをクリックします。セキュリティー役割のリスト下で、「追加」をクリックします。
「セキュリティー役割の追加」
ウィザードで、セキュリティー役割に名前を付け、記述します。次に「終了」をクリックします。
- セキュリティー制約を作成します。セキュリティー制約は、1 つ以上の Web リソースを役割のセットにマップすることです。
- Web デプロイメント記述子エディターの「セキュリティー」タブで
「セキュリティー制約」をクリックします。 「セキュリティー制約」タブでは、
以下のアクションを行うことができます。
- 「セキュリティー制約」の下で、「追加」をクリックします。
- 「Constraint name」の下で、セキュリティー制約の表示名を指定し、
「次へ」をクリックします。
- Web リソース・コレクションの名前と記述を入力します。
- 1 つ以上の HTTP メソッドを選択します。 HTTP メソッドのオプションは、
GET、PUT、HEAD、TRACE、POST、DELETE、および OPTIONS です。
- 「Patterns」フィールドの横の「追加」をクリックします。
- URL パターンを指定します。 例えば、- /*,
*.jsp, /hello のように入力します。URL パターンのサーブレットへのマッピングの説明については、
サーブレット仕様バージョン 2.4 を参照してください。セキュリティー・ランタイムは、最初に完全一致を使用して、着信 URL を URL パターンとマップします。
完全一致が存在しない場合、セキュリティー・ランタイムは最長一致を使用します。ワイルドカード (*.、*.jsp) を使用した URL パターンのマッチング
は、最後に使用されます。
- 「終了」をクリックします。
- これまでのステップを繰り返して、複数のセキュリティー制約を作成します。
- security-role-ref エレメントおよび role-name エレメントを
role-link エレメントにマップします。
Web アプリケーションの開発時に、security-role-ref エレメントを作成できます。
security-role-ref エレメントは、role-name フィールドのみを含んでいます。
role-name フィールドは、役割の名前を含んでいます。
この役割の名前は、サーブレットまたは JavaServer Pages (JSP) コード内で参照されて、
指定された役割内に呼び出し元があるかどうかを判別します。
セキュリティー役割はアセンブリー段階で作成されるため、
開発者は「role-name」フィールドで論理役割名を使用し、アセンブラー
の「説明」フィールドに十分な説明を記述して、実際の役割をマップします。security-role-ref エレメントはサーブレット・レベルにあります。
サーブレットまたは JavaServer Pages (JSP) ファイルは、ゼロ個以上の security-role-ref エレメント
を保有できます。
- Web デプロイメント記述子エディターの「参照」タブにジャンプします。
「参照」タブで、デプロイメント記述子へのエンタープライズ Bean 参照の
名前を追加または除去できます。このタブで、5 つのタイプの参照を定義することができます。
- EJB 参照 (EJB reference)
- サービス参照
- リソース参照
- メッセージ宛先参照
- セキュリティー役割参照
- リソース環境参照
- Enterprise JavaBeans (EJB) 参照のリストの下で、「追加 」をクリックします。
- 「名前」および「参照タイプ」フィールドで、参照の名前と
タイプを指定します。
- 「Enterprise Beans in the workplace」または「Enterprise
Beans not in the workplace」のいずれかを選択します。
- オプション: 「Enterprise Beans not
in the workplace」を選択した場合は、「タイプ」フィールドで EnterpriseBean のタイプ
を選択します。
エンティティー Bean またはセッション Bean のいずれかを指定できます。
- オプション: 「参照」をクリックして、
「ローカル・ホーム」および「ローカル」フィールドで、ローカル・ホームおよび
ローカル・インターフェースの値を指定してから、「次へ」をクリックします。
- 開発中に使用される role-name をすべて、上記のステップを使用して
役割にマップします。 これで、開発中に使用されるすべての
役割名が実際の役割にマップされました。
- サーブレットおよび JSP ファイルの RunAs ID を指定します。 サーブレットの RunAs ID は、サーブレット・コード内からエンタープライズ Bean を
呼び出すために使用されます。エンタープライズ Bean が呼び出されると、RunAs ID はエンタープライズ Bean に渡されて、エンタープライズ Bean 上で許可検査が実行されます。
RunAs ID が指定されていないと、クライアントの ID がエンタープライズ Bean に伝搬されます。
RunAs ID は、サーブレット・レベルで割り当てられます。
- Web デプロイメント記述子エディターの「サーブレット」タブの「Servlets and JSP」の下で、
「追加」をクリックします。「Add Servlet or JSP」ウィザードが開きます。
- 名前、初期化パラメーター、および URL マッピングなどの
サーブレットまたは JavaServer Pages (JSP) ファイル設定を指定し、「次へ」をクリックします。
- クラス・ファイルの宛先を指定します。
- 「次へ」をクリックして追加設定を指定するか、
「完了」をクリックします。
- 「サーブレット」タブの「Run As」をクリックし、セキュリティー役割を選択して、
役割の説明を入力します。
- Web アプリケーションが使用する各サーブレットおよび JSP ファイルの RunAs ID を指定します。
- Web モジュールのログイン・メカニズムを構成します。この構成されたログイン・メカニズムは、
Web モジュール内のすべてのサーブレット、JavaServer Pages (JSP)
ファイル、および HTML リソースに適用されます。
- Web デプロイメント記述子エディターの「ページ」タブで「ログイン」をクリックします。必要な認証メソッドを選択します。 有効なメソッドの値は、Unspecified、Basic、Digest、Form、および Client-Cert です。
- レルム名を指定します。
- フォーム認証メソッドを選択する場合は、「ログイン」ページおよび「エラー」ページの Web アドレスを選択します。
例えば、/login.jsp or /error.jsp を使用できます。
指定されたログイン・ページおよびエラー・ページは、.war ファイル内にあります。
- ClientCert 証明書が選択されている場合は、
ブラウザーの Web クライアントにクライアント証明書をインストールし、
クライアント証明書をサーバーのトラスト鍵リング・ファイルに入れます。
クライアント認証書の公開証明書を、サーバーの RACF 鍵リングに
入れる必要があります。レジストリーがローカル OS レジストリーである場合は、RACDCERT MAP または
同等の System Authorization Facility (SAF) コマンドを使用して、クライアント証明書を
使用して MVS ID 作成を使用可能にします。
- デプロイメント記述子エディターを閉じ、プロンプトが出された場合は、
「はい」をクリックして変更を保管します。
結果
Web アプリケーションを保護すると、結果としての Web アーカイブ (WAR) ファイルのデプロイメント記述子には、
セキュリティー情報が格納されます。
Web モジュール・セキュリティー情報は、web.xml ファイルに保管されます。Web デプロイメント記述子エディター
で作業する場合、Web プロジェクト内で他のデプロイメント記述子を
編集することもできます (ibm-web-bnd.xmi および ibm-web-ext.xmi ファイル内の
バインディングおよび IBM 機能拡張の情報を含む)。
次の作業
アセンブリー・ツールを使用して Web アプリケーションを保護すると、
管理コンソールを使用して Web アプリケーションをインストールすることができます。Web アプリケーションのインストール中に、
セキュア・アプリケーションのデプロイ
のステップを完了して、Web アプリケーションの保護を終了します。