アプリケーション・レベルで、クライアント・サイドの要求ジェネレーター・バインディングおよびサーバー・サイドの応答ジェネレーター・バインディングの署名情報を構成できます。
始める前に
サーバー・サイドの拡張ファイル (ibm-webservices-ext.xmi) および
クライアント・サイドのデプロイメント記述子拡張ファイル (ibm-webservicesclient-ext.xmi) では、
メッセージのどのパーツが署名されるかを指定する必要があります。
また、管理コンソール内の「署名情報」パネルで、鍵情報参照が参照する鍵情報を構成する必要があります。
このタスクについて
このタスクでは、アプリケーション・レベルで、
クライアント・サイドの要求ジェネレーターおよびサーバー・サイドの応答ジェネレーターの署名情報を構成するために必要なステップについて説明します。
WebSphere Application Server は、デフォルトのジェネレーターの署名情報を使用して、
本体、タイム・スタンプ、およびユーザー名トークンを含むメッセージのパーツに署名します。
アプリケーション・サーバーは、バインディングのデフォルト値を提供します。
しかし、管理者は実稼働環境に合わせてデフォルトを変更する必要があります。
以下のステップを実行して、
アプリケーション・レベルで、バインディング・ファイルのジェネレーター・セクションの署名情報を構成します。
プロシージャー
- 管理コンソールの「署名情報」構成パネルを見つけます。
- 「アプリケーション」>「エンタープライズ・アプリケーション」>「application_name」とクリックします。
- 「関連項目」の下で「EJB モジュール」または「Web モジュール」>「URI_name」とクリックします。
- 「追加プロパティー」の下で、要求ジェネレーターおよび応答ジェネレーターのバインディングの署名情報にアクセスすることができます。
- 要求ジェネレーター (送信側) バインディングについては、「Web サービス:
クライアント・セキュリティーのバインディング」をクリックします。
「要求ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 応答ジェネレーター (送信側) バインディングについては、「Web サービス:
サーバー・セキュリティーのバインディング」をクリックします。
「応答ジェネレーター (送信側) バインディング」の下の「カスタムの編集」をクリックします。
- 「必須プロパティー」の下の「署名情報」をクリックします。
- 「新規」をクリックして署名情報構成を作成するか、
構成の横にあるボックスを選択して「削除」をクリックすることで既存の構成を削除するか、
既存の署名情報構成の名前をクリックして、その設定を編集します。
新規構成を作成している場合は、「署名情報名」フィールドに名前を入力します。
例えば、gen_signinfo などです。
- 「Signature method」フィールドからシグニチャー方式アルゴリズムを選択します。
ジェネレーター (要求ジェネレーターまたは応答ジェネレーター構成のいずれか) 用に指定されるアルゴリズムは、
コンシューマー (要求コンシューマーまたは応答コンシューマー構成のいずれか) 用に指定されるアルゴリズムと一致している必要があります。
WebSphere Application Server は
次の事前構成済みアルゴリズムをサポートしています。
- 「Canonicalization method」フィールドから、正規化方式を選択します。
ジェネレーター用にユーザーが指定する正規化アルゴリズムは、
コンシューマー用のアルゴリズムと一致している必要があります。
WebSphere Application Server は
次の事前構成済みアルゴリズムをサポートしています。
- http://www.w3.org/2001/10/xml-exc-c14n#
- http://www.w3.org/2001/10/xml-exc-c14n#WithComments
- http://www.w3.org/TR/2001/REC-xml-c14n-20010315
- http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
- 「鍵情報署名タイプ」フィールドから鍵情報シグニチャー・タイプを選択します。
WebSphere Application Server は以下のシグニチャー・タイプをサポートしています。
- なし
- KeyInfo エレメントが署名されないように指定します。
- Keyinfo
- KeyInfo エレメント全体が署名されるように指定します。
- Keyinfochildelements
- KeyInfo エレメントの子エレメントが署名されるように指定します。
ジェネレーターの鍵情報シグニチャー・タイプは、コンシューマーのシグニチャー・タイプと一致している必要があります。
次の状態が発生する可能性があります。
- 上記のシグニチャー・タイプのいずれも指定しない場合、
WebSphere Application Server はデフォルトで keyinfo を使用します。
- Keyinfo または Keyinfochildelements を選択し、後続のステップで http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform を
変換アルゴリズムとして選択した場合、WebSphere Application Server は参照されるトークンにも署名します。
- 「署名鍵情報」フィールドから署名鍵情報参照を選択します。
ここで選択するのは、アプリケーション・サーバーがデジタル・シグニチャーを生成するために使用する署名鍵に対する参照です。
- 「OK」および「保管」をクリックして、構成を保管します。
- 新規署名情報構成の名前をクリックします。
この構成は、前のステップでユーザーが指定したものです。
- パーツ参照、ダイジェスト・アルゴリズム、および変換アルゴリズムを指定します。
パーツ参照は、メッセージのどのパーツをデジタル署名するかを指定します。
- 「追加プロパティー」の下で、「パーツ参照」>「新規」とクリックして新規パーツ参照を作成するか、
「パーツ参照」>「削除」とクリックして既存のパーツ参照を削除するか、
パーツ名をクリックして、既存のパーツ参照を編集します。
- このパーツ参照の固有のパーツ名を指定します。
例えば、reqint などです。
- 「パーツ参照」フィールドからパーツ参照を選択します。
このパーツ参照は、デジタル署名されるメッセージ・パーツを参照します。
パーツ属性は、<PartReference> エレメントがシグニチャーに対して指定されている場合、
デプロイメント記述子の <Integrity> エレメントの名前を参照します。
<SigningInfo> エレメント内で、複数の <PartReference> エレメントを指定することができます。
<PartReference> エレメントがシグニチャーに対して指定されている場合、このエレメントには
<DigestTransform> および <Transform> という 2 つの子エレメントがあります。
- メニューからダイジェスト方式アルゴリズムを選択します。
<DigestMethod> エレメント内で指定されるダイジェスト方式アルゴリズムは、
<SigningInfo> エレメントで使用されます。
WebSphere Application Server は http://www.w3.org/2000/09/xmldsig#sha1 に示されたアルゴリズムをサポートしています。
- 「OK」をクリックして、構成を保管します。
- 新規パーツ参照構成の名前をクリックします。
この構成は、前のステップでユーザーが指定したものです。
- 「追加プロパティー」の下で、「変換」>「新規」とクリックして新規変換を作成するか、
「変換」>「削除」とクリックして変換を削除するか、
変換名をクリックして、既存の変換を編集します。
新規変換構成を作成する場合は、固有の名前を指定します。
例えば、reqint_body_transform1 などです。
- メニューから変換アルゴリズムを選択します。
変換アルゴリズムは、<Transform> エレメント内で指定され、シグニチャーの変換アルゴリズムを指定します。
WebSphere Application Server は、以下のアルゴリズムをサポートしています。
- http://www.w3.org/2001/10/xml-exc-c14n#
- http://www.w3.org/TR/1999/REC-xpath-19991116
- http://www.w3.org/2002/06/xmldsig-filter2
- http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform
- http://www.w3.org/2002/07/decrypt#XML
- http://www.w3.org/2000/09/xmldsig#enveloped-signature
ジェネレーター用にユーザーが選択する変換アルゴリズムは、
コンシューマー用に選択する変換アルゴリズムと一致している必要があります。
重要: 以下の条件が両方とも真である場合、WebSphere Application Server は参照されるトークンに署名します。
- 以前、「署名情報」パネルの「鍵情報署名タイプ」フィールドから、
Keyinfo または Keyinfochildelements オプションを選択した。
- 変換アルゴリズムとして http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform を選択する。
- 「適用」をクリックします。
オプション: 包括的ネーム・スペース接頭部リストを使用不可に設定するかどうか決定します。
Exclusive XML Canonicalization Version 1.0
仕様では、ネーム・スペース接頭部に対応するすべてのネーム・スペース宣言を正規化形式で含めることを推奨しています。
セキュリティー上の理由から、WebSphere Application Server はデフォルトで、その接頭部を
Web サービス・セキュリティーのデジタル・シグニチャーに含めています。
ただし、Web サービス・セキュリティーの一部のインプリメンテーションでは、この接頭部リストを処理できません。
WebSphere Application Server は、接頭部リストの有無にかかわらず、デジタル署名されたメッセージを処理できます。
署名済み Simple Object Access Protocol (SOAP)
メッセージが送信されたときにシグニチャー検証に失敗し、その環境で別のベンダーを使用している場合は、
このプロパティーを使用不可に設定する前に、そのインプリメンテーション用の可能性のある修正がないかそのベンダーの Web サイトを確認することをお勧めします。
このプロパティーを使用不可に設定するには、以下のステップを実行します。
- 「追加プロパティー」の下の「Canonicalization method properties」>「新規」とクリックします。
- 「プロパティー名」フィールドに、com.ibm.wsspi.wssecurity.dsig.inclusiveNamespaces プロパティーを入力します。
- 「プロパティー値」フィールドに、false 値を入力します。
- 「OK」をクリックします。
このプロパティーは、要求ジェネレーターおよび応答ジェネレーターの両方の構成に設定できます。
- パネル上部の「保管」をクリックして、構成を保管します。
結果
これらのステップを完了すると、アプリケーション・レベルで、ジェネレーターの署名情報が構成されます。
次の作業
コンシューマーに対しても、同様の署名情報構成を指定する必要があります。