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 によるジェネレーター・トークンの添付

トークン・ジェネレーターを指定すると、ジェネレーター側ではこの情報を使用して セキュリティー・トークンが生成されます。

始める前に

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.TokenGeneratorComponent が 不要になりました。 ただし、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. wssGenerationContext インスタンスを生成します。

    WSSGenerationContext インターフェースは、署名および暗号化情報、セキュリティー・トークン、 タイム・スタンプなどの Web Services Security (WS-Security) を生成するためのコンポーネントを保管します。 generate() メソッドが呼び出されると、これらのコンポーネントのすべてが生成されます。

  3. ジェネレーター側のコンポーネント (WSSSignature オブジェクト、 WSSEncryption オブジェクトなど) を作成します。
  4. JAAS ログイン構成の名前を指定して、JAAS 構成を 指定します。 Java Authentication and Authorization Service (JAAS) 構成は、 JAAS 構成の名前を指定します。 JAAS 構成は、コンシューマー・サイドでトークンがログインする方法を指定します。 事前定義システムまたはアプリケーション・ログイン構成は除去しないでください。 ただし、これらの構成内では、モジュール・クラス名の追加、 および WebSphere Application Server が各モジュールをロードする順序の指定を行うことができます。
  5. トークン・ジェネレーターのクラス名を指定します。 トークン・ジェネレーターのクラス名は、 SecurityToken の生成に必要な情報を指定します。 メッセージの認証性には、デフォルトでユーザー名トークン、X.509 トークン、 および LTPA トークンが使用されます。
  6. コールバック・ハンドラーのクラス名を指定してコールバック・ハンドラーの設定を 指定し、コールバック・ハンドラーの鍵も指定します。 このクラス名は、セキュリティー・トークン・フレームワークのプラグインに使用される コールバック・ハンドラー実装クラスの名前です。

    このコールバック・ハンドラー・インプリメンテーションは、必要なセキュリティー・トークンを取得し、 それをトークン・ジェネレーターに渡します。 トークン・ジェネレーターは、SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーにセキュリティー・トークンを挿入します。 また、トークン・ジェネレーターは、プラグ可能なセキュリティー・トークン・フレームワークのプラグイン・ポイントです。 サービス・プロバイダーは 独自の実装を提供できますが、この実装では、WSSGenerationContext インターフェースを 使用する必要があります。

    WebSphere Application Server は、 ジェネレーター側に以下のデフォルトのコールバック・ハンドラー実装を提供します。
    com.ibm.websphere.wssecurity.callbackhandler.PropertyCallback
    このクラスは、名前と値のペアを Web Services Security (WS-Security) 構成 XMI ファイルの エレメントに処理するためのコールバックです。
    com.ibm.websphere.wssecurity.callbackhandler.UNTGUIPromptCallbackHandler
    このクラスは、ジェネレーター側のユーザー名トークン用の (GUI プロンプトによる) コールバック・ハンドラーです。このインスタンスは WSSGenerationContext オブジェクトを設定して ユーザー名トークンを生成するために使用されます。
    com.ibm.websphere.wssecurity.callbackhandler.UNTGenerateCallbackHandler
    このクラスは、ジェネレーター側のユーザー名トークン用の コールバック・ハンドラーです。このインスタンスは、WSSGenerationContext オブジェクトに組み込んで ユーザー名トークンを添付するために使用されます。このインプリメンテーションは、 Java 2 Platform, Enterprise Edition (J2EE) アプリケーション・クライアントに対してのみ使用してください。
    com.ibm.websphere.wssecurity.callbackhandler.X509GenerateCallbackHandler
    このクラスは、ジェネレーター側でバイナリー・セキュリティー・トークンとして SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入される X.509 証明書を 生成するために使用される、コールバック・ハンドラーです。このインスタンスは、 WSSSignature オブジェクトと WSSEncryption オブジェクトを生成し、そのオブジェクトを WSSGenerationContext オブジェクトに設定して、X.509 バイナリー・セキュリティー・トークンを生成するために、使用されます。 このコールバック・ハンドラーには、鍵ストアおよび鍵定義が必要です。この実装を 使用する場合、ジェネレーター側で鍵ストア・パスワード、パス、およびタイプを 提供する必要があります。
    com.ibm.websphere.wssecurity.callbackhandler.LTPAGenerateCallbackHandler
    このクラスは、ジェネレーター側の Lightweight Third Party Authentication (LTPA) トークン用のコールバック・ハンドラーです。このインスタンスは、WSSSignature オブジェクトおよび WSSEncryption オブジェクトを生成して LTPA トークンを生成するために使用されます。

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

  7. X.509 トークンが指定されている場合は、その他のトークン情報も 指定されています。
    storeRef 鍵ストアの参照名。
    storePath 必要に応じて鍵ストアがロードされる 鍵ストア・ファイルのパス。パス名に ${USER_INSTALL_ROOT} を使用することをお勧めします。 この変数は、ご使用のマシンの WebSphere Application Server パスに展開されます。 このパスは、X.509 トークンのコールバック・ハンドラー実装を 使用する場合には必須です。
    storePassword 鍵ストアの保全性検査に使用されるパスワード、 または鍵ストアのアンロックや鍵ストア・ファイルへのアクセスに使用される 鍵ストア・パスワード。鍵ストアとその構成は、 WebSphere Application Server が提供する一部のコールバック・ハンドラー実装で 使用されます。
    storeType 鍵ロケーターで使用される鍵ストアの 鍵ストア・タイプ。この選択項目で、鍵ストア・ファイルが使用するフォーマットを 指定します。選択できる値は次のとおりです。
    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 のようにします。
    certStores 証明書ストアのリスト。コレクション証明書ストアには、信頼されない中間証明書のリストおよび証明書失効リスト (CRL) が含まれます。 このステップでは、ジェネレーター・バインディングのためのコレクション証明書ストア および証明書失効リストを構成します。
    identityAssertion ID アサーションを使用するかどうかを指定します。ID アサーションが 定義されている場合はこの項目を選択します。このオプションは、初期送信側の ID のみが必要で、 SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されることを示します。 X.509 トークン・ジェネレーターの場合、 アプリケーション・サーバーはオリジナルの署名者認証のみを送信します。
    requestorCertificate 要求側の証明書を使用するかどうかを 指定します。

    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. IdentityAssertion オプションを使用するかどうか。 ID アサーションが 定義されている場合は、このオプションを選択します。このオプションは、初期送信側の ID のみが必要で、 SOAP メッセージ内の Web サービス・セキュリティー・ヘッダーに挿入されることを示します。 例えば、WebSphere Application Server は、 ユーザー名トークン・ジェネレーターの最初の呼び出し元のユーザー名のみを 送信します。
    2. RunAsSubject ID オプションを使用するかどうか。 ID アサーションが定義されていて、 ダウンストリーム呼び出しの ID アサーションに対して、初期呼び出し元 ID の代わりに Run As ID を使用する場合は、 このオプションを使用します。このオプションは、ユーザー名トークンをトークン・ジェネレーターとして 構成した場合にのみ有効です。
    3. sendRealm を使用するかどうか。
    4. nonce を指定するかどうか。

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

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

結果

Web サービス・セキュリティー API (WSS API) プロセスを使用して、 トークン・ジェネレーターを構成することができます。

次の作業

次に、同様のトークン・コンシューマー構成を指定する必要があります。



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