Java Authentication and Authorization Service のログイン構成

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 に次のような拡張機能を提供します。

  • com.ibm.websphere.security.auth.WSSubject: com.ibm.websphere.security.auth.WSSubject API は、 JAAS 許可モデルを Java 2 Platform, Enterprise Edition (J2EE) リソースに拡張します。 JAAS ログインは、管理コンソールで、またはスクリプト関数を使用して、構成可能であり、 この構成を WebSphere Application Server 構成 API に 保管することができます。しかし、WebSphere Application Server は現在でも、 JAAS のデフォルト実装が提供するデフォルトの JAAS ログイン 構成フォーマット (プレーン・テキスト・ファイル) をサポートしています。 重複ログイン構成が WebSphere Application Server 構成 API とプレーン・テキスト・ファイル・フォーマットの両方で定義されている場合は、WebSphere Application Server 構成 API で定義された構成が優先されます。 ログイン構成を WebSphere 構成 API で定義することには、次のような利点があります。
    • JAAS ログイン構成を定義する際の、ユーザー・インターフェースのサポート
    • JAAS ログイン構成の集中管理
    • WebSphere Application Server Network Deployment 製品のインストールにおける 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 リソースに拡張します。

    WebSphere Application Server に独自のサブジェクト・クラスがある理由: Subject.getSubject 呼び出しを使用して、Subject.doAs ブロック内のサブジェクトが取得できます。 ただし、Subject.doAs ブロック内に AccessController.doPrivileged 呼び出しが 含まれていると、このプロシージャーは機能しません。次の例では、s1 は s と等しくなりますが、s2 はヌルです。
    * 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;
    }
    });
  • JAAS ログイン構成は、管理コンソールで、またはスクリプト関数を使用して、構成可能であり、 WebSphere Application Server 構成リポジトリーに保管することができます。 アプリケーションは、管理コンソールで新規 JAAS ログイン構成を定義でき、 WebSphere Application Server 構成 API に保管されるデータを、構成リポジトリーに保持します。しかし、 WebSphere Application Server は現在でも、JAAS のデフォルト実装が提供する デフォルトの JAAS ログイン構成フォーマットをサポートしています。 重複ログイン構成が WebSphere Application Server 構成 API とプレーン・テキスト・ファイル・フォーマットの両方で定義されている場合は、WebSphere Application Server 構成 API で定義された構成が優先されます。ログイン構成を WebSphere Application Server 構成 API で定義することには、 次のような利点があります。
    • JAAS ログイン構成を定義する際に、UI をサポートします。
    • JAAS 構成のログイン構成は、中央で管理することができます。
    • JAAS 構成のログイン構成は、WebSphere Application Server Network Deployment システムに分散されます。
  • Proxy LoginModule: Proxy.LoginModule は、システム・クラス・ローダーの代わりにモジュールをロードするためにコンテキスト・クラス・ローダーが使用する、構成されたユーザーまたはシステム定義のモジュールに対するプロキシーです。 デフォルトの JAAS 実装は、クラスをロードする際にスレッド・コンテキスト・クラス・ローダーを使用しません。 LoginModule クラス・ファイルがアプリケーション・クラス・ローダー・クラスパス、または Java 拡張のクラス・ローダー・クラスパスにない場合は、LoginModule モジュールはロードできません。WebSphere Application Server は、 スレッド・コンテキスト・クラス・ローダーを使用して JAAS LoginModule をロードするための、 プロキシー LoginModule モジュールを提供しています。LoginModule 実装を、 このプロキシー LoginModule モジュールとともに、アプリケーション・クラス・ローダー・クラスパス、 または Java 拡張のクラス・ローダー・クラスパスに配置する必要はありません。
ヒント: 事前定義 JAAS ログイン構成 (ClientContainer、WSLogin、および DefaultPrincipalMapping) は、除去または削除しないでください。 これらを削除または除去すると、他のエンタープライズ・アプリケーションが失敗する恐れがあります。

システム管理者は、各アプリケーションで使用するための認証テクノロジーまたはログイン・モジュールを決定し、 それらをログイン構成内に構成します。構成情報のソース (ファイル、データベースなど) は、 現行の javax.security.auth.login.Configuration 実装により 決まります。WebSphere Application Server 実装により、 WebSphere Application Server 構成 API セキュリティー資料と、JAAS 構成ファイルの両方に、 ログイン構成の定義が許可されますが、前者のほうが優先されます。

JAAS ログイン構成は、 使用するアプリケーションの WebSphere Application Server 構成の API セキュリティー文書で定義されています。 構成にアクセスするには、以下のステップを実行します。
  1. 「セキュリティー」 > 「グローバル・セキュリティー」をクリックします。
  2. 「Java Authentication and Authorization Service」の下の「アプリケーション・ログイン」をクリックします。

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 ログイン構成エントリーは、サーバー・ランタイムからは除去されません。 エントリーを除去するには、新しい構成を保存した後、サーバーを停止して再始動します。

インフォメーション・センターのサンプルには、WebSphere Application Server で JAAS を使用する方法を 示す JAAS ログインのサンプルが入っています。 このサンプルは、JAAS によるサーバー側のログインを使用して、WebSphere Application Server のセキュリティー・ランタイムによりユーザーを認証します。 サンプルでは以下のテクノロジーを示しています。
  • Java 2 Platform, Enterprise Edition (J2EE) Java Authentication and Authorization Service (JAAS)
  • JAAS for WebSphere Application Server
  • WebSphere Application Server セキュリティー
このフォーム・ログイン・サンプルは、テクノロジー・サンプルのコンポーネントです。

トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_logmod
ファイル名:rsec_logmod.html