JAAS を使用した ID アサーションを実行するためのアプリケーション・ログインのカスタマイズ

Java™ Authentication and Authorization Service (JAAS) ログイン・フレームワークを使用して、Liberty で ID アサーションへのログイン実行に使用可能な JAAS ログイン構成を作成することができます。

このタスクについて

信頼性検証により ID アサーションを構成することで、アプリケーションは、JAAS ログイン構成を使用し、プログラマチックな ID アサーションを実行することができます。 詳しくは、『IdentityAssertionLoginModule』を参照してください。

For distributed platformsトラブルの回避: Liberty でアプリケーションのセキュリティーを構成する際に参照できるよう、WASdev.net Web サイトにいくつかのセキュリティー構成例があります。 開発者ツールを使用した Liberty での JAAS の構成』を参照してください。

手順

  1. ユーザーが実装したプラグイン・ポイントに信頼性検証を委任します。
    信頼性検証は、カスタム・ログイン・モジュール内で実行されます。 このカスタム・ログイン・モジュールは、必要なすべての信頼性検証を実行し、共有状態でトラスト情報および 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 問題が発生します。

    共有状態鍵内のマップでは、以下のいずれかのリソースも設定する必要があります。

    • 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
    プリンシパルと証明書の両方が提供されている場合、プリンシパルが使用され、警告がレポートされます。
  2. アプリケーション・ログイン用の 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 アサーションを実行します。
  3. プログラマブル 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 ログイン構成を作成することができます。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_dev_custom_idassertion.html