キーワードによる生成プログラム・セキュリティー制約内のメッセージ要素への署名

以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、 どのメッセージ・パーツにデジタル署名するかを指定します。 要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 2 でクライアント・サイドの拡張機能、 またはステップ 3 でサーバー・サイドの拡張機能のいずれかを構成する必要があります。
  1. ウィンドウ」>「パースペクティブを開く」>「J2EE」の順にクリックします。
  2. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用してクライアント・サイドの拡張機能を検索します。 「Client Deployment Descriptor」ウィンドウが表示されます。 この Web サービスには、ユーザーが構成する必要のある拡張機能が含まれています。
    1. 「Web サービス」>「クライアント」セクションの順に展開して、 Web サービスの名前をダブルクリックします。
    2. WS Extension」タブをクリックして、「Request Generator Configuration」セクションを展開します。
  3. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用して、サーバー・サイドの拡張機能を検索します。 「Web Services Editor」ウィンドウが表示されます。 この Web サービスには、ユーザーが構成する必要のある拡張機能が含まれています。
    1. 「Web サービス」>「サービス」セクションの順に展開して、 Web サービスの名前をダブルクリックします。
    2. 拡張機能」タブをクリックして、「Response Generator Service Configuration Details」セクションを展開します。
  4. 「保全性」セクションを展開します。 機密性が暗号化を指すのに対して、保全性はデジタル・シグニチャーを指します。 保全性によって、ネットワーク間でデータを送信する際にデータが変更されるリスクが軽減されます。 Simple Object Access Protocol (SOAP) メッセージへのデジタル署名について詳しくは、 XML デジタル・シグニチャーを参照してください。
  5. 追加」をクリックして、署名するメッセージ・パーツを指定します。 「保全性」ダイアログ・ウィンドウが表示されます。
    1. 「Integrity Name」フィールドで保全性要素の名前を指定します。 例えば、int_webskey を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、デジタル・シグニチャーを処理する順序を指定するもので、正整数にする必要があります。 順序の値に 1 を指定すると、その署名が最初に実行されます。
  6. 「Message Parts」セクションの下の「追加」をクリックして、 メッセージ・パーツのダイアレクトを選択します。 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was というダイアレクトは、 キーワードを使用して署名するメッセージ・パーツを指定します。 このダイアレクトを選択すると、「Message parts keyword heading」の下で以下のキーワードのいずれかを選択できます。
    body
    メッセージのユーザー・データ部分を指定します。このキーワードを選択すると、本文に署名されます。
    timestamp
    メッセージ内の独立した timestamp 要素に署名することを指定します。 timestamp 要素は、メッセージが送信され、その後受信された時刻に基づいて、 メッセージが有効であるかどうかを判別します。 timestamp オプションを選択する場合は、 メッセージ内に独立した timestamp 要素があることを確認してください。 そのような要素が存在しない場合は、生成プログラム・セキュリティー制約への独立したタイム・スタンプの追加を参照してください。
    securitytoken
    SOAP メッセージ内の UsernameToken に署名することを指定します。
    dsigkey
    デジタル・シグニチャーに使用する鍵情報要素に署名することを指定します。
    enckey
    暗号化に使用する鍵情報要素に署名することを指定します。
    messageid
    メッセージ内の <wsa:MessageID> 要素に署名することを指定します。
    to
    メッセージ内の <wsa:To> 要素に署名することを指定します。
    action
    <wsa:Action> 要素が署名されることを指定します。
    relatesto
    メッセージ内の <wsa:RelatesTo> 要素に署名することを指定します。
  7. OK」をクリックして、構成の変更を保管します。
    注: これらの生成プログラムとコンシューマーの構成は一致している必要があります。

以下は、body キーワードと http://www.ibm.com/websphere/webservices/wssecurity/dialect-was というダイアレクトを使用して本文に署名される SOAP メッセージの例です。

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Header soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/
       2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType=
          "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" 
          wsu:Id="x509bst_956396521418196" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-wssecurity-utility-1.0.xsd"> MA0GCSqGSIb3DQEBBQUAA4GBAHkthdGDgCvdIL9/
          vXUo74xpfOQd/rr1owBmMdb1TWdOyzwbOHC7lkUlnKrkI7SofwSLSDUP571iiMXUx3tRdmAVCoDMMFuDXh9V7212lu
          Xccx0s1S5KN0D3xW97LLNegQC0/b+aFD8XKw2U5ZtwbnFTRgs097dmz09RosDKkLlM
         </wsse:BinarySecurityToken>
         <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                  <ec:InclusiveNamespaces PrefixList="wsse ds xsi soapenc xsd soapenv " 
                   xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
               </ds:CanonicalizationMethod>
               <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
               <ds:Reference URI="#wssecurity_signature_id_5945817517184298591">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces PrefixList="p896 xsi soapenc xsd wsu soapenv " 
                         xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                     </ds:Transform>
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                  <ds:DigestValue>vyu0JwXXSAvRCUCi6TPkeH8yUTU=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>dtbYA609wwAUAA8BmDmJlVHrWShy6OLJB3n4A6ToU0lI9tJrNhBksGqks17cykf+uHTJ
             cgOY18XrRDN4wHTW4zm/tmD5WqQd8K1WpYaGpbwlFoiwKVFNyfQn2K/WbZ2JccmZvJGFaOtqStg6TqSUGLQSA5
             MCSpZUhck545IY2F4=
            </ds:SignatureValue>
            <ds:KeyInfo>
               <wsse:SecurityTokenReference>
                  <wsse:Reference URI="#x509bst_956396521418196" ValueType="http://docs.oasis-open.org/
                   wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
               </wsse:SecurityTokenReference>
            </ds:KeyInfo>
         </ds:Signature>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    wsu:Id="wssecurity_signature_id_5945817517184298591" xmlns:wsu="http://docs.oasis-open.org/
    wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
      <p896:getVersion xmlns:p896="http://msgsec.wssecfvt.ws.ibm.com"/>
   </soapenv:Body>
</soapenv:Envelope>
デジタル署名するメッセージ・パーツを指定した後、 メッセージのデジタル署名に使用する方式を指定する必要があります。 詳しくは、アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成を参照してください。
関連概念
XML デジタル・シグニチャー
関連タスク
生成プログラム・セキュリティー制約への独立したタイム・スタンプの追加
XPath による生成プログラム・セキュリティー制約への保全性のためのタイム・スタンプの追加
XPath 式による生成プログラム・セキュリティー制約への保全性のための nonce の追加
アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成

フィードバック