< 前へ | 次へ >

レッスン 4.3: グループ・ベースの許可の構成

前回のレッスンでは、Java 認証・承認サービス (JAAS) 許可ポリシーを使用して、個々のユーザー・ベースの許可をユーザー・プリンシパルに割り当てました。 しかし、数百または数千のユーザーがある場合、個々のユーザーではなくグループに基づいてアクセス権限を付与する、グループ・ベースの許可を使用します。

残念ながら、WebSphere® Application Server から認証される Subject オブジェクトは、ユーザー・プリンシパルしか含みません。このオブジェクトは、グループ・プリンシパルを含みません。 カスタム・ログイン・モジュールを追加することによって、Subject オブジェクトにグループ・プリンシパルを取り込むことができます。

このチュートリアルでは、カスタム・ログイン・モジュールの名前は com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule です。 このモジュールは groupLM.jar ファイルの中にあります。 この JAR ファイルを、WAS-INSTALL/lib/ext ディレクトリー内に置きます。

WASAddGroupLoginModule は、WebSphere Application Server サブジェクトから公開グループ資格情報を取得し、com.ibm.websphere.samples.objectgrid.security.WSGroupPrincipal というグループ・プリンシパルを作成してそのグループを表します。 その結果、このグループ・プリンシパルをグループ許可のために使用できます。グループは、xsAuthGroup2.policy ファイルの中で定義されます。
grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
		"defaultWIMFileBasedRealm/cn=operatorGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "read";
};

grant codebase "http://www.ibm.com/com/ibm/ws/objectgrid/security/PrivilegedAction"
principal com.ibm.websphere.sample.xs.security.WSGroupPrincipal 
	"defaultWIMFileBasedRealm/cn=adminGroup,o=defaultWIMFileBasedRealm" {
    permission com.ibm.websphere.objectgrid.security.MapPermission "Grid.Map1", "all";
};
プリンシパル名は WSGroupPrincipal で、これはグループを表します。

カスタム・ログイン・モジュールの追加

次のシステム・ログイン・モジュール・エントリーのそれぞれにカスタム・ログイン・モジュールを追加する必要があります。Lightweight Third Party Authentication (LTPA) を使用する場合は、そのエントリーを RMI_INBOUND ログイン・モジュールに追加してください。 LTPA は、WebSphere Application Server バージョン 7.0 のデフォルトの認証メカニズムです。WebSphere Application Server Network Deployment 構成の場合は、LTPA 認証メカニズム構成エントリーを構成すれば十分です。

次のステップを使用して、提供された com.ibm.websphere.samples.objectgrid.security.lm.WASAddGroupLoginModule ログイン・モジュールを構成します。

  1. 管理コンソールで、「セキュリティー」 > 「グローバル・セキュリティー」 > 「Java 認証・承認サービス」 > 「システム・ログイン」 > login_module_name > 「JAAS ログイン・モジュール」 > 「新規」をクリックします。
  2. クラス名として com.ibm.websphere.sample.xs.security.lm.WASAddGroupLoginModule を入力します。
  3. オプション: プロパティー debug を追加し、値を true に設定します。
  4. 適用」をクリックして、新規モジュールをログイン・モジュール・リストに追加します。

JVM プロパティーを使用した JAAS 許可ポリシー・ファイルの設定

管理コンソールで、xsCluster 内の xs1 サーバーと xs2 サーバーに対して次のステップを実行します。別のデプロイメント・トポロジーを使用している場合は、コンテナー・サーバーをホストするアプリケーション・サーバーに対して次のステップを実行します。

  1. 管理コンソールで、「サーバー」 > 「アプリケーション・サーバー」 > server_name > 「Java およびプロセス管理」 > 「プロセス定義」 > 「Java 仮想マシン」をクリックします。
  2. 次の汎用 JVM 引数を入力するか、-Djava.security.auth.policy エントリーを次のテキストで置き換えます。
    -Djava.security.auth.policy=samples_home/security/xsAuthGroup2.policy
  3. OK」をクリックして、変更を保存します。

サンプル・アプリケーションによるグループ許可のテスト

サンプル・アプリケーションを使用して、ログイン・モジュールで構成されたグループ許可をテストできます。

  1. コンテナー・サーバーを再始動します。 このチュートリアルでは、コンテナー・サーバーは、xs1 サーバーおよび xs2 サーバーです。
  2. サンプル・アプリケーションにログインします。 Web ブラウザーで、http://<host>:<port>/EmployeeManagementWeb/management.jsp を開き、ユーザー名を admin1、パスワードを admin1 でログインします。
  3. 従業員を表示します。Display an Employee」をクリックして、E メール・アドレス authemp2@acme.com を検索します。ユーザーが見つからないというメッセージが表示されます。
  4. 従業員を追加します。Add an Employee」をクリックします。 E メール・アドレス「authemp2@acme.com」、名「Joe」、および姓「Doe」を追加し、「Submit」をクリックします。 従業員が追加されたというメッセージが表示されます。
  5. オペレーター・ユーザーとしてログインします。 2 つ目の Web ブラウザー・ウィンドウを開いて、URL http://<host>:<port>/EmployeeManagermentWeb/management.jsp を開きます。 ユーザー名に operator1、パスワードに operator1 を使用します。
  6. 従業員を表示してみます。Display an Employee」をクリックして、E メール・アドレス authemp2@acme.com を検索します。従業員が表示されます。
  7. 従業員を追加します。Add an Employee」をクリックします。 E メール・アドレス「authemp3@acme.com」、名「Joe」、および姓「Doe」を追加し、「Submit」をクリックします。次のメッセージが表示されます。
    An exception occurs when Add the employee. See below for detailed exception messages.
    次の例外が例外チェーンに入っています。
    java.security.AccessControlException: Access denied 
    (com.ibm.websphere.objectgrid.security.MapPermission Grid.Map1 insert)
    オペレーター・ユーザーには、 データを Map1 マップに挿入する許可がないため、このメッセージが表示されます。

レッスンのチェックポイント

アプリケーションのユーザーに対する許可の割り当てを簡単にするために、グループを構成しました。

< 前へ | 次へ >