WebSphere Application Server - Express for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

Java Authentication and Authorization Service のプログラマチック・ログインの構成

新規 JAAS ログイン構成は、管理コンソールを使用して追加および変更できます。変更は セル・レベル・セキュリティー文書に保管され、 すべての管理対象アプリケーション・サーバーで使用可能です。

始める前に

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 は現在でも、JAAS のデフォルト・インプリメンテーションが提供するデフォルトの JAAS ログイン構成フォーマット (プレーン・テキスト・ファイル) をサポートしています。 重複ログイン構成が WebSphere Application Server 構成 API とプレーン・テキスト・ファイル・フォーマットの両方で定義されている場合は、WebSphere Application Server 構成 API で定義された構成が優先されます。ログイン構成を WebSphere 構成 API で定義することには、次のような利点があります。
    • JAAS ログイン構成を定義する際の、ユーザー・インターフェースのサポート
    • JAAS ログイン構成の集中管理
    JAAS バージョン 1.0 の設計上のミスにより、javax.security.auth.Subject.getSubject メソッドは、java.security.AccessController.doPrivileged コード・ブロック内の実行スレッドに関連付けられているサブジェクトを戻しません。 この問題のため、矛盾した動作が起こることがあり、それが望ましくない結果となることがあります。 com.ibm.websphere.security.auth.WSSubject API は、サブジェクトを実行スレッドに関連付ける予備手段を提供します。
  • Proxy LoginModule。Proxy LoginModule は実際の LoginModule モジュールをロードします。 デフォルトの JAAS インプリメンテーションは、クラスをロードする際にスレッド・コンテキスト・クラス・ローダーを使用しません。 LoginModule モジュールは、LoginModule クラス・ファイルがアプリケーション・クラス・ローダー・クラスパス、または Java 拡張クラス・ローダー・クラスパスにない場合は、ロードできません。このクラス・ローダーの 可視性の問題のため、WebSphere Application Server は、スレッド・コンテキスト・クラス・ローダーを使用 して JAAS LoginModule をロードするための、プロキシー LoginModule モジュールを 提供しています。LoginModule インプリメンテーションを、このプロキシー LoginModule モジュールとともに、 アプリケーション・クラス・ローダー、または Java 拡張クラス・ローダーのクラスパスに配置する必要はありません。

    Proxy LoginModule モジュールを使用しない場合は、 /QIBM/UserData/Java400/ext/ ディレクトリーに LoginModule モジュールを配置して、Java 拡張ディレクトリーのクラスパスに追加できます。 また *PUBLIC *RX 認可をファイルに与えます。 ただし、ファイルを /QIBM/UserData/Java400/ext/ ディレクトリーに追加する場合は、ファイルがオペレーティング・システム全体にアクセス可能な Java 拡張ディレクトリーのデフォルトのクラスパスにも追加されることになります。

JAAS ログイン構成は、WebSphere Application Server 構成アプリケーション・プログラミング・インターフェース (API) セキュリティー文書に定義されています。「セキュリティー」>「管理、アプリケーション、およびインフラストラクチャーの保護」をクリックします。 「Java Authentication and Authorization Service」の下の「アプリケーション・ログイン」をクリックします。次の JAAS ログイン構成が使用可能です。

ClientContainer
ログイン構成および LoginModule インプリメンテーションを定義します。 このインプリメンテーションは WSLogin 構成のインプリメンテーションと似ていますが、 WebSphere Application Server クライアント・コンテナーの要件を強制します。詳しくは、Java Authentication and Authorization Service 用のエントリー設定の構成 を参照してください。
DefaultPrincipalMapping
認証済みの WebSphere Application Server ユーザー ID を、指定したバックエンド・エンタープライズ情報システム (EIS) 用のユーザー認証データのセット (ユーザー ID およびパスワード) にマップするために、通常 J2EE コネクターが使用する 特別な LoginModule モジュールを定義します。 J2EE コネクターおよび DefaultMappingModule モジュールについての詳細は、『J2EE セキュリティー』のセクションを参照してください。
WSLogin
一般にアプリケーションによって使用されるログイン構成 および LoginModule インプリメンテーションを定義します。

新規 JAAS ログイン構成は、管理コンソールを使用して追加および変更できます。変更は セル・レベル・セキュリティー文書に保管され、 すべての管理対象アプリケーション・サーバーで使用可能です。実行時に変更を有効にするには、アプリケーション・サーバーの再始動が必要です。

重要: 事前定義 JAAS ログイン構成 (ClientContainer、WSLogin、および DefaultPrincipalMapping など) は、除去または削除しないでください。 これらを削除または除去すると、他のエンタープライズ・アプリケーションが失敗する恐れがあります。

プロシージャー

  1. JAAS ログイン構成を削除します。
    1. セキュリティー」>「管理、アプリケーション、およびインフラストラクチャーの保護」をクリックします。
    2. 「Java Authentication and Authorization Service」の下の「アプリケーション・ログイン」をクリックします。 「アプリケーション・ログイン構成」パネルが表示されます。
    3. 削除対象であるログイン構成のチェック・ボックスを選択して、「削除」をクリックします。
  2. 新規 JAAS ログイン構成を作成します。
    1. セキュリティー」>「管理、アプリケーション、およびインフラストラクチャーの保護」をクリックします。
    2. 「Java Authentication and Authorization Service」の下の「アプリケーション・ログイン」をクリックします。
    3. 新規」をクリックします。 「アプリケーション・ログイン構成」パネルが表示されます。
    4. 新規 JAAS ログイン構成のエイリアス名を指定して、「 適用」をクリックします。 この値は、新規の LoginContext コンテキストを作成する際に javax.security.auth.login.LoginContext インプリメンテーションに渡すログイン構成の名前です。

      適用」をクリックして変更を保管し、オリジナルのエイリアス名の前にノード名を追加してください。「OK」をクリックしても、security.xml ファイルに新しく加えた変更は保管されません。

    5. 「追加プロパティー」の下の「JAAS ログイン・モジュール」をクリックします。
    6. 新規」をクリックします。
    7. 「モジュール・クラス名」を指定します。 クラス・ローダーの可視性問題の制限のため、 WebSphere Application Server プロキシーの LoginModule モジュールを指定します。
    8. Proxy LoginModule モジュールの代行プロパティーとして、LoginModule インプリメンテーションを指定します。 WebSphere Application Server プロキシー LoginModule のクラス名は、com.ibm.ws.security.common.auth.module.proxy.WSLoginModuleProxy です。
    9. リストから「認証ストラテジー」を選択して、「適用」をクリックします。
    10. 「追加プロパティー」の下の「カスタム・プロパティー」をクリックします。 選択した LoginModule の「カスタム・プロパティー」パネルが表示されます。
    11. delegate という名前の新規プロパティーを作成して、 その値を実際の LoginModule インプリメンテーションにします。 他のプロパティー (debug など) には、 値「true」を指定してかまいません。 これらのプロパティーは、LoginModule インスタンスの initialize メソッドのオプションとして、LoginModule クラスに渡されます。
    12. 保管」をクリックします。
    WebSphere Application Server ディレクトリー構造には、 JAAS ログイン・モジュールを配置できるロケーションがいくつかあります。 次のリストには、JAAS ログイン・モジュールのロケーションが、推奨順に示されています。
    • 特定の Java 2 Platform, Enterprise Edition (J2EE) アプリケーション用エンタープライズ・アーカイブ (EAR) ファイル内。

      EAR ファイル内にログイン・モジュールを配置すると、特定のアプリケーションのみがログイン・モジュールにアクセス可能になります。

    • WebSphere Application Server 共用ライブラリー内。

      共用ライブラリー内にログイン・モジュールを配置する場合、 モジュールにアクセス可能なアプリケーションを指定する必要があります。 共用ライブラリーについて詳しくは、共用ライブラリーの管理を参照してください。

    • Java 拡張ディレクトリー内。

      JAAS ログイン・モジュールを Java 拡張ディレクトリーに配置すると、すべてのアプリケーションがこのログイン・モジュールを使用できます。

      クラス・ファイルを /QIBM/UserData/Java400/ext ディレクトリーに配置し、 それを Java 拡張ディレクトリーのクラス・パスに追加します。 また *PUBLIC *RX 認可をファイルに与えます。 ただし、ファイルを /QIBM/UserData/Java400/ext ディレクトリーに追加する場合は、 オペレーティング・システム全体にアクセス可能な Java 拡張ディレクトリーのデフォルトのクラスパスにそのファイルが追加されることになります。

    Java 拡張ディレクトリーでのログイン・モジュールの可用性が最大ですが、 アプリケーション EAR ファイルにログイン・モジュールを配置してください。 同じログイン・モジュールに別のアプリケーションもアクセスする必要がある場合には、 共用ライブラリーの使用を検討してください。

  3. プレーン・テキスト・ファイルを変更します。

    WebSphere Application Server は、JAAS のデフォルト・インプリメンテーションが提供する、プレーン・テキスト・ファイルの デフォルトの JAAS ログイン構成フォーマットをサポートしています。 ただし、このフォーマットのプレーン・テキスト・ファイルを編集するツールは提供されていません。 profile_root/properties/wsjaas.conf ファイルで JAAS ログイン構成を定義できます。 構文エラーが生じると、JAAS ログイン構成のプレーン・テキスト・ファイルが正しく解析されない場合があります。 そうなると、他のアプリケーションにも障害が起こる恐れがあります。

    認証に JAAS を使用する Java クライアント・ プログラムは、JAAS 構成ファイルを指定して起動する必要があります。 この構成ファイルは launchClient QShell スクリプトに設定されます。 launchClient スクリプトを使用して Java クライアント・プログラムを起動しない場合は、 該当の JAAS 構成ファイルが -Djava.security.auth.login.config フラグを使用して Java 仮想マシンに渡されることを確認してください。

結果

新規の JAAS ログイン構成が作成されるか、古い JAAS ログイン構成が除去されます。エンタープライズ・アプリケーションでは、新しく作成された JAAS ログイン構成を、アプリケーション・サーバー・プロセスを再始動しなくても使用できます。

ただし、 profile_root/properties/wsjaas.conf ファイルで定義された新規の JAAS ログイン構成は、自動的に更新されません。 変更を有効にするには、アプリケーション・サーバーを 再始動してください。これらの JAAS ログイン構成は特定のノードに固有であり、 他のノードで稼働している別のアプリケーション・サーバーでは使用できません。

次の作業

エンタープライズ・アプリケーションで使用される新規の JAAS ログイン構成を作成して、カスタム認証を実行します。 これらの新規に定義した JAAS ログイン構成を使用して、プログラマチック・ログインを実行します。



サブトピック
Java Authentication and Authorization Service のログイン構成
Java Authentication and Authorization Service 用のエントリー設定の構成
Java Authentication and Authorization Service 用のシステム・ログイン構成エントリー設定
Java Authentication and Authorization Service 用のログイン・モジュール設定
Java Authentication and Authorization Service 用のログイン・モジュールの順序設定
Java Authentication and Authorization Service 用のログイン構成設定
J2EE コネクター・アーキテクチャー認証データ・エントリーの管理
関連概念
J2EE コネクター・セキュリティー
プログラマチック・ログイン
関連タスク
Java Authentication and Authorization Service によるプログラマチック・ログインの開発
共用ライブラリーの管理
Java Authentication and Authorization Service によるアプリケーション・ログインの カスタマイズ
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 7:05:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.iseries.doc/info/iseriesexp/ae/tsec_j2clogin.html