セキュリティー属性伝搬のカスタム伝搬トークンの実装
このトピックでは、実行スレッドおよび伝搬されたダウンストリームに設定される、独自の伝搬トークン実装の作成方法を説明します。
このタスクについて
- 独自の実装内で属性を分離します。
- カスタム・シリアライゼーションを使用して情報をシリアライズします。カスタム・ログイン・モジュールを インバウンド・システム・ログイン構成に接続することによって、ターゲットでバイトをデシリアライズし、 その情報をスレッドに再度追加する必要があります。 このタスクはまた、暗号化および暗号化解除を含むことがあります。
カスタム伝搬トークンを実装するには、 以下のステップを実行する必要があります。
手順
- PropagationToken インターフェースのカスタム実装を書き込みます。 PropagationToken インターフェースを実装する場合、さまざまなメソッドを使用できます。
ただし、PropagationToken インターフェースおよびトークン・インターフェースが必要とするメソッドが完全に実装されていることを確認してください。
このインターフェースを実装した後、app_server_root/classes ディレクトリーにこれを配置することができます。その代わりに、専用ディレクトリーにクラスを配置することもできます。ただし、WebSphere Application Server クラス・ローダーがクラスを見つけることができ、クラスに適切な許可が与えられるようにしてください。 server.policy ファイルにこのクラスを含む Java™ archive (JAR) ファイルまたはディレクトリーを追加して、 クラスがサーバー・コードに必要な許可を持つようにします。
このインターフェースを実装した後、profile_root/classes ディレクトリーにこれを配置することができます。クラスについて詳しくは、プロファイルでのカスタム・クラス用クラス・サブディレクトリーの作成を参照してください。
ヒント: 伝搬フレームワークによって定義されるすべてのトークン・タイプは、同様なインターフェースを持ちます。 トークン・タイプは、com.ibm.wsspi.security.token.Token インターフェースを実装する マーカー・インターフェースです。 このインターフェースはほとんどのメソッドを定義します。 複数のトークン・タイプを実装する場合は、com.ibm.wsspi.security.token.Token インターフェースを実装する抽象クラスを作成することを考慮してください。 すべてのトークン・実装 (伝搬トークンを含む) は、抽象クラスを拡張する可能性があり、その後作業のほとんどが完了します。伝搬トークンの実装については、例: com.ibm.wsspi.security.token.PropagationToken 実装 を参照してください
- WebSphere Application Server ログイン時に、カスタム伝搬トークンを追加および受け取ります。 このタスクは通常、
カスタム・ログイン・モジュールをさまざまなアプリケーションおよびシステム・ログイン構成に追加することによって行われます。
アプリケーションから実装を追加することもできます。ただし、
情報をデシリアライズするために、カスタム・ログイン・モジュールをプラグインする必要があります (これについては、
セキュリティー属性伝搬のカスタム Java シリアライズ可能オブジェクトの伝搬に説明があります)。
WSSecurityPropagationHelper クラスには、スレッドに伝搬トークンを設定し、
スレッドからトークンを検索して更新するために使用される API があります。
例: カスタム伝搬トークン・ログイン・モジュールのコード・サンプルは、ログインが初期ログインであるか伝搬ログインであるかを判別する方法を示します。これらのログイン・タイプの違いは、WSTokenHolderCallback コールバックが 伝搬データを含んでいるかどうかです。 コールバックが伝搬データを含んでいない場合、新規カスタム伝搬トークンの実装を初期化し、それをスレッドに設定します。 コールバックに伝搬データが含まれている場合は、特定のカスタム伝搬トークン TokenHolder インスタンスを探し、 バイト配列をカスタム PropagationToken オブジェクトに変換して、 それをスレッドに設定します。コード・サンプルは両方のインスタンスを示します。
カスタム伝搬トークンがスレッドに追加されるときはいつでも属性を追加することができます。 要求の間に属性を追加し、getUniqueId メソッドが変更される場合、Common Secure Interoperability バージョン 2 (CSIv2) クライアント・セッションは無効となり、 新規情報ダウンストリームを送信することができます。 要求間に属性を追加するとパフォーマンスに影響が出ることがあります。 多くの場合、ダウンストリーム要求に新規伝搬トークンの情報を受け取らせます。
カスタム伝搬トークンを スレッドに追加するには、WSSecurityPropagationHelper.addPropagationToken メソッドを 呼び出します。この呼び出しには、WebSphereRuntimePerMission「setPropagationToken」Java 2 セキュリティー権限が必要です。
- カスタム伝搬トークンのシリアライズ版を受け取るために既に com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule ログイン・モジュールを含んでいる WebSphere Application Server システム・ログイン構成に、カスタム・ログイン・モジュールを追加します。 また、ログイン中にスレッドにカスタム伝搬トークンを生成することがあるどのアプリケーション・ログインにも、このログイン・モジュールを追加できます。
その代わりに、カスタム PropagationToken 実装をアプリケーション内から生成することができます。
ただし、それをデシリアライズするには、システム・ログイン・モジュールに実装を追加する必要があります。
既存のログイン構成にカスタム・ログイン・モジュールを追加する方法について詳しくは、JAAS のシステム・ログイン構成用のカスタム・ログイン・モジュールの開発 を参照してください。
タスクの結果
サブトピック
例: com.ibm.wsspi.security.token.PropagationToken 実装
このファイルを使用して、伝搬トークン実装の例を 示します。 以下のサンプル・コードは、 抽象クラスの拡張は行いませんが、com.ibm.wsspi.security.token.PropagationToken インターフェースを 直接実装します。 この インターフェースは直接実装することが可能ですが、重複するコードが書き込まれる可能性があります。 ただし、各種のトークン実装によって処理方法が大きく異なる 場合は、インターフェースを直接実装するとよいでしょう。例: カスタム伝搬トークン・ログイン・モジュール
初期ログインと伝搬ログインとを判別する方法を、この例で紹介します。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_custpropimpl
ファイル名:tsec_custpropimpl.html