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

ここでは、署名するメッセージ・パーツを指定する際に、XPath 式を使用する場合とキーワードを使用する場合の違いについて説明します。
XPath 式
XPath 式を使用して任意のメッセージのパーツを指定します。XPath は、XML 文書のパーツを指定するために使用される言語です。 XPath の構文については、http://www.w3.org/TR/1999/REC-xpath-19991116 の Web サイトを参照してください。
キーワード
事前定義されたキーワードを使用してメッセージ内の要素のみを指定します。
このタスクを使用して、タイム・スタンプを特定の要素に組み込むことと、 要素に署名することを指定します。 以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、 キーワードを使用して保全性のためのタイム・スタンプを指定します。 要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 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_tmstmp を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、デジタル・シグニチャーを処理する順序を指定するもので、正整数にする必要があります。 順序の値に 1 を指定すると、その署名が最初に実行されます。
  6. 「保全性」ダイアログ・ウィンドウの「Timestamp」セクションで「追加」をクリックします。 以下のステップを実行して、タイム・スタンプ構成を指定します。
    1. 「Timestamp」セクションからタイム・スタンプのダイアレクトを選択します。 http://www.w3.org/TR/1999/REC-xpath-19991116 というダイアレクトは、 タイム・スタンプが追加され、XPath 式を使用して署名するメッセージ・パーツを指定します。
    2. タイム・スタンプが追加され、 XPath を使用して署名されるメッセージ・パーツを「Timestamp keyword」フィールドで選択します。 例えば、本文にタイム・スタンプを追加して署名することを指定するには、 「Timestamp keyword」に次の式を指定します。
      /*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Envelope']/*
      [namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/' and local-name()='Body']
    3. 「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 と表されます。

  7. 「Message Parts」セクションで「追加」をクリックし、 「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
  8. 「Message Parts」セクションで、メッセージ・パーツのキーワードを選択します。
    重要: 保全性のためのタイム・スタンプを指定するには、 「Message Parts」セクションに少なくとも 1 つのメッセージ・パーツを定義する必要があります。 このメッセージ・パーツは、タイム・スタンプの親要素と同様に署名されます。
  9. OK」をクリックして、構成の変更を保管します。
    注: これらの生成プログラムとコンシューマーの構成は一致している必要があります。
デジタル署名するメッセージ・パーツを指定した後、 メッセージのデジタル署名に使用する方式を指定する必要があります。 詳しくは、アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成を参照してください。
関連タスク
生成プログラム・セキュリティー制約への独立したタイム・スタンプの追加
XPath 式による生成プログラム・セキュリティー制約への保全性のための nonce の追加
アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成
キーワードによる生成プログラム・セキュリティー制約への保全性のための nonce の追加

フィードバック