Web アプリケーションを構成するために、基本認証、
フォーム・ベースの認証、クライアント証明書ベースの認証という 3 つのタイプの Web ログイン認証メカニズムを使用することができます。
Web アプリケーション内の Web リソースは、それらのリソースにセキュリティー・ロールを
割り当てることにより保護します。
このタスクについて
Web アプリケーションを保護するために、保護の必要な Web リソースを判別し、
それらを保護する方法を決定しておきます。
注: この手順は、
アセンブリー・ツールを使用する場合に必要なステップ、または使用しているアセンブリー・ツールのバージョンに一致しない可能性があります。
ご使用のツールおよびバージョンに応じた指示に従う必要があります。
以下のステップでは、アセンブリー・ツールを使用して Web アプリケーションを保護する
方法を詳しく説明します。
手順
- アセンブリー・ツールで、1 つ以上の Web モジュールを含んでいる、
Web アプリケーション・アーカイブ (WAR) ファイルまたはアプリケーション・アーカイブ (EAR) ファイルをインポートします。
- Project Explorer フォルダーで、Web アプリケーションを探します。
- デプロイメント記述子を右クリックし、「アプリケーションから開く」>「デプロイメント記述子エディター」をクリックします。 「デプロイメント記述子」ウィンドウが開きます。エディターのオンライン情報を参照するには、
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 または /error.jsp を使用できます。
指定されたログイン・ページおよびエラー・ページは、.war ファイル内にあります。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
「ClientCert」が選択されている場合は、ブラウザーまたは Web クライアントに
クライアント証明書をインストールし、クライアント証明書をサーバーの
トラスト鍵リング・ファイルに入れます。
「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® 機能拡張の情報を含む)。
サポートされる構成: IBM 拡張ファイル
およびバインディング・ファイルの場合、.xmi または .xml ファイル名拡張子は、Java EE 5 より前のアプリケーションまたはモジュールを使用しているか、
あるいは Java EE 5 以降のアプリケーションまたは
モジュールを使用しているかによって異なります。IBM 拡張
ファイルまたはバインディング・ファイルは、ibm-*-ext.xmi または ibm-*-bnd.xmi という名前です。
ここで * は拡張ファイルまたはバインディング・ファイルのタイプ (app、application、ejb-jar、
または web など) です。以下の条件が適用されます。
- バージョン 5 より前の Java EE バージョンを使用するアプリケーションまたはモジュールの場合、ファイル拡張子は .xmi でなければなりません。
- Java EE 5 以降を使用するアプリケーションまたはモジュールの場合、ファイル拡張子は .xml でなければなりません。.xmi ファイルがアプリケーションまたはモジュールに組み込まれている場合、.xmi ファイルは無視されます。
ただし、Java EE
5 以降のモジュールが、Java EE 5 より前のファイルを含み .xmi ファイル名拡張子を使用する
アプリケーション内に存在することは可能です。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi、
および ibm-portlet-ext.xmi ファイルは、引き続き .xmi ファイル拡張子
を使用します。
sptcfg
次のタスク
アセンブリー・ツールを使用して Web アプリケーションを保護すると、
管理コンソールを使用して Web アプリケーションをインストールすることができます。Web アプリケーションのインストール中に、
セキュア・アプリケーションのデプロイのステップを完了して、Web アプリケーションの保護を終了します。