特定のエレメントにタイム・スタンプを埋め込み、
そのエレメントに署名するよう指定することができます。
このタスクについて
以下のステップに従って、
ジェネレーターのセキュリティー制約を要求ジェネレーターまたは応答ジェネレーター用に構成するときに、
キーワードを使用して保全性用のタイム・スタンプを指定します。
要求ジェネレーターはクライアント用に構成され、
応答ジェネレーターはサーバー用に構成されます。
以下のステップでは、
ステップ 2 でクライアント・サイドの拡張機能を構成するか、ステップ 3 でサーバー・サイドの拡張機能を構成する必要があります。
プロシージャー
- アセンブリー・ツールを開始します。
- Java 2 Platform, Enterprise Edition (J2EE) パースペクティブへ切り替えます。
「ウィンドウ」>「パースペクティブのオープン」>「J2EE」とクリックします。
- オプション: プロジェクト・エクスプローラー・ウィンドウで、
クライアント・サイドの拡張機能を探します。
「Client Deployment Descriptor」ウィンドウが表示されます。
この Web サービスに、構成が必要な拡張機能が含まれています。
以下のステップを実行して、クライアント・サイドの拡張機能を見付けます。
- 「Web サービス」 > 「クライアント」セクションを展開し、Web サービスの名前をダブルクリックします。
- 「WS Extension」タブをクリックして、
「Request Generator Configuration」セクションを展開します。
- オプション: 「Project Explorer」ウィンドウを使用して、サーバー・サイドの拡張機能を見付けます。
「Web Services Editor」ウィンドウが表示されます。
この Web サービスに、構成が必要な拡張機能が含まれています。
以下のステップを実行して、サーバー・サイドの拡張機能を見付けます。
- 「Web サービス」>「サービス」とセクションを展開し、
Web サービスの名前をダブルクリックします。
- 「拡張機能」タブをクリックして、
「Response Generator Service Configuration Details」セクションを展開します。
- 「保全性」セクションを展開します。 機密性が暗号化を意味するのに対して、「保全性」はデジタル・シグニチャーを意味します。
保全性によって、データがネットワーク内を伝送されている間に変更されるリスクが減少します。
SOAP メッセージへのデジタル署名の詳細については、XML デジタル・シグニチャー
を参照してください。
- 「追加」をクリックして、保全性用のタイム・スタンプを指定します。
「保全性」ダイアログ・ウィンドウが表示されます。
以下のステップを実行し、構成を指定します。
- 「Integrity Name」フィールドで、
保全性エレメントの名前を指定します。
- 「順序」フィールドで順序を指定します。 この値は正の整数値で、
デジタル・シグニチャーの処理順序を指定するものです。
順序値 1 を指定すると、その署名が最初に実行されます。
- 「タイム・スタンプ」セクションで、
「追加」をクリックしてタイム・スタンプ・ダイアレクトを選択します。
http://www.ibm.com/websphere/webservices/wssecurity/dialect-was ダイアレクトで、
キーワードを使用してエレメントに署名する前にタイム・スタンプを追加するメッセージ・エレメントが指定されます。
このダイアレクトを選択した場合は、
「Timestamp keyword」という見出しの下にある以下のキーワードのいずれかを選択することができます。
- body
- メッセージのユーザー・データ部分を指定します。
body オプションを選択すると、SOAP の本文にタイム・スタンプが埋め込まれ、
その本文に署名されます。
- timestamp
- メッセージ内の独立したタイム・スタンプ・エレメントにタイム・スタンプを埋め込み、
そのエレメントに署名するように指定します。
timestamp オプションを選択する場合は、
メッセージ内に独立したタイム・スタンプ・エレメントが存在することを確認してください。
そのエレメントが存在しない場合は、独立したタイム・スタンプの、ジェネレーターのセキュリティー制約への追加
を参照してください。
- securitytoken
- セキュリティー・トークンがクライアントを認証するように指定します。このオプションを選択すると、
タイム・スタンプ・エレメントが securitytoken エレメントに埋め込まれ、
セキュリティー・トークンに署名されます。
- dsigkey
- タイム・スタンプを鍵情報エレメント (デジタル・シグニチャーに使用) に挿入し、
その鍵情報エレメントに署名するように指定します。
- enckey
- タイム・スタンプを鍵情報エレメント (暗号化に使用) に挿入し、
その鍵情報エレメントに署名するように指定します。
- messageid
- タイム・スタンプを <wsa:MessageID>
エレメントに挿入し、<wsa:MessageID> エレメントに署名するように指定します。
- to
- タイム・スタンプをメッセージ内の <wsa:To> エレメントに挿入し、
<wsa:To> エレメントに署名するように指定します。
- action
- <wsa:Action> エレメントに署名するように指定します。
- relatesto
- タイム・スタンプをメッセージ内の <wsa:RelatesTo>
エレメントに挿入し、<wsa:RelatesTo> エレメントに署名するように指定します。
- wscontext
- SOAP ヘッダーのための WS-Context ヘッダーを指定します。
- wsafrom
- SOAP ヘッダー内で、<wsa:From> WS-Addressing From エレメントを指定します。
- wsareplyto
- SOAP ヘッダー内で、<wsa:ReplyTo> WS-Addressing ReplyTo エレメントを指定します。
- wsafaultto
- SOAP ヘッダー内で、<wsa:FaultTo> WS-Addressing FaultTo エレメントを指定します。
- wsaall
- SOAP ヘッダー内で、すべての WS-Addressing elements エレメントを指定します。
- 「Timestamp expires」フィールドで、
タイム・スタンプの有効期限を指定します。 タイム・スタンプはリプレイ・アタック対策として有効です。
期間の字句表記は、[ISO 8601] 拡張フォーマット PnYnMnDTnHnMnS です。各部分の意味は以下のとおりです。
- P
- 日時の値の前に置きます。
- nY
- タイム・スタンプが有効な年数を表します。
0 から 99 年までの値を選択します。
- nM
- タイム・スタンプが有効な月数を表します。
0 から 11 カ月までの値を選択します。
- nD
- タイム・スタンプが有効な日数を表します。
0 から 30 日までの値を選択します。
- T
- 日時の値を分割します。
- nH
- タイム・スタンプが有効な時間数を表します。
0 から 23 時間までの値を選択します。
- nM
- タイム・スタンプが有効な分数を表します。
0 から 59 分までの値を選択します。
- nS
- タイム・スタンプが有効な秒数を表します。
秒数には、任意の精度の 10 進数を組み込むことができます。
秒数に 0 から 59 までの値と、10 分の 1 秒の単位で 0 から 9 までの値を選択することができます。
例えば、1 年、2 カ月、3 日、10 時間、および 30 分を示すフォーマットは、P1Y2M3DT10H30M です。
通常、メッセージ・タイム・スタンプは、10 分から 30 分の間で構成することができます。
例えば、
10 分は P0Y0M0DT0H10M0S または PT10M と表されます。
- 「メッセージ・パーツ」セクションで「追加」をクリックして、
「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
- 「メッセージ・パーツ」セクションで、メッセージ・パーツのキーワードを選択します。
重要: 保全性のタイム・スタンプを指定するには、
「メッセージ・パーツ」セクションで少なくとも 1 つのメッセージ・パーツを定義しておく必要があります。
- 「OK」をクリックして、構成変更を保管します。
注: 以上の構成は、ジェネレーターとコンシューマーで一致している必要があります。
タイム・スタンプだけではなく、
nonce (ランダム・ストリング) にも署名するように指定することもできます。
詳しくは、以下の項目を参照してください。
例
次の例は、
SOAP メッセージの本文に挿入され、署名されるタイム・スタンプを示しています。
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
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:Header soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/
2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType=
"http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-x509-token-profile-1.0#X509v3"
wsu:Id="x509bst_6212871821454005389" xmlns:wsu="http://docs.oasis-open.org/wss
/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> AgBgkqhkiG9w0BCQEWE21hcnV5Y
W1hQGpwLmlibS5jb22CAgEBMA0GCSqGSIb3DQEBBQUAA4GBAHkthdGDgCvdIL9/vXUo74xpfOQd/rr1owB
mMdb1TWdOyzwbOHC7lkUlnKrkI7SofwSLSDUP571iiMXUx3tRdmAVCoDMMFuDXh9V7212luXccx0s1S5KN
0D3xW97LLNegQC0/b+aFD8XKw2U5ZtwbnFTRgs097dmz09RosDKkLlM</wsse:BinarySecurityToken>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="wsse ds xsi soapenc xsd soapenv "
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#wssecurity_signature_id_493518228178200731">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="xsi soapenc xsd wsu soapenv "
xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>kKrcmc8saJ91JCNiE33UECoNYz8=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>XBpPju5+qH4bBFodO1kbBO54kEdBD0Pr5ohnXa3TPrDwXqmr67zDP3ZTk7iBS
ADnH+dlfKupFhx+NZu2h5/j1/KYWaR2HTTv/KYE6IdqXVz3EFglUIBLzQnJ2Zbn62eBx5Th285Cn2Vr
xtdb5BvUa1dt6M6k61CvRlz3/nMhQxk=</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#x509bst_6212871821454005389" ValueType=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-
token-profile-1.0#X509v3"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</soapenv:Header>
<soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
wsu:Id="wssecurity_signature_id_493518228178200731" xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<getVersion/>
<wsu:Timestamp wasextention="wedsig">
<wsu:Created>2004-10-12T15:58:19.201Z</wsu:Created>
</wsu:Timestamp>
</soapenv:Body>
</soapenv:Envelope>