このセクションでは、 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)」を参照してください。キーストアの追加の詳細については、 「グローバル テスト スイート プロパティの追加 (SOAtest)」および「グローバル テスト スイート プロパティの追加 (Virtualize)」を参照してください。 |
---|---|
アルゴリズム | 証明書キーを定義するのに使用する一意なアルゴリズムを指定します。 |
ダイジェスト メソッド | データ署名のためのメッセージ ダイジェスト アルゴリムを選択します。 |
正規形式 | 署名されている情報の正規化形式を作成するのに使用するアルゴリズムを指定します。 |
KeyInfo の形式 | KeyInfo は署名の中のオプション要素です。署名を検証するのに必要な公開鍵情報を含みます。POX または SAML (WS-Security モードはオフ) で Enveloped 署名をする場合にのみ適用されます。 KeyInfo要素の中に含めるオプションを選択してください。次のオプションが利用可能です。
|
WS-Security モード: | このモードをオンにすると、 SOAtest は OASIS WS-Security に準じて SOAP メッセージに署名します。 OASIS 標準のバージョンは [Emulation Options Settings] で設定します。 デフォルトでは、 [Target Elements Settings] で設定されたすべての SOAP ボディのコンテンツに自動で署名されます。このモードがオフのとき、 SOAtest はターゲット要素に Enveloped 署名をします。 [セキュリティ ヘッダーのレイアウト] ドロップダウン メニューから設定を選択して、WS-Security ヘッダーにアイテムを追加するときに、どのレイアウト ルールを適用するかを指定します。次のいずれかを選択できます。
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 トークン プロファイルに基づいて署名されます。 署名が成功するには、適切なエミュレーション オプションを選択する必要があります。
|
キーストアの使用 | リクエスターのキーストアを参照するには、このオプションを有効にします。このオプションは Holder-of-Key 方式の確立メソッドを使用する SAML アサーションにのみ適用されます。Sender-Vouches 方式の確立で典型的なように、アサーションが Enveloped 署名を持たない場合には、このオプションを無効にしてください。 WS-Security モードがオフの場合、キーストアは SAML アサーションに Enveloped 署名をする前に、ユーザーの public KeyInfo をアサーションの subject confirmation へ追加するために使用されます。アサーションがユーザーのキーを保持し、アサーション発行者によって署名されている場合、 Holder-of-Key シナリオでこれは適用可能です。 WS-Security モードがオンの場合、SOAP メッセージの署名が成功するには、次の 2 つの要件を満たす必要があります。
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 文書中の特定の要素に署名したりするには:
- [SOAP ボディ/文書全体] オプションを無効し、[ツリー] タブをクリックします。
- 要素をクリックして [抽出] をクリックします。[選択された要素] リストに行が表示されます。
- [変更] をクリックして、署名したい XPath 表現を変更します。以下の抽出オプションが利用可能です。
- [要素全体] を選択すると、すべての XPath に署名します。
- [内容のみ] を選択すると、テキスト コンテンツだけに署名します。
- [XPath の評価] をクリックして変更を検証します。
- [OK] をクリックします。
エミュレーション オプションの設定
エミュレーション オプションの設定は、[General Settings] タブで [WS-Security モード] が選択されている場合にだけ選択できます。
- 自動的にエミュレーション オプションを設定するには、使用しているアプリケーション サーバーを [エミュレート] ドロップダウン メニューから選択します。
- [バージョン] ドロップダウン メニューからアプリケーション サーバーのバージョンを選択します。
エミュレート オプションを手動で設定するには、 [エミュレート] ドロップダウン メニューから [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
関連するチュートリアル
以下のチュートリアルでこのツールの使い方を説明しています。