キーワードによる生成プログラム・セキュリティー制約への保全性のためのタイム・スタンプの追加

このタスクを使用して、タイム・スタンプを特定の要素に組み込むことと、 要素に署名することを指定します。 以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、 キーワードを使用して保全性のためのタイム・スタンプを指定します。 要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 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」フィールドで保全性要素の名前を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、デジタル・シグニチャーを処理する順序を指定するもので、正整数にする必要があります。 順序の値に 1 を指定すると、その署名が最初に実行されます。
  6. 「Timestamp」セクションで、「追加」をクリックして、タイム・スタンプのダイアレクトを選択します。 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was というダイアレクトは、 キーワードを使用して要素に署名する前にタイム・スタンプが追加されるメッセージ要素を指定します。 このダイアレクトを選択すると、「Timestamp keyword heading」の下で以下のキーワードのいずれかを選択できます。
    body
    メッセージのユーザー・データ部分を指定します。この body オプションを選択すると、 タイム・スタンプが Simple Object Access Protocol (SOAP) の本文に組み込まれ、本文に署名されます。
    timestamp
    タイム・スタンプがメッセージ内の独立した timestamp 要素に組み込まれ、署名されることを指定します。 timestamp オプションを選択する場合は、メッセージ内に独立した timestamp 要素があることを確認してください。 そのような要素が存在しない場合は、生成プログラム・セキュリティー制約への独立したタイム・スタンプの追加を参照してください。
    securitytoken
    セキュリティー・トークンがクライアントを認証することを指定します。 このオプションを選択すると、securitytoken 要素に timestamp 要素が組み込まれ、セキュリティー・トークンに署名されます。
    dsigkey
    デジタル・シグニチャーに使用する鍵情報要素にタイム・スタンプが挿入され、 鍵情報要素が署名されることを指定します。
    enckey
    タイム・スタンプが暗号化に使用される鍵情報要素に挿入され、 鍵情報要素が署名されることを指定します。
    messageid
    タイム・スタンプが <wsa:MessageID> 要素に挿入され、<wsa:MessageID> 要素が署名されることを指定します。
    to
    タイム・スタンプがメッセージ内の <wsa:To> 要素に挿入され、<wsa:To> 要素が署名されることを指定します。
    action
    <wsa:Action> 要素が署名されることを指定します。
    relatesto
    タイム・スタンプがメッセージ内の <wsa:RelatesTo> 要素に挿入され、<wsa:RelatesTo> 要素が署名されることを指定します。
  7. 「Timestamp expires」フィールドにタイム・スタンプの有効期限の時間を指定します。 タイム・スタンプは、リプレイ・アタックを防御するために役立ちます。 期間の字句表記は、以下のような [ISO 8601] の拡張形式 PnYnMnDTnHnMnS です。
    P
    日時の値の前に付けられます。
    nY
    タイム・スタンプの有効年数を表します。 0 から 99 年までの値を選択します。
    nM
    タイム・スタンプの有効月数を表します。 0 から 11 カ月までの値を選択します。
    nD
    タイム・スタンプの有効日数を表します。 0 から 30 日までの値を選択します。
    T
    日付と時刻の値を区切ります。
    nH
    タイム・スタンプの有効時間数を表します。 0 から 23 時間までの値を選択します。
    nM
    タイム・スタンプの有効分数を表します。 0 から 59 分までの値を選択します。
    nS
    タイム・スタンプの有効秒数を表します。 秒数には、任意の精度の 10 進数を指定できます。 秒数には 0 から 59 までの値、10 分の 1 の秒数には 0 から 9 までの値を、それぞれ選択できます。

    例えば、1 年、2 カ月、3 日、10 時間、 30 分を示す場合、その形式は P1Y2M3DT10H30M です。 一般に、メッセージのタイム・スタンプは 10 から 30 分の間で構成します。 例えば、10 分は P0Y0M0DT0H10M0S または PT10M と表されます。

  8. 「Message Parts」セクションで「追加」をクリックし、 「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
  9. 「Message Parts」セクションで、メッセージ・パーツのキーワードを選択します。
    重要: 保全性のためのタイム・スタンプを指定するには、 「Message Parts」セクションに少なくとも 1 つのメッセージ・パーツを定義する必要があります。
  10. OK」をクリックして、構成の変更を保管します。
    注: これらの生成プログラムとコンシューマーの構成は一致している必要があります。

以下は、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_6212871821454005389" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-wssecurity-utility-1.0.xsd"> AgBgkqhkiG9w0BCQEWE21hcnV5YW1hQGpwLmlibS5jb22
          CAgEBMA0GCSqGSIb3DQEBBQUAA4GBAHkthdGDgCvdIL9/vXUo74xpfOQd/rr1owBmMdb1TWdOyzwbOHC7lkUlnKrkI7
          SofwSLSDUP571iiMXUx3tRdmAVCoDMMFuDXh9V7212luXccx0s1S5KN0D3xW97LLNegQC0/b+aFD8XKw2U5ZtwbnFTRgs
          097dmz09RosDKkLlM</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_493518228178200731">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces PrefixList="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>kKrcmc8saJ91JCNiE33UECoNYz8=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>XBpPju5+qH4bBFodO1kbBO54kEdBD0Pr5ohnXa3TPrDwXqmr67zDP3ZTk7iBSADnH+dlfKup
             Fhx+NZu2h5/j1/KYWaR2HTTv/KYE6IdqXVz3EFglUIBLzQnJ2Zbn62eBx5Th285Cn2Vrxtdb5BvUa1dt6M6k61CvRlz3
             /nMhQxk=</ds:SignatureValue>
            <ds:KeyInfo>
               <wsse:SecurityTokenReference>
                  <wsse:Reference URI="#x509bst_6212871821454005389" 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_493518228178200731" xmlns:wsu="http://docs.oasis-open.org/
    wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
      <getVersion/>
      <wsu:Timestamp wasextention="wedsig">
         <wsu:Created>2004-10-12T15:58:19.201Z</wsu:Created>
      </wsu:Timestamp>
   </soapenv:Body>
</soapenv:Envelope>
デジタル署名するメッセージ・パーツを指定した後、 メッセージのデジタル署名に使用する方式を指定する必要があります。 詳しくは、アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成を参照してください。
関連タスク
生成プログラム・セキュリティー制約への独立したタイム・スタンプの追加
XPath 式による生成プログラム・セキュリティー制約への保全性のための nonce の追加
アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成
キーワードによる生成プログラム・セキュリティー制約への保全性のための nonce の追加

フィードバック