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

このタスクについて

このタスクを使用して、タイム・スタンプを特定の要素に組み込むことと、 要素に署名することを指定します。 以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、 キーワードを使用して保全性のためのタイム・スタンプを指定します。 要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 2 でクライアント・サイドの拡張機能、 またはステップ 3 でサーバー・サイドの拡張機能のいずれかを構成する必要があります。

手順

  1. ウィンドウ」>「パースペクティブを開く」>「J2EE」の順にクリックします。
  2. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用してクライアント・サイドの拡張機能を検索します。 「Client Deployment Descriptor」ウィンドウが表示されます。 この Web サービスには、構成が必要な拡張機能が含まれています。以下のステップを実行して、クライアント・サイドの拡張機能を検索します。
    1. 「Web サービス」 > 「クライアント」セクションを展開し、Web サービスの名前をダブルクリックします。
    2. WS 拡張」タブをクリックして、「要求生成プログラム構成」セクションを展開します。
  3. オプション: 「プロジェクト・エクスプローラー」ウィンドウを使用して、サーバー・サイドの拡張機能を検索します。 「Web Services Editor」ウィンドウが表示されます。 この Web サービスには、構成が必要な拡張機能が含まれています。以下のステップを実行して、サーバー・サイドの拡張機能を検索します。
    1. 「Web サービス」 > 「サービス」セクションを展開し、Web サービスの名前をダブルクリックします。
    2. 拡張機能」タブをクリックして、「応答ジェネレーター・サービス構成の詳細」セクションを展開します。
  4. 「保全性」セクションを展開します。 機密性が暗号化を指すのに対して、保全性はデジタル・シグニチャーを指します。 保全性によって、ネットワーク間でデータを送信する際にデータが変更されるリスクが軽減されます。 Simple Object Access Protocol (SOAP) メッセージへのデジタル署名について詳しくは、 XML デジタル・シグニチャーを参照してください。
  5. 追加」をクリックして、保全性のためのタイム・スタンプを指定します。 「保全性」ダイアログ・ウィンドウが表示されます。 以下のステップを実行して、構成を指定します。
    1. 「Integrity Name」フィールドで保全性要素の名前を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、デジタル・シグニチャーを処理する順序を指定するもので、正整数にする必要があります。 順序の値に 1 を指定すると、その署名が最初に実行されます。
  6. 「タイム・スタンプ」セクションで、「追加」をクリックして、タイム・スタンプのダイアレクトを選択します。 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>

次のタスク

デジタル署名するメッセージ・パーツを指定した後、 メッセージのデジタル署名に使用する方式を指定する必要があります。 詳しくは、アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成を参照してください。

フィードバック