Java Authentication and Authorization Service (JAAS) は、 WebSphere Application Server の新しいフィーチャーです。JAAS は、WebSphere Application Server の 戦略的な認証用アプリケーション・プログラミング・インターフェース (API) で、 Common Object Request Broker Architecture (CORBA) プログラマチック・ログイン API に代わるものです。
WebSphere Application Server は、JAAS に次のような拡張機能を提供します。
JAAS 1.0 の設計上のミスにより、javax.security.auth.Subject.getSubject メソッドは、 java.security.AccessController.doPrivileged コード・ブロック内の実行スレッドに 関連付けられているサブジェクトを戻しません。このアクションにより矛盾した振る舞いが起こることがあり、 それがさまざまな問題の原因となります。com.ibm.websphere.security.auth.WSSubject 拡張は、 サブジェクトを実行スレッドに関連付ける予備手段を提供します。com.ibm.websphere.security.auth.WSSubject 拡張は、 JAAS 許可モデルを J2EE リソースに拡張します。
* AccessController.doPrivileged() not only truncates the Subject propagation, * but also reduces the permissions. It does not include the JAAS security * policy defined for the principals in the Subject. Subject.doAs(s, new PrivilegedAction() { public Object run() { System.out.println("Within Subject.doAsPrivileged()"); Subject s1 = Subject.getSubject(AccessController.getContext()); AccessController.doPrivileged(new PrivilegedAction() { public Object run() { Subject s2 = Subject.getSubject(AccessController.getContext()); return null; } }); return null; } });
システム管理者は、各アプリケーションで使用するための認証テクノロジーまたはログイン・モジュールを決定し、 それらをログイン構成内に構成します。構成情報のソース (ファイル、データベースなど) は、 現行の javax.security.auth.login.Configuration インプリメンテーションにより 決まります。WebSphere Application Server インプリメンテーションにより、 WebSphere Application Server 構成 API セキュリティー資料と、JAAS 構成ファイルの両方に、 ログイン構成の定義が許可されますが、前者のほうが優先されます。
WSLogin モジュールは、一般にアプリケーションが使用できるログイン構成 および LoginModule インプリメンテーションを定義します。
ClientContainer モジュールは、 ログイン構成および LoginModule インプリメンテーションを定義します。 このインプリメンテーションは WSLogin モジュールに似ていますが、 WebSphere Application Server クライアント・コンテナーの要件を実行します。
DefaultPrincipalMapping モジュールは、 認証済みの WebSphere Application Server ユーザー ID を、指定したバックエンド・エンタープライズ情報システム (EIS) 用の ユーザー認証データのセット (ユーザー ID とパスワード) へマップするために、 通常 Java 2 コネクターによって使用される特別な LoginModule モジュールを定義します。Java 2 コネクター および DefaultMappingModule についての詳細は、『Java 2 セキュリティー』のセクションを参照してください。
新規 JAAS ログイン構成は、管理コンソールを使用して追加および変更できます。変更は セル・レベル・セキュリティー文書に保管され、 すべての管理対象アプリケーション・サーバーで使用可能です。実行時に変更を有効にし、 クライアント・コンテナー・ログイン構成を使用可能にするには、アプリケーション・サーバーの再始動が必要です。
また、WebSphere Application Server は、WebSphere Application Server がインストールされている ルート・ディレクトリーの properties サブディレクトリーにある wsjaas.conf ファイルから、 JAAS 構成情報を読み取ります。wsjaas.conf ファイルに加えた変更は、 ローカル・アプリケーション・サーバーによってのみ使用され、 アプリケーション・サーバーの再始動後に有効になります。WebSphere Application Server 構成 API セキュリティー 文書内の JAAS 構成の方が、wsjaas.conf ファイルで定義した構成よりも優先されます。 wsjaas.conf 内の構成エントリーは、WebSphere Application Server 構成 API セキュリティー文書内の 同じ別名のエントリーによってオーバーライドされます。
管理コンソールでの Java Authentication and Authorization Service (JAAS) ログイン構成エントリーは、 構成の保管時ではなく作成時に、サーバー・ランタイムに伝搬されます。 ただし、削除された JAAS ログイン構成エントリーは、サーバー・ランタイムからは除去されません。 エントリーを除去するには、新しい構成を保管した後、サーバーを停止して再始動します。