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

ここでは、署名するメッセージ・パーツを指定する際に、XPath 式を使用する場合とキーワードを使用する場合の違いについて説明します。
XPath 式
XPath 式を使用して任意のメッセージのパーツを指定します。XPath は、XML 文書のパーツを指定するために使用される言語です。 XPath の構文については、http://www.w3.org/TR/1999/REC-xpath-19991116 の Web サイトを参照してください。
キーワード
事前定義されたキーワードを使用してメッセージ内の要素のみを指定します。

保全性のための nonce を使用して、nonce を特定の要素に組み込むことと、要素に署名することを指定します。nonce はランダムに生成された暗号トークンです。 メッセージの特定部分に nonce を追加すると、 生成された nonce が固有になるため、盗用やリプレイ・アタックを防ぐことができます。 例えば、nonce を使用しない場合、HTTP などの非セキュア・トランスポートを使用してマシン間でユーザー名トークンが渡されると、 トークンがインターセプトされてリプレイ・アタックで使用される可能性があります。 ユーザー名トークンは、XML デジタル・シグニチャーや XML 暗号化を使用していても盗まれる可能性があります。しかし、これは nonce を追加することで防ぐことができます。

以下のステップを実行して、要求ジェネレーターまたは応答ジェネレーターのいずれかの生成プログラム・セキュリティー制約を構成する際に、XPath 式を使用して保全性のための nonce を指定します。要求ジェネレーターはクライアント向けに、応答ジェネレーターはサーバー向けに、それぞれ構成されます。以下のステップでは、ステップ 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. 追加」をクリックして、保全性のための nonce を指定します。 「保全性」ダイアログ・ウィンドウが表示されます。 以下のステップを実行して、構成を指定します。
    1. 「Integrity Name」フィールドで保全性要素の名前を指定します。
    2. 「Order」フィールドで順序を指定します。 この値は、デジタル・シグニチャーを処理する順序を指定するもので、正整数にする必要があります。 順序の値に 1 を指定すると、その署名が最初に実行されます。
  6. 「保全性」ダイアログ・ウィンドウの「Nonce」セクションで「追加」をクリックします。 以下のステップを実行して、nonce のダイアレクトとメッセージ・パーツを指定します。
    1. 「Nonce」セクションから nonce のダイアレクトを選択します。 http://www.w3.org/TR/1999/REC-xpath-19991116 というダイアレクトは、nonce が追加され、XPath 式を使用して署名されるメッセージ・パーツを指定します。
    2. nonce が追加され、XPath 式を使用して署名されるメッセージ・パーツを「Nonce keyword」フィールドで選択します。 例えば、body に nonce を追加して署名されるように指定するには、 「Nonce 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']
  7. 「Message Parts」セクションで「追加」をクリックし、 「Message parts dialect」フィールドで http://www.w3.org/TR/1999/REC-xpath-19991116 を選択します。
  8. 「Message Parts」セクションで、メッセージ・パーツのキーワードを選択します。
    重要: 保全性のための nonce を指定するためには、 「Message Parts」セクションに少なくとも 1 つのメッセージ・パーツを定義する必要があります。 nonce の親要素と同様に、このメッセージ・パーツにも署名されます。
  9. OK」をクリックして、構成の変更を保管します。
    注: これらのコンシューマーと生成プログラムの構成は一致している必要があります。
nonce をメッセージ・パーツに追加して署名することを指定したら、 メッセージのデジタル署名に使用する方式を指定する必要があります。 詳しくは、アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成を参照してください。
関連概念
XML デジタル・シグニチャー
関連タスク
キーワードによる生成プログラム・セキュリティー制約への保全性のためのタイム・スタンプの追加
XPath による生成プログラム・セキュリティー制約への保全性のためのタイム・スタンプの追加
アセンブリー・ツールによる生成プログラム・バインディングの署名情報の構成

フィードバック