メッセージ・レベルでの SAML トークンの署名

表明の署名を使用可能にすることによって、メッセージ・レベルで SAML トークンを保護します。

始める前に

SAML トークンの署名を構成する前に、SAML ポリシー・セット およびバインディングを構成することによって、 メッセージ・レベルの保全性が保護される、認証をサポートするトークンとして、SAML トークンを作成する必要があります。詳しくは、『SAML を使用したメッセージの保護』を 参照してください。また、 関連付けられた SAML バインディングは、汎用バインディングではなく、アプリケーション固有の バインディングでなければなりません。汎用バインディングでは 1 つだけの変換アルゴリズムが使用されますが、 SAML アサーションの署名に使用される変換アルゴリズムは、署名される他のパーツとは異なり ます。

このタスクについて

このタスクは、特に SAML トークンをデジタル署名する方法の手順に対応します。 このタスクは、署名する必要があるメッセージ・パーツに対して、SAML sender-vouches トークンまたは SAML bearer トークンの SAML トークン・プロファイルの OASIS 標準の要件には対応しません。SAML アサーションに署名するには、SOAP メッセージは <wsse:Security> ヘッダー・ブロック内に <wsse:SecurityTokenReference> エレメントを含んでいる必要があります。SecurityTokenReference (STR) はメッセージ署名によって、<ds:Reference> エレメントを使用して参照されます。セキュリティー・トークン参照には、<wsse:KeyIdentifier> エレメントが含まれている必要があり、ValueType 値 http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID、または http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0#SAMLAssertionID で、参照される表明 ID が指定されている必要があります。<ds:Reference> エレメントには、STR 変換アルゴリズムの URI である http://docs.oasis-open.org/wss/2004/01/oasis-200401-wsssoap-message-security-1.0#STR-Transform が含まれている必要があります。STR 変換の使用によって、<wsse:SecurityTokenReference> エレメントだけでなく、SAML アサーション自体が確実に署名されます。

メッセージ・レベルで SAML トークン の署名を可能にするには、以下の構成ステップを実行します。

トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): 初期作成時に SAMLToken にカスタム属性を追加する唯一の方法は、SAML 属性コールバック・ハンドラーを使用することです。SAMLToken オブジェクトへの属性の追加を SAMLToken.addAttribute メソッドを使用して行うことができますが、 このメソッドは、トークンにデジタル署名がある場合はそれを削除します。また、このメソッドを暗号化された SAML トークンまたは暗号化された属性と共に使用することはできません。gotcha

手順

  1. メッセージ・パーツを構成します。
    1. 管理コンソールから SAML ポリシー・セット を編集し、「WS-Security」>「メイン・ポリシー」>「要求メッセージ・パーツ保護」とクリックします。
    2. 「保全性保護」で、「追加」をクリックします。
    3. 署名されるパーツの 名前」にパーツ名 (例: saml_part) を入力します。
    4. パーツ内のエレメント」の下で「追加」をクリックします。
    5. 「XPath 式」を選択します。
    6. 2 つの XPath 式を追加します。
      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/'
      and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' 
      and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='SecurityTokenReference']
      /*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
      and local-name()='Envelope']/*[namespace-uri()='http://www.w3.org/2003/05/soap-envelope' 
      and local-name()='Header']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='Security']/*[namespace-uri()='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd' 
      and local-name()='SecurityTokenReference']
    7. 「適用」「保存」をクリックします。
    8. このポリシーを使用してアプリケーションを開始したことがない場合は、これ以上のアクションは不要です。 開始したことがある場合は、アプリケーション・サーバーを再始動するか、記事「wsadmin スクリプトによるポリシー設定構成の更新」の手順に従い、アプリケーション・サーバーでポリシー・セットを再ロードします。
  2. SAML トークンを署名するためにクライアント・バインディングを変更します。
    1. 「サービス・クライアントのポリシー・セットおよびバインディング」パネルで、「WS-Security」>「認証および保護」とクリックします。
    2. 現在構成されている署名されたアウトバウンド・メッセージ・パーツ・バインディングを変更して、作成した新しい SAML パーツを含めるようにします。

      要求メッセージのシグニチャーと暗号化保護」の下で、状況が Configured に設定されたパーツ参照を選択します。恐らく、このパーツ参照は、request:app_signparts です。

      1. メッセージ・パーツ参照の下の「使用可能」リストから、 ステップ 1 で作成された、署名されるパーツの 名前 (例: saml_part) を選択します。
      2. 「追加」をクリックして、「適用」をクリックします。
      3. メッセージ・パーツ参照の下の「割り当て済み」リストで、 追加したパーツの名前 (例: saml_part) を強調表示します。
      4. 編集」をクリックします。
      5. 変換アルゴリズム」設定に対して「新規」をクリックします。
      6. http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform」を選択します。
      7. OK」をクリックしてから「OK」をクリックし、もう一度「OK」をクリックします。
    3. セキュリティー・トークン参照によってデジタル署名を示すために、カスタム・プロパティーを使用して SAML トークン生成プログラムを更新します。

      認証トークンの下で、署名したい SAML トークンを 選択し、編集します。

      1. 「カスタム・プロパティー」の下で、「新規」をクリックします。
      2. カスタム・プロパティー名として com.ibm.ws.wssecurity.createSTR と入力します。
      3. このカスタム・プロパティーの値として true を入力します。
      4. 「適用」をクリックしてから、「保存」をクリックします。
    4. アプリケーションを再始動します。
  3. 署名された SAML トークンを受け入れるようプロバイダー・バインディングを変更します。
    1. 「サービス・プロバイダーのポリシー・セットおよびバインディング」パネルで、「WS-Security」>「認証および保護」とクリックします。
    2. 現在構成されている署名されたインバウンド・メッセージ・パーツ・バインディングを変更して、作成した新しい SAML パーツを含めるようにします。

      要求メッセージのシグニチャーと暗号化保護」の下で、状況が Configured に設定されたパーツ参照を選択します。恐らく、このパーツ参照は、request:app_signparts です。

      1. メッセージ・パーツ参照の下の「使用可能」リストから、 ステップ 1 で作成された、署名されるパーツの 名前 (例: saml_part) を選択します。
      2. 「追加」をクリックして、「適用」をクリックします。
      3. メッセージ・パーツ参照の下の「割り当て済み」リストで、 追加したパーツの名前 (例: saml_part) を強調表示します。
      4. 編集」をクリックします。
      5. 変換アルゴリズム」設定に対して「新規」をクリックします。
      6. http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform」を選択します。
      7. OK」をクリックしてから「OK」をクリックし、もう一度「OK」をクリックします。
      8. 保存」をクリックします。
    3. アプリケーションを再始動します。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_signsamltoken
ファイル名:twbs_signsamltoken.html