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

メッセージの認証性を保護するためのコンシューマー・トークンの検証

トークン・コンシューマー情報は、コンシューマー側で セキュリティー・トークンを取りみ、検証するために使用されます。デフォルトでは、ユーザー名トークン、 X509 トークン、LTPA トークンがメッセージの認証性に使用されます。

始める前に

IBM WebSphere Application Server Version 6.1 Feature Pack for Web Services の Web サービス・セキュリティー・ランタイムにおけるトークン処理とプラグ可能なトークン・アーキテクチャーが再設計され、Web サービス・セキュリティー API (WSS API) から同じセキュリティー・トークン・インターフェース および Java Authentication and Authorization Service (JAAS) ログイン・モジュールを再使用できるように なりました。Web サービス・セキュリティー・ランタイムの WSS API と WSS SPI の両方で、 トークンの作成および検証に関して同じ実装が使用できます。

Feature Pack for Web Services では、 新しい設計によって、インターフェース com.ibm.wsspi.wssecurity.token.TokenConsumingComponent が 不要になりました。 ただし、WebSphere Application Server バージョン 6.1 アプリケーションが Feature Pack for Web Services を使用せず、引き続き JAX-RPC を使用する場合、このインターフェースは これまでどおり有効です。

鍵名 (KeyName) エレメントは Feature Pack for Web Services ではサポートされません。KeyName ポリシー・アサーションが 現行の OASIS Web Services Security ドラフト仕様で定義されていないためです。 同様の理由で、SAML トークンも Feature Pack for Web Services では サポートされません。

このタスクについて

JAAS コールバック・ハンドラー (CallbackHandler) と JAAS ログイン・モジュール (LoginModule) は、 Feature Pack for Web Services の新設計を使用して、 ジェネレーター側でセキュリティー・トークンを作成し、 コンシューマー側でそのセキュリティー・トークンを検証 (認証) します。

例えば、 ジェネレーター側では、JAAS LoginModule によってユーザー名トークンが 作成され、JAAS CallbackHandler によって認証データが渡されます。 JAAS LoginModule は Username SecurityToken オブジェクトを作成し、 それを Web サービス・セキュリティー・ランタイムに渡します。

そして、 コンシューマー側で、ユーザー名トークンの XML フォーマットが検証および認証のために JAAS LoginModule に渡され、JAAS CallbackHandler を使用して、認証データが Web サービス・セキュリティー・ ランタイムから LoginModule に渡されます。トークンが 認証されると、Username SecurityToken オブジェクトが作成され、 Web サービス・セキュリティー・ランタイムに渡されます。

注: WebSphere Application Server は、 WebSphere Application Server のデフォルト・ログイン・モジュール実装では、スタック可能な ログイン・モジュールはサポートしません。つまり、ログイン・モジュールは WebSphere Application Server ログイン・モジュール 実装の前か後に追加する必要があります。デフォルト実装が存在しないため、ログイン・モジュール実装を スタックする場合は、必要なログイン・モジュールを 作成しなければなりません。
WebSphere Application Server が 提供する com.ibm.websphere.wssecurity.wssapi.token パッケージは、 以下のクラスをサポートしています。
  • セキュリティー・トークン (SecurityTokenImpl)
  • バイナリー・セキュリティー・トークン (BinarySecurityTokenImpl)
また、WebSphere Application Server は、セキュリティー・トークン用の 以下の事前構成済みサブインターフェースも提供します。
  • 派生鍵トークン
  • セキュリティー・コンテキスト・トークン (SCT)
  • ユーザー名トークン
  • LTPA トークンの伝搬
  • LTPA トークン
  • X509PKCS7 トークン
  • X509PKIPath トークン
  • X509v3 トークン

メッセージの認証性には、デフォルトでユーザー名トークン、X.509 トークン、 および LTPA トークンが使用されます。デフォルトでは、署名および暗号化に 派生鍵トークンと X.509 トークンが使用されます。

クライアントでは、 WSS API と WSS SPI のみがサポートされます。コンシューマー側でセキュリティー・トークン・タイプを 指定するには、管理コンソールからポリシー・セットを構成する方法もあります。 また、ジェネレーター・セキュリティー・トークンの突き合わせに WSS API またはポリシー・セットを 使用することもできます。

デフォルトのログイン・モジュールとコールバック実装は、 ペアとして、つまりジェネレーター・パーツとコンシューマー・パーツの両方で使用するように 設計されています。デフォルト実装を使用するためには、該当するジェネレーター・セキュリティー・トークンと コンシューマー・セキュリティー・トークンをペアで選択します。例えば、X.509 トークンが必要な場合は、 トークン・ジェネレーターで system.wss.generate.x509 を選択し、 トークン・コンシューマーで system.wss.consume.x509 を選択します。

コンシューマー側のセキュリティー・トークンを構成するには、 WSS API から該当する事前構成済みのトークン・コンシューマー・インターフェースを使用して、 以下のトークン構成プロセスの手順を実行します。

プロシージャー

  1. wssFactory インスタンスを生成します。
  2. wssConsumingContext インスタンスを生成します。

    WSSConsumingContext インターフェースは、検証、暗号化解除、セキュリティー・トークン、 タイム・スタンプなどの Web Services Security (WS-Security) を消費するためのコンポーネントを保管します。 validate() メソッドが呼び出されると、これらのコンポーネントはすべて検証されます。

  3. コンシューマー側のコンポーネント (WSSVerification オブジェクト、 WSSDecryption オブジェクトなど) を作成します。
  4. JAAS ログイン構成の名前を指定して、JAAS 構成を 指定します。 Java Authentication and Authorization Service (JAAS) 構成は、 JAAS 構成の名前を指定します。 JAAS 構成は、コンシューマー・サイドでトークンがログインする方法を指定します。 事前定義システムまたはアプリケーション・ログイン構成は除去しないでください。 ただし、これらの構成内では、モジュール・クラス名の追加、 および WebSphere Application Server が各モジュールをロードする順序の指定を行うことができます。
  5. トークン・コンシューマー・クラス名を指定します。 トークン・コンシューマー・クラス名では、 SecurityToken の検証に必要な情報を指定します。 メッセージの認証性には、デフォルトでユーザー名トークン、X.509 トークン、 および LTPA トークンが使用されます。
  6. コールバック・ハンドラーのクラス名を指定してコールバック・ハンドラーの設定を 指定し、コールバック・ハンドラーの鍵も指定します。 このクラス名は、セキュリティー・トークン・フレームワークのプラグインに使用される コールバック・ハンドラー実装クラスの名前です。
    WebSphere Application Server は、 コンシューマー側に以下のデフォルトのコールバック・ハンドラー実装を 提供します。
    com.ibm.websphere.wssecurity.callbackhandler.PropertyCallback
    このクラスは、名前と値のペアを Web Services Security (WS-Security) 構成 XMI ファイルの エレメントに処理するためのコールバックです。
    ccom.ibm.websphere.wssecurity.callbackhandler.UNTConsumeCallbackHandler
    このクラスは、コンシューマー側のユーザー名トークン用の コールバック・ハンドラーです。このインスタンスは WSSConsumingContext オブジェクトに設定され、 ユーザー名トークンを検証するのに使用されます。このインプリメンテーションは、 Java 2 Platform, Enterprise Edition (J2EE) アプリケーション・クライアントに対してのみ使用してください。
    com.ibm.websphere.wssecurity.callbackhandler.X509ConsumeCallbackHandler
    このクラスは、コンシューマー側でバイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入される X.509 証明書を 検証するために使用される、コールバック・ハンドラーです。このインスタンスは、 WSSVerification オブジェクトと WSSDecryption オブジェクトを生成し、そのオブジェクトを WSSConsumingContext オブジェクトに組み込んで、X.509 バイナリー・セキュリティー・トークンを検証するために使用されます。 このコールバック・ハンドラーには、鍵ストアおよび鍵定義が必要です。この実装を 使用する場合、ジェネレーター側で鍵ストア・パスワード、パス、およびタイプが 提供されている必要があります。
    com.ibm.websphere.wssecurity.callbackhandler.LTPAConsumeCallbackHandler
    このクラスは、コンシューマー側の Lightweight Third Party Authentication (LTPA) トークン用のコールバック・ハンドラーです。このインスタンスは、WSSVerification オブジェクトおよび WSSDecryption オブジェクトを生成して LTPA トークンを検証するために使用されます。

    このコールバック・ハンドラーは、 バイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・ セキュリティー・ヘッダーに挿入される、LTPA セキュリティー・トークンを検証するために 使用されます。ただし、ユーザー名およびパスワードが指定される場合、 WebSphere Application Server は、Run As Subject から LTPA セキュリティー・トークンを取得するのではなく、 ユーザー名およびパスワードを認証してこれを取得します。このコールバック・ハンドラーは、Web サービスがアプリケーション・サーバー上でクライアントとして機能している場合のみ使用してください。 このコールバック・ハンドラーを J2EE アプリケーション・クライアント上で使用することはお勧めしません。 この実装を使用する場合、ジェネレーター側で基本認証のユーザー ID とパスワードが 提供されている必要があります。

  7. X.509 トークンが指定されている場合は、その他のトークン情報も 指定されています。
    keyStoreRef 鍵ロケーターで使用される鍵ストアの 参照名。
    keyStorePath 必要に応じて鍵ストアがロードされる 鍵ストア・ファイルのパス。パス名に ${USER_INSTALL_ROOT} を使用することをお勧めします。 この変数は、ご使用のマシンの WebSphere Application Server パスに展開されます。 このパスは、X.509 トークンのコールバック・ハンドラー実装を 使用する場合には必須です。
    keyStorePassword 鍵ストアの保全性検査に使用されるパスワード、 または鍵ストアのアンロックや鍵ストア・ファイルへのアクセスに使用される 鍵ストア・パスワード。鍵ストアとその構成は、 WebSphere Application Server が提供する一部のコールバック・ハンドラー実装で 使用されます。
    keyStoreType 鍵ロケーターで使用される鍵ストアの 鍵ストア・タイプ。この選択項目で、鍵ストア・ファイルが使用するフォーマットを 指定します。選択できる値は次のとおりです。
    JKS
    鍵ストアが Java Keystore (JKS) フォーマットを使用する場合は、このオプションを使用します。
    JCEKS
    Java Cryptography Extension が Software Development Kit (SDK) で構成される場合には、このオプションを使用します。 デフォルトの IBM JCE は、WebSphere Application Server で構成されます。 このオプションは、Triple DES 暗号化を使用することによって、保管された秘密鍵の保護をより強力にします。
    JCERACFKS
    証明書が SAF 鍵リング (z/OS のみ) に格納される場合は、JCERACFKS を使用します。
    PKCS11KS (PKCS11)
    鍵ストアが PKCS#11 ファイル・フォーマットを使用する場合、このフォーマットを使用します。鍵ストアで このフォーマットを使用すると、暗号ハードウェア上に RSA 鍵が含まれるか、 暗号ハードウェアを使用する暗号化鍵が含まれ、データを確実に保護することができます。
    PKCS12KS (PKCS12)
    鍵ストアが PKCS#12 ファイル・フォーマットを使用する場合、このオプションを使用します。
    alias 鍵別名。鍵の別名は、鍵ロケーターが 鍵ストア・ファイル内の鍵を探し出すときに使用されます。
    keyPassword 鍵のリカバリーに使用される鍵パスワード。 このパスワードは、鍵ストア・ファイル内の鍵オブジェクトにアクセスする際に必要です。
    keyName 鍵の名前。デジタル・シグニチャーの場合、 メッセージのデジタル署名に使用される鍵を判別するために、 この鍵名が要求ジェネレーターまたは応答コンシューマーの署名情報によって使用されます。 暗号化の場合、この鍵名は、暗号化に使用される鍵を判別するために使用されます。 鍵名は、 完全修飾識別名 (DN) でなければなりません。例えば、CN=Bob,O=IBM,C=US のようにします。
    trustAnchorPath トラスト・アンカーのロード元ファイル・パス。
    trustAnchorType トラスト・アンカーのタイプ。
    trustAnchorPassword トラスト・アンカーの保全性検査に使用されるパスワード、 または鍵ストアのアンロックに使用されるパスワード。
    certStores 証明書ストアのリスト。コレクション証明書ストアには、信頼されない中間証明書のリストおよび証明書失効リスト (CRL) が含まれます。 コレクション証明書ストアは、 着信する X.509 形式のセキュリティー・トークンの証明書パスを検証するために使用されます。
    provider セキュリティー・プロバイダー。

    X.509 トークンでは、以下を指定できます。

    1. 鍵ストアなし。
    2. トラスト・アンカー付き。 トラスト・アンカーは、 トラステッド・ルート証明書を含む鍵ストア構成のリストを指定します。これらの構成は、着信した X.509 フォーマットのセキュリティー・トークンの証明書パスの妥当性検査に使用されます。 例えば、トラステッド証明書のトラスト・アンカーまたは 証明書ストアを選択した場合、証明書パスを設定する前にそのトラスト・アンカー および証明書ストアを構成する必要があります。
    3. 鍵ロケーターで使用される鍵ストア付き。

      最初に、 鍵ツール・ユーティリティーなどを使用して、鍵ストア・ファイルを作成する 必要があります。この鍵ストアは、X.509 証明書をリトリーブするために使用されます。この項目は、 鍵ストア・ファイルへのアクセスに使用されるパスワードを指定します。トラスト・アンカー内の鍵ストア・オブジェクトには、証明書チェーンの信頼性を検証するために CertPath API が使用するトラステッド・ルート証明書が含まれています。 トラスト・アンカーおよびコレクション証明書ストアの名前は、トークン・コンシューマーの下の証明書パスに作成されます。

    4. 鍵ロケーターおよびトラスト・アンカーで使用される 鍵ストア付き。
    5. 鍵と値のペアを含むマップ付き。 例えば、 値のタイプ名と値のタイプの Uniform Resource Identifier (URI) を 指定できます。値のタイプは、コンシューマー・トークン用の値タイプのネーム・スペース URI を 指定し、このクラスのトークン・タイプを表します。
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509
      X.509 証明書トークンを指定します。
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509PKIPathv1
      Public Key Infrastructure (PKI) パスにある X.509 証明書を指定します。 このコールバック・ハンドラーは、 PkiPath フォーマットでエンコードされた X.509 証明書を作成するために使用されます。 この証明書は、バイナリー・セキュリティー・トークン として SOAP メッセージ内で Web サービス・セキュリティー・ヘッダーに挿入されます。 このコールバック・ハンドラーには鍵ストアが必要です。 CRL はコールバック・ハンドラーによってサポートされていないため、 コレクション証明書ストアは不要で使用されません。 このインプリメンテーションを使用する場合、このパネルで鍵ストア・パスワード、パス、およびタイプを指定する必要があります。
      ValueType: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7
      X.509 証明書のリストおよび証明書失効リストを PKCS#7 フォーマットで 指定します。このコールバック・ハンドラーは、 PKCS#7 フォーマットでエンコードされる X.509 証明書を作成するために使用されます。 この証明書は、バイナリー・セキュリティー・トークン として、SOAP メッセージで Web サービス・セキュリティー・ヘッダーに挿入されます。 このコールバック・ハンドラーには鍵ストアが必要です。 コレクション証明書ストアで証明書失効リスト (CRL) を指定することができます。 CRL は、PKCS#7 フォーマットの X.509 証明書でエンコードされています。 この実装を使用する場合、 鍵ストア・パスワード、パス、およびタイプを指定する必要があります。

      一部のトークンには、WebSphere Application Server から、 値タイプ用の事前構成済みローカル名が提供されます。以下のローカル名を指定する場合、 値タイプの URI を指定する必要はありません。

      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      LTPA トークンでは、値タイプ・ローカル名に LTPA を使用することが できます。このローカル名を使用すると、値タイプの URI に http://www.ibm.com/websphere/appserver/tokentype/5.0.2 が 指定されます。
      ValueType: http://www.ibm.com/websphere/appserver/tokentype/5.0.2
      LTPA トークンの伝搬では、値タイプ・ローカル名に LTPA_PROPAGATION を 使用することができます。このローカル名を使用すると、値タイプの URI に http://www.ibm.com/websphere/appserver/tokentype が 指定されます。
  8. トークン・コンシューマー・クラス名としてユーザー名トークンが指定されている場合は、 以下のトークン情報を指定できます。
    1. nonce を指定するかどうか。

      このオプションでは、 トークン・コンシューマーに nonce を組み込むかどうかを指定します。nonce はメッセージに組み込まれる 固有の暗号数値であり、ユーザー名トークンの、反復的な未許可の攻撃を防ぐのに 役立ちます。nonce は、検証するトークン・タイプがユーザー名トークンである場合にのみ有効で、 応答コンシューマー・バインディングのためにのみ使用できます。

    2. タイム・スタンプのキーワードを指定します。 このオプションは、 ユーザー名トークンのタイム・スタンプを検証するかどうかを示します。タイム・スタンプは、 取り込まれたトークンのタイプがユーザー名トークンである場合に限り有効です。
    3. 鍵と値のペアを含むマップを指定します。 例えば、 値のタイプ名と値のタイプの Uniform Resource Identifier (URI) を 指定できます。値のタイプは、コンシューマー・トークン用の値タイプのネーム・スペース URI を 指定し、このクラスのトークン・タイプを表します。
      URI 値タイプ: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken
      ユーザー名トークンを指定します。
  9. コンポーネントを wssConsumingContext オブジェクトに組み込みます。
  10. wssConsumingContext.process() メソッドを呼び出します。

結果

WSS API を使用してトークン・コンシューマーを構成しました。

次の作業

トークン・ジェネレーターの構成をまだ完了していない場合は、 同様の構成を指定してください。



サブトピック
WSS API を使用したコンシューマー・セキュリティー・トークンの構成
関連概念
派生鍵トークン
セキュリティー・コンテキスト・トークン
バイナリー・セキュリティー・トークン
セキュリティー・トークン
ユーザー名トークン
XML トークン (XML token)
関連タスク
メッセージの認証性を保護するための、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_configtokenconjaxws.html