XPath 式を使用して署名すると想定されるメッセージ・パーツを指定できます。
始める前に
このタスクを実行する前に、
アプリケーションをアセンブリー・ツールにインポートする必要があります。
アプリケーションをインポートする方法については、エンタープライズ・アプリケーションのインポートを参照してください。
ここでは、署名するメッセージ・パーツを指定する際に、
XPath 式を使用する場合とキーワードを使用する場合の違いについて説明します。
- XPath 式
- XPath 式を使用して任意のメッセージ・パーツを指定します。XPath は、
XML 文書のパーツを処理する場合に使用される言語です。XPath 構文に関する情報は、
Web サイト http://www.w3.org/TR/1999/REC-xpath-19991116 で入手できます。
- キーワード
- 事前定義されたキーワードを使用して、メッセージ内のエレメントのみを指定します。
このタスクについて
以下のステップに従って、XPath 式を使用して署名すると想定されるメッセージ・パーツを指定します。
以下のステップでは、
ステップ 2 でクライアント・サイドの拡張機能を構成するか、ステップ 3 でサーバー・サイドの拡張機能を構成する必要があります。
プロシージャー
- アセンブリー・ツールを開始します。
- Java 2 Platform, Enterprise Edition (J2EE) パースペクティブへ切り替えます。
「ウィンドウ」>「パースペクティブのオープン」>「J2EE」とクリックします。
- オプション: プロジェクト・エクスプローラー・ウィンドウで、
クライアント・サイドの拡張機能を探します。
「Client Deployment Descriptor」ウィンドウが表示されます。
この Web サービスに、構成が必要な拡張機能が含まれています。
以下のステップを実行して、クライアント・サイドの拡張機能を見付けます。
- 「Web サービス」>「クライアント」とセクションを展開し、
Web サービスの名前をダブルクリックします。
- 「WS Extension」タブをクリックして、
「Response Consumer Configuration」セクションを展開します。
- オプション: 「Project Explorer」ウィンドウを使用して、サーバー・サイドの拡張機能を見付けます。
「Web Services Editor」ウィンドウが表示されます。
この Web サービスに、構成が必要な拡張機能が含まれています。
以下のステップを実行して、サーバー・サイドの拡張機能を見付けます。
- 「Web サービス」 > 「サービス」セクションと展開し、Web サービスの名前をダブルクリックします。
- 「拡張機能」タブをクリックして、
「Request Consumer Service Configuration Details」セクションを展開します。
- 「Required Integrity」セクションを展開します。 「保全性」はデジタル・シグニチャーを意味し、機密性は暗号化を意味します。
保全性によって、データがネットワーク内を伝送されている間に変更されるリスクが減少します。
SOAP メッセージへのデジタル署名の詳細については、XML デジタル・シグニチャー
を参照してください。
- 「追加」をクリックして、デジタル・シグニチャーの検証を行うメッセージ・パーツを指定します。
「Required Integrity」ダイアログ・ウィンドウが表示されます。以下のステップを実行し、構成を指定します。
- 「Required Integrity Name」フィールドに、保全性エレメントの名前を指定します。
- 「Usage type」フィールドで使用タイプを指定します。 このフィールドは、
保全性エレメントの要件を指定します。この属性の値は、
「必須」または「オプション」のいずれかです。
- 必須
- 「必須」を選択した場合、必要なメッセージ・パーツまたはエレメントに署名がなければ、
そのメッセージは拒否され、SOAP 障害が発行されます。
- オプション
- 「オプション」を選択した場合、署名があれば、
選択したメッセージ・パーツまたはエレメントにデジタル・シグニチャーがあるかどうかが検証されます。しかし、
選択したメッセージ・パーツまたはエレメントに署名がない場合、コンシューマーはそのメッセージを拒否しません。
- 「Required Integrity」ダイアログ・ウィンドウの「Message Parts」セクションで、「追加」をクリックします。
以下のステップに従って、メッセージ・パーツ・ダイアレクトとそのメッセージ・パーツを指定します。
- 「Required Integrity」ダイアログ・ウィンドウの「Message Parts」セクションから、メッセージ・パーツ・ダイアレクトを選択します。
http://www.w3.org/TR/1999/REC-xpath-19991116 ダイアレクトを選択すると、
デジタル・シグニチャーの検証を行うメッセージ・パーツが、XPath 式によって指定されます。
- 「Message parts keyword」フィールドで、
XPath 式を使用したデジタル・シグニチャーの検証を行うメッセージ・パーツを指定します。
例えば、メッセージの本文を検査して署名があるかどうかを判断するには、以下の式を、
「Message parts keyword」フィールドに連続した 1 行として追加します。
/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/'
and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/
soap/envelope/' and local-name()='Body']
重要: XPath 構文が正しいことを確認します。
- 「OK」をクリックして、構成変更を保管します。
注: 以上の構成は、コンシューマーとジェネレーターで一致している必要があります。
メッセージ・パーツのほか、
WebSphere Application Server が nonce およびタイム・スタンプ・エレメントのデジタル・シグニチャーを検査するように指定することもできます。
詳しくは、以下の項目を参照してください。