WebSphere Application Server, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

サブジェクト作成用のトラスト・アソシエーション・インターセプターのサポート

トラスト・アソシエーション・インターセプター (TAI) の com.ibm.wsspi.security.tai.TrustAssociationInterceptor インターフェースは、既存の com.ibm.websphere.security.TrustAssociationInterceptor インターフェースとは異なるいくつかの機能をサポートしています。

TAI インターフェースは、複数フェーズのネゴシエーションによる認証処理をサポートしています。 例えば、システムの中にはユーザー確認のための質問への応答プロトコルをクライアントに戻すことを要求するものがあります。 このインターフェースの 2 つの主なメソッドは以下のとおりです。
主要メソッド名
public boolean isTargetInterceptor (HttpServletRequest req)

isTargetInterceptor メソッドは、要求がインターセプターと関連付けられた プロキシー・サーバーから発信されているかどうかを判断します。インプリメンテーション・コードは、着信要求オブジェクトを検査して、 要求を転送しているプロキシー・サーバーがこのインターセプターにとって有効なプロキシー・サーバーであるかどうかを判別しなければなりません。 このメソッドの結果によって、インターセプターが要求を処理するかどうかが決まります。

メソッドの結果

値が true ならば、WebSphere Application Server は TAI に要求を処理させます。

値が false ならば、WebSphere Application Server は TAI を無視します。

主要メソッド名
public TAIResult negotiateValidateandEstablishTrust (HttpServletRequest req, HttpServletResponse res)

negotiateValidateandEstablishTrust メソッドは、要求を発信したプロキシー・サーバーが信頼できるかどうかを判断します。 インプリメンテーション・コードは、プロキシー・サーバーを認証しなければなりません。 この認証メカニズムは、プロキシー・サーバー特有のものです。 例えば、WebSeal サーバー用の製品インプリメンテーションでは、 このメソッドは、基本認証情報を HTTP ヘッダーから取得し、WebSphere Application Server が 使用するユーザー・レジストリーと 照らし合わせてこの情報の妥当性を検査します。クレデンシャルが有効でない場合、コードは WebTrustAssociationException 例外を作成します。これは、プロキシー・サー バーを信頼せず、要求を拒否することを示します。 クレデンシャルが有効な場合は、コードは TAIResult の結果を戻します。 これは、Web リソースを許可する場合に使用されるクライアント ID (サブジェクトおよびプリンシパル名) と要求処理の状態を示します。

メソッドの結果
TAIResult の結果を戻します。これは要求処理の状態を示しています。 要求オブジェクトの照会と、応答オブジェクトの変更ができます。
TAIResult クラスは TAIResult の結果を作成するための 3 つの静的メソッドを有しています。TAIResult は、int 型を最初のパラメーターとしてとるメソッドを作成します。 結果は、有効な HTTP 要求戻りコードとなり、また、以下のいずれかの方法で解釈されることが必要です。
  • 値が HttpServletResponse.SC_OK ならば、この応答は WebSphere Application Server に対し、TAI のネゴシエーションが終了したことを知らせます。この応 答はまた、WebSphere Application Server に、TAIResult の結果の情報を使ってユーザー ID を作成するように指示します。
  • 他の値ならば WebSphere Application Server は HttpServletResponse 応答にある TAI 出力を Web クライアントに戻すよう に指示します。 一般に、Web クライアントは追加情報を提供し、それから TAI に対して別の呼び出しを行います。
作成された TAIResults 結果は次の意味を持ちます。
TAIResult 説明
public static TAIResult create(int status); WebSphere Application Server に対する状態を示します。 ID 情報が提供されるため、この結果が SC_OK になることはあり得ません。
public static TAIResult create(int status, String principal); WebSphere Application Server に対する状態を示し、このユーザーのユーザー ID または固有の ID を提供します。 WebSphere Application Server はユーザー・レジストリーを照会してクレデンシャルを作成します。
public static TAIResult create(int status, String principal, Subject subject); WebSphere Application Server に対する状態、そのユーザーのユーザー ID または固有の ID、そしてカスタム・サブジェクトを示します。 サブジェクトに hashtable が含まれている場合は、プリンシパルは無視 されます。 サブジェクトの内容は最終的なユーザー・サブジェクトの一部となります。

以下の例はすべて、TAI の negotiateValidateandEstablishTrust メソッド内のものです。
次のコード例は、追加のネゴシエーションが必要であることを示しています。

// Modify the HttpServletResponse object
//  The response code is meaningful only on the client
return TAIResult.create(HttpServletResponse.SC_CONTINUE);

以下のコード・サンプルは TAI がユーザー ID を識 別したことを示しています。 WebSphere Application Server はユーザー ID のみを受信し、追加情報を得るためにユーザー・レジストリーに照会します。

// modify the HttpServletResponse object
return TAIResult.create(HttpServletResponse.SC_OK, userid);

以下のコード・サンプルは TAI がユーザー ID を識 別したことを示しています。 WebSphere Application Server は、hashtable に含まれるすべてのユーザー情報を受信します。 hashtable について詳しくは、インバウンド ID マッピングの構成 を参照してください。このコード・サンプルでは、hashtable はサブジェクトの公開クレデンシャル部分に位置しています。

// create Subject and place Hashtable in it
Subject subject = new Subject;
subject.getPublicCredentials().add(hashtable);
//the response code is meaningful only the client
return TAIResult.create(HttpServletResponse.SC_OK, "ignored", subject);

以下のコード・サンプルは、認証エラーが起こったことを示しています。 WebSphere Application Server が認証要求に失敗しました。

//log error message
// ....
throw new WebTrustAssociationFailedException("TAI failed for this reason");

以下のメソッドは、TrustAssociationInterceptor インターフェースの追加メソッドです。 これらのメソッドは初期化、シャットダウン、および WebSphere Application Server に対する TAI の識別に使われます。 詳しくは、Java の資料を参照してください。

メソッド名
public int initialize(Properties props)

メソッドの結果
このメソッドは TAI の初期化中に呼び出され、インターセプター用にカスタム・プロパティーが構成されている場合のみ呼び出されます。
メソッド名
public String getVersion()
メソッドの結果
このメソッドは TAI のバージョンを戻します。
メソッド名
public String getType()
メソッドの結果
このメソッドは TAI のタイプを戻します。
メソッド名
public void cleanup()
メソッドの結果
このメソッドは、WebSphere Application Server プロセスを停止するときに呼び出されます。 WebSphere Application Server プロセスの停止時に、TAI が必要なクリーンアップを実行できます。 クリーンアップが不要な場合、このメソッドは呼び出されません。



関連タスク
インバウンド ID マッピングの構成
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 22, 2008 12:07:38 AM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/rsec_taisubcreate.html