Java™ Authentication and Authorization Service (JAAS) ログイン・フレームワークを使用して、ID アサーションへのログイン実行に使用可能な JAAS ログイン構成を作成することができます。
始める前に
アプリケーションまたはシステム・プロバイダーに、信頼性検証付きの ID アサーションの実行を
許可することができます。これを実行するには、
JAAS ログイン・フレームワークを使用します。このフレームワークでは、信頼性検証が 1 つのログイン・モジュールで実行され、
クレデンシャルの作成は別のモジュールで実行されます。2 つのカスタム・ログイン・モジュールにより、ID アサーションへのログイン実行に使用できる JAAS ログイン構成を作成することができます。
以下の 2 つのカスタム・ログイン・モジュールが必要です。
- ユーザーが実装したトラスト・アソシエーション・ログイン・モジュール (信頼性検証)
- ユーザーが実装したトラスト・アソシエーション・ログイン・モジュールは、
ユーザーが必要とする信頼性検証は何でも実行します。信頼性が検証されたら、
クレデンシャル作成ログイン・モジュールがその情報を使用できるように、ログイン・モジュールの共有状態で、
信頼性検証の状況およびログイン ID は、マップに配置される必要があります。このマップは、以下のプロパティーで保管される必要があります。
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
(which consists of)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(信頼できる場合は true に設定。そうでない場合は false に設定)
com.ibm.wsspi.security.common.auth.module.IdenityAssertionLoginModule.principal
(ID のプリンシパルを含む。)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(ID の証明書を含む。)
- ID アサーション・ログイン・モジュール (クレデンシャル作成)
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule は、クレデンシャル作成を実行します。このモジュールは、
ログイン・コンテキストの共有状態にある信頼性状態情報に依存します。このログイン・モジュールは、以下について、Java 2 セキュリティー・ランタイム許可によって保護されています。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.initialize
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.login
ID アサーション・ログイン・モジュールは、
共有状態プロパティー com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state 内で信頼性情報を検索します。
このプロパティーには、信頼性の状態およびログイン用 ID が含まれており、また、以下を含んでいる必要があります。
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trusted
(true は信頼されていることを示し、false は信頼されていないことを示す。)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal
(プリンシパルを使用する場合、ログインするための ID のプリンシパルを含む。)
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certificates
(証明書を使用する場合、ログインするための ID を含む一連の証明書チェーンを含む。)
状態、信頼性、または ID 情報が欠落している場合、WSLoginFailedException が戻されます。
ログイン・モジュールは、ID のログインを実行し、その対象が新規 ID を含みます。
手順
- ユーザーが実装したプラグ・ポイントに信頼性検証を委任します。 信頼性検証は、カスタム・ログイン・モジュール内で実行する必要があります。このカスタム・ログイン・モジュールは、
必要なすべての信頼性検証を実行し、共有状態でトラストおよび ID 情報を設定して ID アサーション・ログイン・モジュールに渡します。 共有状態鍵 com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state ではマップが必要です。状態が欠落している場合、WSLoginFailedException が IdentityAssertionLoginModule によりスローされます。
このマップは、以下を含む必要があります。
- com.ibm.wsspi.secuirty.common.auth.module.IdentityAssertionLoginModule.trust というトラスト鍵。トラスト鍵が true に設定されていると、信頼性が確立されます。トラスト鍵が false に設定されていると、
信頼性が確立されません。トラスト鍵が true に設定されていない場合、IdentityAssertionLoginModule により
WSLoginFailedException がスローされます。
- ID 鍵を設定: java.security.Principal を、
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.principal 鍵内で
設定することができます。
- または java.security.cert.X509Certificate[] を com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.certficates 鍵内で設定することができます。
プリンシパルと証明書の両方が提供されている場合、プリンシパルが使用され、警告が発生します。
- アプリケーション・ログインの新規 JAAS 構成の作成 JAAS 構成には、
ユーザーが実装した信頼性検証カスタム・ログイン・モジュールおよび
IdentityAssertionLoginModule が含まれます。
次に、アプリケーション・ログイン構成を構成するには、管理コンソールで以下を実行します。
- 「セキュリティー」>「グローバル・セキュリティー」と展開します。
- 「Java 認証・承認サービス」>「アプリケーション・ログイン」と展開します。
- 「新規」を選択します。
- JAAS 構成に別名を指定します。
- 「適用」をクリックします。
- 「JAAS Login Modules」を選択します。
- 「新規」を選択します。
- ユーザーが実装した信頼性検証カスタム・ログイン・モジュールのモジュール・クラス名を入力します。
- 「適用」をクリックします。
- com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule のモジュール・クラス名を入力します。
- モジュール・クラス名のクラスが正しい順序になっているかを確認します。
リスト内では、ユーザーが実装した信頼性検証ログイン・モジュールを最初に、IdentityAssertionLoginModule を 2 番目にする必要があります。
- 「保存」をクリックします。
この JAAS 構成は、ID アサーションを実行するためにアプリケーションによって使用されます。
- プログラマブル ID アサーションを実行します。 プログラムは、JAAS ログイン構成を使用し、プログラマチックな ID アサーションを実行することができます。
アプリケーション・プログラムは、ステップ 2 で作成された JAAS 構成にログイン・コンテキストを作成し、表明する ID でそのログイン・コンテキストにログインすることができます。
正常にログインした場合、その ID は現在実行中のプロセスで設定できます。
以下はこれらのコードの作動例です。
MyCallbackHandler handler = new MyCallbackHandler(new MyPrincipal(“Joe”));
LoginContext lc = new LoginContext(“MyAppLoginConfig”, handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// From here on , the runas identity is “Joe”
タスクの結果
JAAS ログイン・フレームワークおよびユーザーが実装した 2 つのログイン・モジュールを使用して、
ID アサーションへのログインに使用可能な JAAS ログイン構成を作成することができます。