Liberty プロファイル・サーバーのログイン・モジュールを構成する前または後に、カスタム Java™ Authentication
and Authorization Service (JAAS) ログイン・モジュールを構成することができます。
始める前に
『システム・ログイン構成用の JAAS カスタム・ログイン・モジュールの開発』に説明されているように、
javax.security.auth.spi.LoginModule インターフェースを実装
する JAAS カスタム・ログイン・モジュールを含んでいる JAR ファイルがあることを確認してください。このトピック
では、JAAS カスタム・ログイン・モジュールは、Liberty プロファイル・サーバーによって
提供される、ハッシュ・テーブル、コールバック、または共有状態変数を使用して、認証データを
システム・ログイン・モジュールに渡します。
このタスクについて
カスタム・ログイン・モジュールを使用することによって、追加の認証の決定を行うか、Subject に情報を追加してアプリケーション内でより細かい許可の決定を行うことができます。
より詳細な概要については、『JAAS 構成』および
『JAAS ログイン・モジュール』を参照してください。
また、開発ツールを使用してカスタム JAAS ログイン・モジュールを構成することもできます。『開発者ツールを使用した Liberty プロファイルでの JAAS の構成』を参照してください。Liberty プロファイルでアプリケーションのセキュリティーを構成する際に参照できるよう、WASdev.net Web サイトにいくつかのセキュリティー構成例があります。 『開発者ツールを使用した Liberty プロファイルでの JAAS の構成』を参照してください。
JAAS カスタム・ログイン・モジュール
を構成するには、以下の手順を実行します。
手順
- server.xml ファイルで appSecurity-2.0 Liberty フィーチャーを使用可能にします。
<featureManager>
<feature>appSecurity-2.0</feature>
</featureManager>
- LoginModule インターフェースを実装するクラス com.sample.CustomLoginModule を作成し、それを CustomLoginModule.jar ファイルにパッケージします。
- CustomLoginModule.jar ファイルの場所を示す <fileset> エレメントを使用する <library> エレメントを作成します。この例では、ライブラリーの id は customLoginLib です。
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="CustomLoginModule.jar"/>
</library>
- <jaasLoginModule> エレメントを作成します。この例では、id は custom です。
- controlFlag 属性を REQUIRED に設定することで、正常な認証を要求するようにカスタム・ログイン・モジュールを構成します。
- 前のステップで構成した <library> エレメントの id である customLoginLib に libraryRef 属性を設定します。このログイン・モジュールには、以下の 2 つのオプションもあります。UserRegistry は ldap で、mapToUser は user1 です。
<jaasLoginModule id="myCustom"
className="com.sample.CustomLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib">
<options myOption1="value1" myOption2="value2"/>
</jaasLoginModule>
- システム定義 JAAS 構成 system.WEB_INBOUND の id および固有の name を使用して <jaasLogincontextEntry> エレメントを作成します。
この JAAS 構成は、system.DEFAULT、WSLogin、または独自の JAAS 構成に設定することも可能です。
loginModuleRef 属性で、前のステップで作成した jaasLoginModule エレメントの id である custom を追加します。この id をリストの先頭に入力した場合は、それが呼び出される最初の JAAS ログイン・モジュールになります。
その他のデフォルト・ログイン・モジュール hashtable、userNameAndPassword、certificate、および token をリストする必要もあります。
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND"
loginModuleRef="myCustom, hashtable, userNameAndPassword, certificate, token" />
注: オプション名は、ピリオド (.)、config.、
または service で始まってはならず、固有でなければなりません。また、プロパティー名 id および ID は許可されません。
<jaasLoginContextEntry>、<jaasLoginModule>、<options>、
および <library> の各エレメントについて詳しくは、『server.xml ファイルの構成エレメント』を参照してください。