WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

WSS API を使用したジェネレーター・セキュリティー・トークンの構成

ポリシー・セットを使用しなくても、Web Services Security API を使用することで SOAP メッセージをセキュアにすることができます。 ジェネレーター側にトークンを構成するには、 Web Services Security API (WSS API) を使用します。 ジェネレーター・セキュリティー・トークンは、 com.ibm.websphere.wssecurity.wssapi.token インターフェース・パッケージの一部です。

始める前に

WebSphere Application Server のプラグ可能トークン・フレームワークが再設計され、 WSS API の同一フレームワークを再利用できるようなりました。 セキュリティー・トークンの作成および妥当性検査の実装と同じものを、 Web Services Security ランタイムと WSS API アプリケーション・コードの両方に使用できます。 再設計されたフレームワークにより、SPI プログラミング・モデルもシンプルになり、 セキュリティー・トークン・タイプの追加が容易になります。

WSS API を使用することも、管理コンソールを使用してトークンを構成することもできます。 トークンを構成するには、以下のトークン・タスクを実行する必要があります。

このタスクについて

ジェネレーター側で、JAAS CallbackHandler と JAAS LoginModule は、 セキュリティー・トークンを作成する責務を担います。

ジェネレーター側では、 トークンは JAAS LoginModule を使用して作成され、JAAS CallbackHandler を使用して認証データを受け渡します。 次に、JAAS LoginModule は UsernameToken などの securityToken オブジェクトを作成して、 それを Web Service Security ランタイムに受け渡します。

コンシューマー側では、 XML フォーマットが妥当性検査または認証用 JAAS LoginModule に受け渡されます。 次に、JAAS CallbackHandler を使用して、認証データが Web Service Security ランタイムから LoginModule へ受け渡されます。トークンが認証された後、 セキュリティー・トークン・オブジェクトが作成され、そのトークンが Web Service Security ランタイムに受け渡されます。

ジェネレーター・トークンの作成に WSS API を使用すると、 ある決まったデフォルトの動作が行われます。 WSS API を使用する一番簡単な方法は、デフォルトの動作を使用することです (サンプル・コードを参照)。 WSS API は、トークン・タイプ、トークン値、および JAAS 構成名のデフォルト値を提供します。 デフォルト・トークンの動作は、以下のとおりです。

ジェネレーター・トークンの決定 デフォルトの動作
使用するトークン・タイプ

トークン・タイプで、メッセージの保全性、メッセージの機密性、またはメッセージの認証性に使用するトークンのタイプを指定します。

WebSphere Application Server は、メッセージの保全性およびメッセージの機密性に関して以下の事前定義されたジェネレーター・トークン・タイプを提供します。
  • 派生鍵トークン
  • X509 トークン
必要に応じて、カスタム・トークン・タイプを作成することもできます。

WebSphere Application Server は、メッセージの認証性に関して以下の事前定義されたジェネレーター・トークン・タイプを提供します。

  • ユーザー名トークン
  • LTPA トークン
  • X509 トークン

必要に応じて、カスタム・トークン・タイプを作成することもできます。

指定する JAAS ログイン構成名

JAAS ログイン構成名で、使用する JAAS ログイン構成名を指定します。

使用する構成タイプ JAAS ログイン・モジュールは構成タイプを指定します。 ジェネレーター・トークン・タイプには、事前定義されたジェネレーター構成タイプのみを使用できます。

SecurityToken クラス (com.ibm.websphere.wssecurity.wssapi.token.SecurityToken) は、 汎用トークン・クラスであり、識別名、XML フォーマット、および暗号鍵を取得するための方式が含まれているセキュリティー・トークンを表します。 SecurityToken クラスを使用して、シグニチャーと暗号化の両方を SOAP メッセージに適用することができます。 ただし、両方を適用するには、シグニチャー用と暗号化用にそれぞれ 1 つずつ、合計 2 つの SecurityToken オブジェクトが必要です。

以下のトークン・タイプは汎用セキュリティー・トークン・クラスのサブクラスです。

表 1. SecurityToken のサブクラス
トークン・タイプ JAAS ログイン構成名
ユーザー名トークン system.wss.generate.unt
セキュリティー・コンテキスト・トークン system.wss.generate.sct
派生鍵トークン system.wss.generate.dkt

以下のトークン・タイプはバイナリー・セキュリティー・トークン・クラスのサブクラスです。

表 2. BinarySecurityToken のサブクラス
トークン・タイプ JAAS ログイン構成名
LTPA トークン system.wss.generate.ltpa
LTPA 伝搬トークン system.wss.generate.ltpaProp
X.509 トークン system.wss.generate.x509
X.509 PKI Path トークン system.wss.generate.pkiPath
X.509 PKCS7 トークン system.wss.generate.pkcs7

注:

プロシージャー

  1. securityToken パッケージ com.ibm.websphere.wssecurity.wssapi.token を構成するには、 初めに、WebSphere Application Server Feature Pack がインストール済みであることを確認します。
  2. Web Services Security トークン・ジェネレーター・プロセスを使用して、 トークンを構成します。 各トークン・タイプのプロセスは、UsernameToken トークン・ジェネレーター・プロセスを表す 以下のプロセスに類似しています。
    1. WSSFactory.getInstance() を使用して WSS API 実装インスタンスを取得します。
    2. WSSFactory インスタンスから WSSGenerationContext インスタンスを作成します。
    3. JAAS CallbackHandler を作成します。 ユーザー名やパスワードなどの認証データは、CallbackHandler の一部として指定します。 例えば、以下のコードでは、ユーザー名として Chris を指定し、パスワードして sirhC を指定しています。 UNTGenerationCallbackHandler("Chris", "sirhC");
    4. すべての JAAS CallbackHandler パラメーターを呼び出し、 トークン・クラス情報を調べて、どのパラメーターが必須でどのパラメーターがオプションであるのかを確認します。 例えば、UsernameToken の場合、以下のパラメーターも構成できます。
      nonce
      トークン・ジェネレーターのユーザー名トークンに nonce を組み込むかどうかを示します。 nonce はメッセージに組み込まれた固有の暗号数値であり、 ユーザー名トークンの、繰り返される未許可の攻撃を防ぐのに役立ちます。 nonce 値が有効であるのは、 生成されたトークン・タイプが UsernameToken である場合と、要求ジェネレーター・バインディングに適用できる場合に限られます。
      作成タイム・スタンプ
      UsernameToken にタイム・スタンプを挿入するかどうかを示します。 タイム・スタンプ値が有効であるのは、 生成されたトークン・タイプが UsernameToken である場合と、要求ジェネレーター・バインディングに適用できる場合に限られます。
    5. WSSFactory から SecurityToken を作成します。

      デフォルトでは、UsernameToken API で、ValueType を http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken と指定します。

      デフォルトでは、UsernameToken API は、このクラスの QName を指定し、 NamespaceURI を http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd と指定し、さらに LocalPart を UsernameToken と指定します。

    6. オプション: JAAS ログイン・モジュール構成名を指定します。 ジェネレーター側では、構成タイプは常に generate (例えば、 system.wss.generate.unt) です。
    7. SecurityToken を WSSGenerationContext に追加します。
    8. WSSGenerationContext.process() を呼び出し、WS-Security ヘッダーを生成します。

結果

エラー条件がある場合は、WSSException が発生します。正常な場合、 WSSGenerationContext process() が呼び出され、ジェネレーター・バインディングのセキュリティー・トークンが添付されます。

以下のサンプル・コードは、WSS API プロセスが Username セキュリティー・トークンを作成し、 Username トークンを SOAP メッセージに添付し、 Username トークンをジェネレーター・バインディングに構成する方法を示しています。

// get the message context
   Object msgcontext = getMessageContext();

// generate WSSFactory instance
   WSSFactory factory = WSSFactory.getInstance();

// generate WSSGenerationContext instance
   WSSGenerationContext gencont = factory.newWSSGenerationContext();

// generate callback handler
   UNTGenerateCallbackHandler untCallbackHandler =
	         new UNTGenerateCallbackHandler("Chris", "sirhC");		

// generate the username token 
   SecurityToken unt = factory.newSecurityToken(UsernameToken.class,
                                                untCallbackHandler);

// add the SecurityToken to the WSSGenerationContext
   gencont.add(unt);

// generate the WS-Security header
gencont.process(msgcontext);

次の作業

トークン・タイプごとに、WSS API または管理コンソールを使用してトークンを構成します。 次に、まだ実行していない場合は、類似のコンシューマー・トークンを指定します。

ジェネレーター・トークンとコンシューマー・トークンの両方を構成している場合は、 必要に応じて、SOAP メッセージを署名するかメッセージを暗号化するかして、SOAP メッセージを引き続きセキュアにします。 SOAP メッセージをセキュアにするには、WSS API を使用することも、管理コンソールを使用することもできます。




関連概念
セキュリティー・トークン
ユーザー名トークン
バイナリー・セキュリティー・トークン
派生鍵トークン
セキュリティー・コンテキスト・トークン
関連タスク
WSS API を使用した要求ジェネレーターでのメッセージの保護
メッセージの認証性を保護するための、WSS API によるジェネレーター・トークンの添付
関連資料
保護トークンの設定 (ジェネレーターまたはコンシューマー)
コールバック・ハンドラー設定
タスク・トピック    

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

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_confwssgeneratortoken.html