コンシューマーのセキュリティー制約を応答コンシューマーまたは要求コンシューマーに対して構成するときに、
署名が必要なメッセージ・パーツまたはエレメントを指定できます。
応答コンシューマーはクライアントに対して構成され、要求コンシューマーはサーバーに対して構成されます。
必要なパーツに署名がない場合、
その要求または応答は拒否され、
呼び出し元には SOAP 障害が戻されます。
このタスクについて
以下のステップを実行します。ステップ 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 障害が発行されます。
- オプション
- 「オプション」を選択した場合、署名があれば、
選択したメッセージ・パーツまたはエレメントにデジタル・シグニチャーがあるかどうかが検証されます。しかし、
選択したメッセージ・パーツまたはエレメントに署名がない場合、コンシューマーはそのメッセージを拒否しません。
- 「メッセージ・パーツ」セクションで「追加」をクリックして、
メッセージ・パーツ・ダイアレクトを選択します。
http://www.ibm.com/websphere/webservices/wssecurity/dialect-was
ダイアレクトで、キーワードによる署名が想定されるメッセージ・パーツまたはエレメントが指定されます。
このダイアレクトを選択した場合は、
「Message parts keyword」という見出しの下にある以下のキーワードのいずれかを選択することができます。
- body
- メッセージのユーザー・データ部分を指定します。
このキーワードを選択すると、本文に署名があるかどうかが検査されます。
- timestamp
- メッセージ内の独立したタイム・スタンプ・エレメントにデジタル・シグニチャーがあるかどうかを検査するように指定します。
タイム・スタンプ・エレメントは、メッセージの送信時刻と受信時刻を基にして、
メッセージが有効かどうかを判断します。
timestamp オプションを選択する場合は、
メッセージ内に独立したタイム・スタンプ・エレメントが存在することを確認してください。
そのエレメントが存在しない場合は、コンシューマー・セキュリティー制約での独立したタイム・スタンプの追加
を参照してください。
- securitytoken
- セキュリティー・トークンがクライアントを認証するように指定します。このキーワードを選択すると、
SOAP メッセージ内のセキュリティー・トークンが検査され、署名の有無が判断されます。
例えば、メッセージ内の UsernameToken エレメントを送信する場合は、
このキーワードを使用してそのエレメントに署名するように指定できます。
- dsigkey
- デジタル・シグニチャーに使用されている鍵情報エレメントを検査して、署名の有無を判断するように指定します。
- enckey
- 暗号化に使用されている鍵情報エレメントを検査して、署名の有無を判断するように指定します。
- messageid
- メッセージ内の <wsa:MessageID> エレメントを検査して署名の有無を判断するように指定します。
- to
- メッセージ内の <wsa:To> エレメントを検査して署名の有無を判断するように指定します。
- action
- <wsa:Action> エレメントを検査して署名の有無を判断するように指定します。
- relatesto
- メッセージ内の <wsa:RelatesTo> エレメントを検査して署名の有無を判断するように指定します。
- 「OK」をクリックして、構成変更を保管します。
注: 以上の構成は、コンシューマーとジェネレーターで一致している必要があります。
署名があると予想されるメッセージ・パーツまたはエレメントを指定するほか、
nonce および timestamp エレメントが署名対象エレメントに含まれると想定するように指定することもできます。
詳しくは、以下の項目を参照してください。