Web サービスへの XML デジタル・シグニチャーの追加

デジタル・シグニチャーを Web サービスに追加することによって、Web サービスの 保全性を確保し、情報が未認証で変更されないように保護することができます。

始める前に

前提条件: Web サービスを含むプロジェクトを作成またはインポートします。

このタスクについて

クライアントとサーバーは両方とも、XML デジタル・シグニチャーを使用して保護することができます。 XML デジタル・シグニチャーがクライアントとサーバー間の伝送で受け入れられるように するためには、シグニチャー情報がクライアントとサーバーの両方で設定されている 必要があります。 Web サービスに XML デジタル・シグニチャーを追加する手順は、次のとおりです。

手順

  1. Java™ EE パースペクティブに移動します。
    1. 「ウィンドウ」 > 「パースペクティブを開く」 > 「その他」を クリックします。
    2. リストから Java EE を選択し、「OK」をクリックします。
  2. 「プロジェクト・エクスプローラー」ビューの「Web サービス」タブを展開します。
  3. 「サービス」タブを展開します。
  4. ご使用のサービスを右クリックし、「Secure Web Service」 > 「Add Digital Signature」を 選択します。
  5. 「Integrity Message Parts」セクションでは、デフォルトで 1 つのメッセージ・ パーツが追加されています。ダイアレクト・ワードまたはキーワードを変更することで、 既存のデフォルトを変更することができます。さらにメッセージ・パーツを 追加することもできます。 使用可能なメッセージ・パーツ設定のメニューがあります。 デフォルト設定をお勧めしますが、メッセージ・パーツ設定に関する詳細情報が必要な場合は、「メッセージ・パーツ設定」を参照できます。
  6. 残りのデフォルトを受け入れ、「トークン・コンシューマー」ページに 進むには、「次へ」をクリックします。
    注:

    その他の使用可能なメニューによって、希望するシグニチャー方法アルゴリズムが選択できます。シグニチャー方法は、バインディング・ファイル内の正規化された <SignedInfo> 要素を <SignatureValue> 要素に変換するために使用されるアルゴリズムです。 コンシューマー用に指定されたアルゴリズムは、要求コンシューマーまたは応答コンシューマー構成のいずれかですが、要求ジェネレーターまたは応答ジェネレーター構成のいずれかである生成プログラム用に指定されたアルゴリズムと一致している必要があります。

    WebSphere® Application Server は、以下の事前構成されたアルゴリズムをサポートします。
    • http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • http://www.w3.org/2000/09/xmldsig#hmac-sha1
    • http://www.w3.org/2000/09/xmldsig#dsa-sha1
  7. ドロップダウン・リストから、使用するトークン・コンシューマーの タイプを選択します。
  8. 「Only trust Certificates with the following reference」を 選択します。 「Trust any certificate」オプションを選択した場合は、どのような XML デジタル・シグニチャーのクライアントでも、ご使用のサーバーにアクセスすることができます。 この証明書参照の追加の保護がなければ、ご使用のサーバーのセキュリティーは依然として危険にさらされたままになります。
  9. 証明書情報グループ内に必要な情報を記入します。
    1. 「Key store Path」フィールド内で、 デジタル・シグニチャーまで参照します。
    2. 「Key store storepass」フィールドに、選択された 鍵に対応するパスワードを入力します。
  10. 特定の X509 証明書を指定するには、「Use a certificate」チェック・ ボックスを選択します。このチェック・ボックスを選択しないと、X509 証明書による クライアント要求が受け入れられます。
  11. 残りのデフォルトを受け入れ、「OK」を選択して、 「Server Side Response Generator Digital Signature」ウィンドウに進みます。
  12. 「Integrity Message Parts」セクションでは、デフォルトで 1 つのメッセージ・ パーツが追加されています。ダイアレクト・ワードまたはキーワードを変更することで、 既存のデフォルトを変更することができます。さらにメッセージ・パーツを 追加することもできます。
  13. 残りのデフォルトを受け入れ、「トークン生成プログラム」ページに 進むには、「次へ」をクリックします。
  14. ドロップダウン・リストから、使用するトークン生成プログラムの タイプを選択します。
  15. 「Key Store Information」セクション内に必要な情報を入力します。
    1. 「Key store Path」フィールド内で、デジタル・シグニチャー鍵が置かれているパスを入力または参照します。
    2. 「Key Store Password」フィールドに、選択された シグニチャー鍵に対応するパスワードを入力します。
    「Use a key」チェック・ボックスを使用すると、 セキュリティーを XML デジタル・シグニチャーに追加することができます。 このオプションを選択した状態で、Web サービスをさらに保護するために、XML デジタル・ シグニチャーの別名およびパスワードを選択することができます。特定の X509 証明書を指定するには、「Use a certificate」チェック・ ボックスを選択します。
  16. 「終了」をクリックします。 これで、ご使用のサーバーが XML デジタル・シグニチャーで保護されるようになります。
  17. クライアントがサーバーにアクセスするには、以下のいずれかの方法を 使用して、クライアントに対応する XML デジタル・シグニチャーを作成する必要があります。
    • XML デジタル・シグニチャー・ウィザードを使用して、対応する デジタル・シグニチャーを作成する手順は、次のとおりです。
      1. クライアントを右クリックして、「Secure Web Service Client」 > 「Add XML Digital Signature」を 選択します。
      2. サーバーを保護するために使用したクライアント情報と同じ情報を使用して、 上のステップ 5 から 14 を行います。
    • サーバーに関するすべてのタイプのセキュリティーのセットアップが 終了した後で、「Based on a Secured Web Service」ウィザードを使用して、 クライアントの対応するデジタル・シグニチャーを作成することができます。
      1. クライアントを右クリックして、「Secure Web Service Client」 > 「Based on a Secured Web Service」を 選択します。
      2. ドロップダウン・メニューで対応するサーバーが選択されていることを 確認して、「次へ」をクリックします。
      3. 「Client Side Request Generator」内に必要な情報を記入します。
        1. 「Key store Path」フィールド内で、デジタル・シグニチャー鍵が置かれているパスを入力または参照します。
        2. 「Key Store Password」フィールドに、選択された シグニチャー鍵に対応するパスワードを入力します。
      4. 「次へ」をクリックします。
      5. 「Client Side Response Consumer」内に必要な情報を記入します。
      6. 「Only trust Certificates with the following reference」を 選択します。 「Trust any certificate」オプションを選択した場合は、どのような XML デジタル・シグニチャーのクライアントでも、ご使用のサーバーにアクセスすることができます。
      7. 「終了」をクリックします。

次のタスク

これで、XML デジタル・シグニチャー・セキュリティーが、保全性を 脅かすアタックからご使用の Web サービスを保護するようになります。リソース・パースペクティブに切り替えて、Web サービス .xmi ファイルを開くことにより、XML ソース内の変更を表示することができます。このファイルを開くには、「ウィンドウ」 > 「パースペクティブを開く」 > 「その他」を クリックし、「リソース」を選択して、「OK」をクリックします。 次に、yourProjectName/WebContent/WEB-INF/ ディレクトリーで 対応する .xmi ファイルを見つけます。

フィードバック