エレメントでタイム・スタンプの親エレメントが想定されるように指定できます。
さらに、メッセージ・パーツ用のシグニチャーにタイム・スタンプを組み込みます。
コンシューマーのセキュリティー制約を、
応答コンシューマーまたは要求コンシューマー用に構成します。
応答コンシューマーはクライアントに対して構成され、要求コンシューマーはサーバーに対して構成されます。
このタスクについて
以下のステップを実行します。ステップ 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」ダイアログ・ウィンドウが表示されます。「必要な保全性」でタイム・スタンプを構成する前に、
まず、署名の対象となるメッセージ・パーツまたはエレメントを少なくとも 1 つ構成する必要があります。
以下のステップを実行し、構成を指定します。
- 「Required Integrity Name」フィールドで、
保全性エレメントの名前を指定します。
- 「Usage type」フィールドで使用タイプを指定します。 このフィールドは、
保全性エレメントの要件を指定します。この属性の値は、
「必須」または「オプション」のいずれかです。以下のオプションを使用できます。
- 必須
- 「必須」を選択した場合、必要なメッセージ・パーツまたはエレメントに署名がなければ、
そのメッセージは拒否され、SOAP 障害が発行されます。
- オプション
- 「オプション」を選択した場合、署名があれば、
選択したメッセージ・パーツまたはエレメントにデジタル・シグニチャーがあるかどうかが検証されます。しかし、
選択したメッセージ・パーツまたはエレメントに署名がない場合、コンシューマーはそのメッセージを拒否しません。
- 「タイム・スタンプ」セクションで、
「追加」をクリックしてタイム・スタンプ・ダイアレクトを選択します。 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was ダイアレクトで、予想されるタイム・スタンプの親エレメントが指定されます。
このダイアレクトを選択した場合は、
「Timestamp keyword」という見出しの下にある以下のキーワードのいずれかを選択することができます。
- body
- メッセージのユーザー・データ部分を指定します。
body オプションを選択すると、
タイム・スタンプは SOAP 本体に埋め込まれます。また、タイム・スタンプの親 (SOAP 本体) は、
「Required Integrity」でメッセージ・パーツによって署名されるものと想定されます。
- securitytoken
- タイム・スタンプを、セキュリティー・トークン・エレメントに埋め込むように指定します。
また、タイム・スタンプの親 (セキュリティー・トークン) は、
「必要な保全性」でメッセージ・パーツによって署名されるものと想定されます。
- dsigkey
- タイム・スタンプを鍵情報エレメント (デジタル・シグニチャーに使用) に挿入し、
その鍵情報エレメントに署名するように指定します。
- enckey
- タイム・スタンプを鍵情報エレメント (暗号化に使用) に挿入し、
その鍵情報エレメントに署名するように指定します。
- messageid
- タイム・スタンプを <wsa:MessageID> エレメントに挿入し、
<wsa:MessageID> エレメントに署名するように指定します。
- to
- timestamp をメッセージ内の <wsa:To> エレメントに挿入し、
<wsa:To> エレメントに署名するように指定します。
- action
- <wsa:Action> エレメントに署名するように指定します。
- relatesto
- タイム・スタンプをメッセージ内の <wsa:RelatesTo>
エレメントに挿入し、<wsa:RelatesTo> エレメントに署名するように指定します。
- 「必要な保全性」でメッセージ・パーツを定義していない場合、
「必要な保全性」でタイム・スタンプを追加するには、
少なくとも 1 つのメッセージ・パーツを定義しておく必要があります。 以下のステップを実行して、メッセージ・パーツを定義します。
- 「メッセージ・パーツ」セクションで「追加」をクリックして、
「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
- 「メッセージ・パーツ」セクションで、メッセージ・パーツのキーワードを選択します。
- 「OK」をクリックして、構成変更を保管します。
注: 以上の構成は、コンシューマーとジェネレーターで一致している必要があります。
タイム・スタンプだけではなく、
nonce (ランダム・ストリング) にも署名するように指定することもできます。
詳しくは、以下の項目を参照してください。