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

第5部 Webサービス(SOAP)のセキュリティ> 第19章 ユーザ認証、SOAP電子署名、XML暗号を使用する方法> 19.2 SOAP電子署名の設定> 19.2.1 SOAPメッセージに対するSOAP電子署名の付加

19.2.1.3 SOAP電子署名付加の設定

 SOAP電子署名付加の設定をするには、Webサービス情報編集ツールを使用します。

 以下にサーバシステム環境で表示される詳細情報を表示した画面を示します。
 なおここでは、RPCアプリケーションの画面を例に説明します。

■署名対象の指定方法

 SOAP電子署名では、以下の2種類を署名対象とすることが可能です。

●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電子署名の署名対象とする場合には、以下のように指定します。

  ancestor::soapenv:Body

 ここで、"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) 富士通株式会社 2005