ジェネレーターのセキュリティー制約を要求ジェネレーターまたは応答ジェネレーターに対して構成するときに、XPath 式を使用して機密性を得るためのタイム・スタンプを指定できます。
要求ジェネレーターはクライアント用に構成され、
応答ジェネレーターはサーバー用に構成されます。
始める前に
このタスクを実行する前に、
アプリケーションをアセンブリー・ツールにインポートする必要があります。
アプリケーションをインポートする方法については、エンタープライズ・アプリケーションのインポートを参照してください。
ここでは、署名するメッセージ・パーツを指定する際に、
XPath 式を使用する場合とキーワードを使用する場合の違いについて説明します。
- XPath 式
- XPath 式を使用して任意のメッセージ・パーツを指定します。XPath は、
XML 文書のパーツを処理する場合に使用される言語です。XPath 構文に関する情報は、
Web サイト http://www.w3.org/TR/1999/REC-xpath-19991116 で入手できます。
- キーワード
- 事前定義されたキーワードを使用して、メッセージ内のエレメントのみを指定します。
このタスクについて
特定のエレメントにタイム・スタンプを埋め込み、
そのエレメントを暗号化するよう指定する場合には、このタスクを使用します。
以下のステップを実行します。ステップ 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」セクションを展開します。
- 「機密性」セクションを展開します。 機密性は暗号化に関連し、保全性はデジタル署名に関連します。機密性は、ネットワーク内を通過するメッセージが傍受されるリスクを軽減します。機密性仕様により、
メッセージは送信前に暗号化され、正当な宛先で受信されると暗号化解除されます。
暗号化について詳しくは、
XML 暗号化
を参照してください。
- 「追加」をクリックして、機密性用のタイム・スタンプを指定します。
「機密性」ダイアログ・ウィンドウが表示されます。
以下の情報を入力して、構成を指定します。
- 「Confidentiality Name」フィールドで、
機密性エレメントの名前を指定します。
- 「順序」フィールドで順序を指定します。 この値は正の整数値で、
暗号化の処理順序を指定するものです。
順序値 1 を指定すると、その暗号化が最初に実行されます。
- 「機密性」ダイアログ・ウィンドウの「タイム・スタンプ」セクションの下で「追加」をクリックします。
以下のステップを実行して、タイム・スタンプ情報を構成します。
- 「タイム・スタンプ」セクションからタイム・スタンプ・ダイアレクトを選択します。
http://www.w3.org/TR/1999/REC-xpath-19991116 ダイアレクトで、XPath 式を使用して暗号化するメッセージ・パーツが指定されます。
- 「Timestamp keyword」フィールドで、XPath 式を使用してタイム・スタンプが追加され、暗号化されるメッセージ・パーツを指定します。 例えば、タイム・スタンプが bodycontent エレメントに追加され、
暗号化されるように指定するには、以下の式を「Timestamp keyword」フィールドに 1 つの連続した行として追加します。
/*[namespace-uri()='http://schemas.xmlsoap.org/soap/envelope/'
and local-name()='Envelope']/*[namespace-uri()='http://schemas.xmlsoap.org/
soap/envelope/' and local-name()='Bodycontent']
- 「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 と表されます。
- 「メッセージ・パーツ」セクションで「追加」をクリックして、
「Message parts dialect」フィールドで http://www.ibm.com/websphere/webservices/wssecurity/dialect-was を選択します。
- 「メッセージ・パーツ」セクションで、メッセージ・パーツのキーワードを選択します。
重要: 機密性を得るためにタイム・スタンプを指定するには、
「メッセージ・パーツ」セクションで少なくとも 1 つのメッセージ・パーツを定義する必要があります。
ここで、メッセージ・パーツを選択するのは、タイム・スタンプの親エレメントに加えて、メッセージ・パーツを暗号化するためです。
- 「OK」をクリックして、構成変更を保管します。
注: 以上の構成は、コンシューマーとジェネレーターで一致している必要があります。
タイム・スタンプだけではなく、
nonce (ランダム・ストリング) にも署名するように指定することもできます。
詳しくは、以下の項目を参照してください。