Interstage Application Server セキュリティシステム運用ガイド
|
目次
索引

|
21.3.1.3 SOAP電子署名付加の設定
SOAP電子署名付加の設定をするには、Webサービス情報編集ツールを使用します。
以下にサーバシステム環境で表示される詳細情報を表示した画面を示します。
なおここでは、RPCアプリケーションの画面を例に説明します。

- Webサービス識別名
Webサービスの識別名を入力します。
Webサービス識別名の指定方法については、“SOAPサービス ユーザーズガイド”の“Webサービス情報の管理”の“Webサービス識別名とURL”を参照してください。
- [サーバ機能]:レスポンス送信設定:SOAP署名付加
- [クライアント機能]:リクエスト送信設定:SOAP署名付加
SOAPメッセージのリクエスト / レスポンス送信時にSOAP電子署名の付加の有無を設定します。
デフォルト値は“しない”です。
- [サーバ機能]:レスポンス送信設定: “詳細”ボタン
- [クライアント機能]:リクエスト送信設定:“詳細”ボタン
SOAP電子署名付加設定の“詳細”/“標準”切り替えを行うボタンです。
上図は、“詳細”ボタンを押下した状態です。
- SOAP署名対象
署名の対象を指定します。
署名対象のXMLタグに、ID属性が付いている場合やAttachmentデータ(添付ファイル)を署名する場合、"URI/ID"を選択して署名対象を記述します。
XPathを利用して署名対象を指定する場合、"XPath"を選択して署名対象を記述します。
署名対象の指定方法については、“署名対象の指定方法”を参照してください。
- XPath
署名対象の指定方式を設定します。設定方法は"XPath"もしくは"URI/ID"の2択です。デフォルトは"XPath"です。
- “追加”ボタン
“署名対象”は任意個指定が可能です。2箇所以上に署名する場合、“追加”ボタンを押下し、署名対象を追加してください。
- [サーバ機能]リクエスト送信設定:宛先role(actor)名指定
- [クライアント機能]レスポンス送信設定:宛先role(actor)名指定
SOAPメッセージの中継者(intermediary)に何らかの処理を行わせたい場合に、中継者のURIを指定します。省略した場合には、SOAPメッセージの最終到達者(ultimate destination)に対する振る舞いを指定していることになります。
- [サーバ機能]リクエスト送信設定:mustUnderstand
- [クライアント機能]レスポンス送信設定:mustUnderstand
SOAPメッセージの受信者がヘッダ中の要素を必ず処理しなければならないのか、選択可能であるのかを指定します。
デフォルトは“処理を行う必要なし”です。

- Webサービス情報編集ツールでSOAP電子署名の付加機能を有効にすると、設定した内容に基づき送信するSOAPメッセージに対して自動的にSOAP電子署名を付加します。
- 詳細を設定しない場合、SOAPメッセージのSOAPボディ要素に記載した内容からコメントを削除し、XML正規化(canonicalization)した結果に対して署名します。
- SOAP電子署名付加については、soapsecsignconfコマンドを利用しても設定することが可能です。soapsecsignconfコマンドについては、“リファレンスマニュアル(コマンド編)”を参照してください。
SOAP電子署名では、以下の2種類を署名対象とすることが可能です。
- SOAPエンベロープ内部の任意のノード
- Attachmentデータ(添付ファイル)
●IDによる署名対象の指定
SAAJ-APIを利用してSOAPメッセージを付加した場合、署名対象となる要素にID型の属性を追加しておくことが可能です。SOAP電子署名では、以下の属性をID型とみなします。
名前空間URI:http://schemas.xmlsoap.org/ws/2002/07/utility
ローカル名:"Id" |
ID型の属性を持つ要素を署名対象とする場合、署名対象を"#"(シャープ文字)の後ろにID型の属性値を指定します。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body xmlns:wsu="http:// schemas.xmlsoap.org/ws/2002/07/utility" wsu:Id="body">
<m:ResponseBody xmlns:m="urn:SampleMsg">
<Response>response string...</Response>
</m:ResponseBody>
</soapenv:Body>
</soapenv:Envelope> |
上記SOAPメッセージに対して署名対象として"#body"を指定すると、<soapenv:Body>およびその内容が署名対象となります。
●XPathによる署名対象の指定
XPath指定の場合、SOAPエンベロープ内すべてのノードに対してXPath式を評価した結果が真となるノードが署名対象となります。
●SOAPボディの内容を署名対象とする場合の指定方法
SOAPボディのみをSOAP電子署名の署名対象とする場合には、以下のように指定します。
ここで、"soapenv"はSOAPBodyの名前空間プレフィックスを表します。プレフィックスを変更した場合、XPathで指定する場合にもその値を指定する必要があります。
●任意の要素を署名対象とする場合の指定方法
"urn:sample"という名前空間URIと"localName"という名前を持つ要素をSOAP電子署名の署名対象とする場合、以下のように指定します。
ancestor-or-self::*[local-name()='localName' and namespace-uri()='urn:sample'] |
●Content-Idによる署名対象の指定
SOAPメッセージに含まれる添付ファイル(Attachmentデータ)をSOAP電子署名の署名対象とする場合、署名対象として、"cid:"の後ろにMIMEヘッダ"Content-Id"の値を続けた文字列で指定します。
All Rights Reserved, Copyright(C) 富士通株式会社 2006