Java™ Authentication and Authorization Service (JAAS) ログイン・フレームワークを使用して、Liberty プロファイルで ID アサーションへのログイン実行に使用可能な JAAS ログイン構成を作成することができます。
このタスクについて
信頼性検証により ID アサーションを構成することで、アプリケーションは、JAAS ログイン構成を使用し、プログラマチックな ID アサーションを実行することができます。
詳しくは、『IdentityAssertionLoginModule』を参照してください。
手順
- ユーザーが実装したプラグイン・ポイントに信頼性検証を委任します。
信頼性検証は、カスタム・ログイン・モジュール内で実行されます。
このカスタム・ログイン・モジュールは、必要なすべての信頼性検証を実行し、共有状態でトラスト情報および ID 情報を設定して ID アサーション・ログイン・モジュールに渡します。
以下の共有状態鍵でマップが必要です。
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.state
状態が欠落している場合は、
WSLoginFailedException 問題が
IdentityAssertionLoginModule クラスによってレポートされます。
共有状態鍵内のマップには、以下の鍵名のトラスト鍵が含まれていなければなりません。
com.ibm.wsspi.security.common.auth.module.IdentityAssertionLoginModule.trust
この鍵が
true に設定されていると、信頼性が確立されます。
この鍵が
false に設定されていると、信頼性が確立されず、
IdentityAssertionLoginModule クラスにより
WSLoginFailedException 問題が発生します。
共有状態鍵内のマップでは、以下のいずれかのリソースも設定する必要があります。
プリンシパルと証明書の両方が提供されている場合、プリンシパルが使用され、警告がレポートされます。
- アプリケーション・ログイン用の JAAS 構成を作成します。 JAAS 構成には、ユーザーが実装した信頼性検証カスタム・ログイン・モジュールおよび IdentityAssertionLoginModule クラスが含まれます。
次に、アプリケーション・ログイン構成を構成するために、server.xml ファイルで以下のコードを追加します。
<jaasLoginContextEntry id="CustomIdentityAssertion" name="CustomIdentityAssertion"
loginModuleRef="customIdentityAssertion,identityAssertion" />
<jaasLoginModule id="customIdentityAssertion"
className="com.ibm.ws.security.authentication.IdentityAssertionLoginModule"
controlFlag="REQUIRED" libraryRef="customLoginLib"/>
<library id="customLoginLib">
<fileset dir="${server.config.dir}" includes="IdentityAssertionLoginModule.jar"/>
</library>
アプリケーションは、この JAAS 構成を使用して ID アサーションを実行します。
- プログラマブル ID アサーションを実行します。 これで、プログラムは JAAS ログイン構成を使用し、プログラマチックな ID アサーションを実行することができます。
アプリケーション・プログラムは、ステップ 2 で作成された JAAS 構成のログイン・コンテキストを作成してから、表明する ID でそのログイン・コンテキストにログインすることができます。
ログインが正常に行われた場合、その ID は現在実行中のプロセスで設定できます。
次の例は、このプロセスを示しています。
NameCallback handler = new NameCallback(new MyPrincipal("Joe"));
LoginContext lc = new LoginContext("customIdentityAssertion", handler);
lc.login(); //assume successful
Subject s = lc.getSubject();
WSSubject.setRunAsSubject(s);
// From here on , the runas identity is "Joe"
注: 例で、MyPrincipal クラスは、java.security.Principal インターフェースの実装です。
タスクの結果
JAAS ログイン・フレームワークおよびユーザーが実装した 2 つのログイン・モジュールを使用して、ID アサーションへのログインに使用可能な JAAS ログイン構成を作成することができます。