セキュリティー属性伝搬のカスタム認証トークンの実装

このトピックでは、ログイン・サブジェクトおよび伝搬されたダウンストリームに設定される、独自の認証トークンの実装の作成方法を説明します。

このタスクについて

この実装によって、カスタム・ログイン・モジュールまたはアプリケーションが使用できる 認証トークンを指定することができます。以下のいずれかのタスクを行う場合は、独自の実装を書き込むことを考慮してください。
  • 独自の実装内で属性を分離します。
  • カスタム・シリアライゼーションを使用して情報をシリアライズします。ターゲットでバイトをデシリアライズし、 その情報をスレッドに追加する必要があります。 このタスクはまた、暗号化および暗号化解除を含むことがあります。
  • getUniqueID アプリケーション・プログラミング・インターフェース (API) を使用してサブジェクトの全体的な固有性に影響を与えます。
重要: WebSphere® Application Server のセキュリティー・ランタイムでは、認証を実行するために、カスタム認証トークンの実装は使用されません。 WebSphere Application Security ランタイムは、以下の状況でのみ、このトークンを使用します。
  • シリアライゼーションのために getBytes メソッドを呼び出します
  • getForwardable メソッドを呼び出し、認証トークンをシリアライズするかどうかを決定します。
  • 固有性のために getUniqueId メソッドを呼び出します
  • ダウンストリームに送信されるトークン・ホルダーにシリアライズされたバイトを 追加するために getName および getVersion メソッドを呼び出します。
他の使用のすべてはカスタム実装です。

カスタム認証トークンを実装するには、 以下のステップを実行する必要があります。

手順

  1. AuthenticationToken インターフェースのカスタム・実装を書き込みます。 AuthenticationToken インターフェースを実装するさまざまな方法がたくさんあります。 ただし、AuthenticationToken インターフェースおよびトークン・インターフェースが必要とするメソッドは完全に実装されていることを確認してください。 このインターフェースを実装した後、app_server_root/classes ディレクトリーにこれを配置することができます。 その代わりに、専用ディレクトリーにクラスを配置することもできます。ただし、WebSphere Application Server クラス・ローダーがクラスを見つけることができ、クラスに適切な許可が与えられるようにしてください。 server.policy ファイルにこのクラスを含む Java™ archive (JAR) ファイルまたはディレクトリーを追加して、 クラスがサーバー・コードに必要な許可を持つようにします。
    ヒント: 伝搬フレームワークによって定義されるすべてのトークン・タイプは、同様なインターフェースを持ちます。 トークン・タイプは、com.ibm.wsspi.security.token.Token インターフェースを実装するマーカー・インターフェースです。 このインターフェースはほとんどのメソッドを定義します。 複数のトークン・タイプを実装する場合は、com.ibm.wsspi.security.token.Token インターフェースを実装する抽象クラスを作成することを考慮してください。 すべてのトークン・実装 (認証トークンを含む) は、抽象クラスを拡張する可能性があり、その後作業のほとんどが完了します。

    AuthenticationToken インターフェースの実装については、例: com.ibm.wsspi.security.token.AuthenticationToken 実装 を参照してください。

  2. WebSphere Application Server ログイン時に、 カスタム認証トークンを追加および受け取ります。 このタスクは通常、 カスタム・ログイン・モジュールをさまざまなアプリケーションおよびシステム・ログイン構成に追加することによって行われます。 ただし、情報をデシリアライズするために、カスタム・ログイン・モジュールに接続する必要があります。 オブジェクトがログイン・モジュールでインスタンス化されると、commit メソッド中にオブジェクトをサブジェクトに追加することができます。

    伝搬させるために、サブジェクトに情報を追加するだけの場合、セキュリティー属性伝搬のカスタム Java シリアライズ可能オブジェクトの伝搬を参照してください。 情報が確実に伝搬されるようにする場合、 独自のカスタム・シリアライゼーションを行う場合、またはサブジェクト・キャッシング目的で固有性を指定する場合には、 独自の認証トークンの実装を作成することを検討します。

    例: カスタム認証トークン・ログイン・モジュール のコード・サンプルは、ログインが初期ログインであるか伝搬ログインであるかを判別する方法を示します。これらのログイン・タイプの違いは、WSTokenHolderCallback コールバックが 伝搬データを含んでいるかどうかです。 コールバックが伝搬データを含んでいない場合、新規カスタム認証トークンの実装を初期化し、それをサブジェクトに設定します。コールバックが伝搬データを含んでいる場合は、 特定のカスタム認証トークン TokenHolder インスタンスを探し、バイト配列をカスタム AuthenticationToken オブジェクトに変換して、それをサブジェクト内に設定します。 コード・サンプルは両方のインスタンスを示します。

    ログイン・モジュールのコミット・フェーズで認証トークンを読み取り専用にすることができます。 そのトークンを読み取り専用にしない場合は、属性はアプリケーション内に追加できます。

  3. カスタム許可トークンのシリアライズ版を受け取るために既に com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule ログイン・モジュールを含んでいる WebSphere Application Server システム・ログイン構成に、カスタム・ログイン・モジュールを追加します。

    このログイン・モジュールが com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule ログイン・モジュールが追加した共有状態の情報に依存しているため、このログイン・モジュールを com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule ログイン・モジュールの後に追加します。 既存のログイン構成にカスタム・ログイン・モジュールを追加する方法については、『JAAS のシステム・ログイン構成用のカスタム・ログイン・モジュールの開発』を参照してください。

タスクの結果

これらのステップが完了すると、カスタム認証トークンが実装されます。

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



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_custauthentimpl
ファイル名:tsec_custauthentimpl.html