このセクションでは、 XML Signer ツールを構成および適用する方法について説明します。 XML Signer ツールは、セキュリティのために XML 文書に署名するツールです。
このセクションの内容:

XML Signature とは

Web サービスのトランザクション中にインターネットを介してデータを安全に送信するには、セキュリティ標準を導入して、トランザクション中の各ユーザーが互いに相手を特定できるようにする必要があります。 W3C が推奨する XML Signature 規格は、 XML 文書中のあらゆるデータにデジタル署名をするプロセスを定義しています。XML Signature によって、 Web サービスのユーザーはトランザクションに関わる他のユーザーのアイデンティティを検証したり、 XML 文書の署名後にデータが変更されていないことを保証したりできます。OASIS は SOAP でこの規格が使用できるよう、この規格を活用します。

XML Signer ツールの構成

SOAtest の XML Signer ツールは、 W3C の XML Signature 標準をサポートします。ユーザーは XML Signer ツールを使って、 Web サービス トランザクションとして送信されるデータにデジタル署名できます。 XML Signer ツールでは、 XML 文書の個々の要素に署名することも、 XML 文書全体に署名することもできます。 この機能は、複数のパートナーやエンドポイント間で実行される Web サービス トランザクションで特に役立ちます。たとえば、 Web サービスを介して自動車を購入するトランザクションがあるものとします。この場合、購入者、融資担当者、および販売主が文書中のそれぞれの箇所に署名する必要があります。

[ツール設定] タブ

[ツール設定] タブの左ペインには、次のオプションが表示されます。

全般的な設定

[全般] では以下のオプションを設定できます。

キー ストア:

自分のアイデンティティを証明し XML データに署名するキーストアを、 [キーストア] ドロップダウン メニューから選択します。このメニューで利用できるキーストアは、ユーザーがテスト スイートまたはレスポンダー スイート レベルで追加したキーストアに依存します。キーストアの追加の詳細については、 「グローバル テスト スイート プロパティの追加 (SOAtest)」および「グローバル テスト スイート プロパティの追加 (Virtualize)」を参照してください。

アルゴリズム証明書キーを定義するのに使用する一意なアルゴリズムを指定します。
ダイジェスト メソッドデータ署名のためのメッセージ ダイジェスト アルゴリムを選択します。
正規形式署名されている情報の正規化形式を作成するのに使用するアルゴリズムを指定します。
KeyInfo の形式

KeyInfo は署名の中のオプション要素です。署名を検証するのに必要な公開鍵情報を含みます。POX または SAML (WS-Security モードはオフ) で Enveloped 署名をする場合にのみ適用されます。 KeyInfo要素の中に含めるオプションを選択してください。次のオプションが利用可能です。

  • X509 証明書: base64 エンコードの証明書を含む X509Data/X509Certificate 要素を含めます。  このオプションはデフォルトで推奨されています。
  • X509 IssuerSerial: 識別名/シリアル番号のペアを含む X509Data/X509IssuerSerial 要素を含めます。
  • X509 SKI: base64 エンコードのサブジェクト鍵識別子を含む X509Data/X509SKI 要素を含めます。このオプションをオンにするには、証明書は X.509 バージョン 3 である必要があります。
  • X509SubjectName: X.509 サブジェクト名を含む X509Data/X509SubjectName 要素を含めます。
  • パブリック KeyValue: 64base エンコードの公開鍵を含む KeyValue/RSAKeyValue 要素を含めます。
  • STR X509 証明書:  64base エンコードの証明書を含む awsse:SecurityTokenReference/wsse:KeyIdentifier 要素を含めます。
  • STR X509 SKI:   64base エンコードのサブジェクト鍵識別子を含む wsse:SecurityTokenReference/wsse:KeyIdentifier 要素を含めます。
WS-Security モード:

このモードをオンにすると、 SOAtest は OASIS WS-Security に準じて SOAP メッセージに署名します。 OASIS 標準のバージョンは [Emulation Options Settings] で設定します。 デフォルトでは、 [Target Elements Settings] で設定されたすべての SOAP ボディのコンテンツに自動で署名されます。このモードがオフのとき、 SOAtest はターゲット要素に Enveloped 署名をします。

[セキュリティ ヘッダーのレイアウト] ドロップダウン メニューから設定を選択して、WS-Security ヘッダーにアイテムを追加するときに、どのレイアウト ルールを適用するかを指定します。次のいずれかを選択できます。

  • Lax: アイテムが WSS: SOAP Message Security に準拠する順番でセキュリティ ヘッダーに追加されます。
  • LaxTimestampFirst: Lax と同様ですが、セキュリティ ヘッダーの最初のアイテムは wsse:Timestamp である必要があります。
  • LaxTimestampLast: Lax と同様ですが、セキュリティ ヘッダーの最後のアイテムは wsse:Timestamp である必要があります。
  • Strict: アイテムは、一般的な原則「使用前の宣言」に基づく、後述の番号付けされたレイアウト ルールに従ってセキュリティ ヘッダーに追加されます。

STR Dereference Transform (STRDT) アルゴリズムを使ってセキュリティ トークン参照 (STR) を参照することで署名に自動的にセキュリティ トークンを含めるには、[STR Dereference Transform (STRDT) を使用してセキュリティ トークンに署名する] を有効にします。デフォルトでは、署名は KeyInfo 要素の署名で自動生成された STR を参照します。別の STR (たとえばセキュリティ ヘッダーからの STR) を参照する場合は、ターゲット要素の設定で STR を含めてください。

SAML 署名を行う

OASIS SAML トークン プロファイルに基づいて SOAP メッセージに署名する場合、または SAML アサーションに Enveloped 署名をする場合にこのオプションをオンにします。

WS-Security モードがオフの場合: Enveloped SAML 署名 は、 [Target Elements Settings] で選択した SAML アサーションに形成されます。 Holder-of-Key 方式の確立メソッドを使用する SAML アサーションは一般的に Enveloped 署名を持つべきです。

WS-Security モードがオンの場合: SOAP エンベロープは OASIS SAML トークン プロファイルに基づいて署名されます。 署名が成功するには、適切なエミュレーション オプションを選択する必要があります。

  • SAML 1.1 の場合、WSS4J 1.5 以降または OASIS 1.1 以降を選択してください。
  • SAML 2 の場合、WSS4J 1.6 または OASIS 1.1.1 を選択してください。
キーストアの使用

リクエスターのキーストアを参照するには、このオプションを有効にします。このオプションは Holder-of-Key 方式の確立メソッドを使用する SAML アサーションにのみ適用されます。Sender-Vouches 方式の確立で典型的なように、アサーションが Enveloped 署名を持たない場合には、このオプションを無効にしてください。

WS-Security モードがオフの場合、キーストアは SAML アサーションに Enveloped 署名をする前に、ユーザーの public KeyInfo をアサーションの subject confirmation へ追加するために使用されます。アサーションがユーザーのキーを保持し、アサーション発行者によって署名されている場合、 Holder-of-Key シナリオでこれは適用可能です。

WS-Security モードがオンの場合、SOAP メッセージの署名が成功するには、次の 2 つの要件を満たす必要があります。

    1. Holder-of-Key アサーションは、このキーストアに参照されるユーザー証明書を保持する。 
    2. SOAP ヘッダー内のアサーションは、すでに Enveloped 署名がされている。

Holder-of-Key 方式の確立 を容易にするために、2 つの XML Singner ツールを連結できます。ひとつ目の XML Singner ツールは、ユーザーの public KeyInfo をアサーションの subject confirmation に任意で追加します。そしてアサーションに Enveloped 署名をします (WSS モードはオフ)。ふたつ目の XML Singner ツールは、 OASIS SAML トークン プロファイルに基づいた SAML アサーションを含む SOAP エンベロープに署名をします (WSS モードはオン) 。

WS-Security の設定

[WS-Security] では以下のオプションを設定できます。

フォーム暗号化に使用するキーおよび証明書を指定するための適切なフォームを選択します。
アクターSOAP アクターを指定します。
mustUnderstand = 1 の追加: メッセージの署名を受信側が認識して検証しなければならないかどうか。このオプションをオンにすると、受信側が署名ヘッダーの処理方法がわからない場合、 SOAP fault が返されます。
タイムスタンプの追加

メッセージにタイムスタンプを追加する場合、このチェックボックスをオンにします。オンにすると、以下のオプションを設定できます。

  • タイムスタンプに署名: タイムスタンプと共にデジタル証明を提供する場合、オンにします。
  • 有効期限の追加: 有効期限を入力する場合、オンにします。

ターゲット要素の設定


SOAP ボディ/ドキュメント全体: すべての SOAP ボディまたはすべての XML 文書に署名する場合、オンにします。

XPath を指定したり、 XML 文書中の特定の要素に署名したりするには:

  1. [SOAP ボディ/文書全体] オプションを無効し、[ツリー] タブをクリックします。
  2. 要素をクリックして [抽出] をクリックします。[選択された要素] リストに行が表示されます。
  3. [変更] をクリックして、署名したい XPath 表現を変更します。以下の抽出オプションが利用可能です。
    1. [要素全体] を選択すると、すべての XPath に署名します。
    2. [内容のみ] を選択すると、テキスト コンテンツだけに署名します。
  4. [XPath の評価] をクリックして変更を検証します。
  5. [OK] をクリックします。

エミュレーション オプションの設定

エミュレーション オプションの設定は、[General Settings] タブで [WS-Security モード] が選択されている場合にだけ選択できます。 

  1. 自動的にエミュレーション オプションを設定するには、使用しているアプリケーション サーバーを [エミュレート] ドロップダウン メニューから選択します。 
  2. [バージョン] ドロップダウン メニューからアプリケーション サーバーのバージョンを選択します。

エミュレート オプションを手動で設定するには、 [エミュレート] ドロップダウン メニューから [Custom] を選択します。以下のオプションが利用可能です:

  • wsse URI: 使用する WS-Security 仕様の名前空間 URI を選択します。
  • wsu URI: 使用する WS-Security 仕様のユーティリティ名前空間 URI を選択します。
  • 署名された要素の ’Id’ 属性を修飾する: 署名された要素の Id 属性を修飾します。
  • BinarySecurityToken 属性を修飾する: wsse 名前空間でバイナリ セキュリティ トークン属性を修飾します。
  • BinarySecurityToken 属性値に接頭辞をつける: wsse URI でバイナリ セキュリティ トークン属性に接頭辞をつけます。

[入力] タブ

[入力] タブは XML Signer ツールがスタンドアロン ツールとして追加されており、他のツールに接続されていない場合にだけ使用できます。[入力] タブでは次のオプションが使用できます。

  • テキスト: XML 文書を UIに書き込んだりコピーしたりする場合に選択します。適切な [MIME タイプ] を選択し、[テキスト] ラジオボタンの下のテキスト フィールドに XML を入力してください。
  • ファイル: 既存のファイルを使用する場合、このオプションを選択します。[ファイル システム] をクリックしてファイルを選択します。
    • ファイルへのパスを、現在のコンフィギュレーション ファイルからの相対パスとして保存したい場合、[相対パスで保存] をオンにします。このオプションをオンにすると、複数マシンでのテストの共有が容易になります。このオプションが無効な場合、テストまたはレスポンダーでこのファイルへのパスは絶対パスとして保存されます。

使用上の注意

XML Signer ツールは、スタンドアロン ツールとしてツール レベルで使用できます。それには、メインのテスト スイート ノードを右クリックしてショートカット メニューから [新規追加] > [テスト] を選択し、表示されたダイアログで XML Signer を選択します。   XML Signer ツールをメッセージング ツールに接続することもできます。接続するには、対象のメッセージング ツール ノードを右クリックし、ショートカット メニューの [出力の追加] をクリックして [出力の追加] ダイアログを開きます。 [出力の追加] ダイアログで [XML Signer] を選択します。メッセージング ツールは変換された XML を使用します。

SOAP メッセージに暗号化と XML 署名の両方をするために、 XML Signer ツールと XML Encryption ツールをひとつのメッセージング ツールに接続できます。XML Encryption ツールの詳細については、 「XML Encryption」を参照してください。

XML Signer ツールには、Edit ツールや Browse ツールのような任意のツールを接続することもできます。それには、対象の XML Signer ツール ノードを右クリックし、ショートカット メニューの [出力の追加] をクリックして [出力の追加] ダイアログを開きます。 [出力の追加] ダイアログで [XML Signer] を選択します。

Unlimited Strength Java Cryptography Extension

XML Signature Verifier ツール、 XML Signer ツール、XML Encryption ツール、またはキーストア (使用している場合) を使用して安全な操作を行うためには、 Unlimited Strength Java Cryptography Extension をダウンロードしてインストールする必要があります。詳細については 「JCE 前提条件」 を参照してください。

関連するチュートリアル

以下のチュートリアルでこのツールの使い方を説明しています。

  • No labels