署名者証明書暗号化のためのポリシー・セットおよびバインディングの構成

この手順では、署名者証明書暗号化のための JAX-WS コンシューマー/プロバイダーの構成方法を説明します。署名者証明書暗号化は、インバウンド要求メッセージのデジタル署名を検証するために使用されるクライアントのパブリック証明書が、アウトバウンド応答の暗号化に使用されることを意味します。

始める前に

このタスクでは、構成しているサービス・プロバイダーとクライアントが、JaxWSServicesSamples アプリケーション内にあることを想定しています。このアプリケーションの取得およびインストール方法について詳しくは、トピック『サンプルへのアクセス』を参照してください。

サーバーで以下のトレース仕様を使用します。 これらの仕様により、今後発生する可能性がある構成の問題をデバッグできます。
*=info:com.ibm.wsspi.wssecurity.*=all:com.ibm.ws.webservices.wssecurity.*=all:  com.ibm.ws.wssecurity.*=all:
    com.ibm.xml.soapsec.*=all: com.ibm.ws.webservices.trace.*=all:
    com.ibm.ws.websvcs.trace.*=all:com.ibm.ws.wssecurity.platform.audit.*=off:
    com.ibm.ws.webservices.multiprotocol.AgnosticService=all:
    com.ibm.ws.websvcs.utils.SecurityContextMigrator=all 

このタスクについて

この手順では、署名者証明書暗号化が使用されるため、クライアントのデジタル署名鍵ストアのみが使用されます。このサービスは、インバウンド要求から署名の検証に使用されるパブリック証明書を取得し、 それを使用して応答を暗号化します。プロバイダー側では、これを行うために、プロバイダーの暗号化ジェネレーターでカスタム・プロパティー com.ibm.wsspi.wssecurity.token.cert.useRequestorCert=true が使用されます。

この手順で使用される鍵ストアは WebSphere Application Server で用意されるもので、作成される各プロファイルにインストールされます。${USER_INSTALL_ROOT} 変数を構成内で直接使用すると、 完全修飾パスを使用しなくても、鍵ストアの場所を簡単にポイントできます。${USER_INSTALL_ROOT} は、c:/WebSphere/AppServer/profiles/AppSrv01 などのパスに解決されます。
${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
JaxWSServicesSamples の性質により、このアプリケーションにポリシー・セットおよびバインディングを適用するには、管理コンソールで「アプリケーション」 > 「アプリケーション・タイプ」 > 「WebSphere エンタープライズ・アプリケーション」 > 「JaxWSServicesSamples」とクリックします。独自のアプリケーションを使用する場合は、以下のパスを代替手段として使用して、ポリシー・セットおよびバインディングの関連付けの対象となるプロバイダーおよびクライアントにアクセスすることができます。
  • 「サービス」 > 「サービス・プロバイダー」 > 「(AppName)」
  • 「サービス」 > 「サービス・クライアント」 > 「(AppName)」
この手順では、タスクを単純化するために以下を行います。
  • アウトバウンド・デジタル署名およびインバウンド暗号化のみが構成されます。
  • クライアントとプロバイダーの両方で汎用バインディングが使用されます。
トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble):

このタスクを完了した後、戻って、作成した汎用バインディングを編集する必要がある場合は、更新内容を保存した後にアプリケーション・サーバーの再始動が必要です。汎用バインディングを作成して、アプリケーション・サーバーを再始動せずに、すぐに使用することもできますが、 汎用バインディングがアプリケーションによっていったんロードされたら、それ以降にバインディングに加えた変更はサーバーが再始動されるまで認識されません。

gotcha

手順

  1. カスタム・ポリシー・セットを作成します。
    1. 管理コンソールで、「サービス」 > 「ポリシー・セット」 > 「アプリケーション・ポリシー・セット」とクリックします。
    2. 「新規」をクリックします。
    3. name=OutSignInEncPolicy と指定します。
    4. 「ポリシー」の下で、「追加」 > 「WS-Security」とクリックします。
  2. カスタム・ポリシー・セットを編集して、アウトバウンド暗号化とインバウンド署名を削除します。
    1. 管理コンソールで、「WS-Security」 > 「メイン・ポリシー」とクリックします。
    2. 「メッセージ・レベルの保護」の下で、「要求メッセージ・パーツ保護」をクリックします。
    3. 「app_encparts」をクリックします。
    4. 削除」をクリックします。
    5. 「完了」をクリックします。
    6. 「応答メッセージ・パーツの保護」をクリックします。
    7. 「app_sigparts」をクリックします。
    8. 削除」をクリックします。
    9. 「完了」をクリックします。
  3. 「保存」をクリックして、構成変更を保存します。
  4. プロバイダー汎用バインディングを作成します。
    1. 管理コンソールで、「サービス」 > 「ポリシー・セット」 > 「汎用プロバイダー・ポリシー・セット・バインディング」とクリックします。 .
    2. 「プロバイダー・サンプル」をチェックします。
    3. 「コピー...」をクリックします。
    4. name=ProviderSignerCertGeneralBinding と指定します。
    5. 「OK」をクリックします。
  5. 署名者証明書暗号化を実行するように ProviderSignerCertGeneralBinding を編集します。
    1. 「ProviderSignerCertGeneralBinding」 > 「WS-Security」 > 「認証および保護」 > 「gen_encx509token」 > 「コールバック・ハンドラー」とクリックします。
    2. 「カスタム・プロパティー」の下で、以下を入力します。
      Name=com.ibm.wsspi.wssecurity.token.cert.useRequestorCert
      value=true
    3. 「鍵ストア」の下で、「Name=None」を選択します。
    4. 「OK」をクリックします。
  6. クライアント汎用バインディングを作成します。
    1. 管理コンソールで、「サービス」 > 「ポリシー・セット」 > 「汎用クライアント・ポリシー・セット・バインディング」とクリックします。
    2. 「クライアント・サンプル」をチェックします。
    3. 「コピー...」をクリックします。
    4. name=ClientSignerCertGeneralBinding と指定します。
    5. 「OK」をクリックします。
  7. メッセージを暗号化解除するために独自の署名鍵を使用するよう ClientSignerCertGeneralBinding を編集します。
    1. 「ClientSignerCertGeneralBinding」 > 「WS-Security」 > 「認証および保護」 > 「con_encx509token」 > 「コールバック・ハンドラー」 > 「カスタム鍵ストア構成」とクリックします。
    2. 「鍵ストア」の下で、署名ジェネレーターによって使用されるのと同じ鍵ストアを入力します。
      Full path=${USER_INSTALL_ROOT}/etc/ws-security/samples/dsig-sender.ks
      Type=JKS
      Password=client
    3. 「鍵」の下で、署名ジェネレーターによって使用されるのと同じ鍵を入力します。
      Name=CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP
      Alias=soaprequester
      Password=client
    4. 「OK」をクリックします。
  8. OutSignInEncPolicy ポリシー・セットおよび ClientSignerCertGeneralBinding 汎用バインディングを使用するようにクライアントを構成します。
    1. 管理コンソールで、「アプリケーション」 > 「アプリケーション・タイプ」 > 「WebSphere エンタープライズ・アプリケーション」 > 「JaxWSServicesSamples」 > 「サービス・クライアント・ポリシー・セットおよびバインディング」とクリックします。
    2. Web サービス・クライアント・リソース (JaxWSServicesSamples) を選択します。
    3. 「ポリシー・セットの関連付け」をクリックします。
    4. 「OutSignInEncPolicy」を選択します。
    5. Web サービス・クライアント・リソース (JaxWSServicesSamples) をもう一度選択します。
    6. 「バインディングの割り当て」を選択します。
    7. 「ClientSignerCertGeneralBinding」を選択します。
  9. SimpleSignEncPolicy ポリシー・セットおよび ProviderSignerCertGeneralBinding 汎用バインディングを使用するようにプロバイダーを構成します。
    1. 管理コンソールで、「アプリケーション」 > 「アプリケーション・タイプ」 > 「WebSphere エンタープライズ・アプリケーション」 > 「JaxWSServicesSamples」 > 「サービス・プロバイダー・ポリシー・セット・バインディング」とクリックします。
    2. Web サービス・プロバイダー・リソース (JaxWSServicesSamples) を選択します。
    3. 「ポリシー・セットの関連付け」をクリックします。
    4. 「OutSignInEncPolicy」を選択します。
    5. Web サービス・プロバイダー・リソース (JaxWSServicesSamples) をもう一度選択します。
    6. 「バインディングの割り当て」を選択します。
    7. 「PrioviderSignerCertGeneralBinding」を選択します。
  10. 「保存」をクリックして、構成変更を保存します。
  11. クライアントとプロバイダーを再始動します。
    1. クライアントとプロバイダーを停止します。
    2. クライアントとプロバイダーを再始動します。
  12. サービスをテストします。
    1. Web ブラウザーで JaxWSServicesSamples (http://localhost:9080/wssamplesei/demo) にアクセスします。
      トラブルの回避 (Avoid trouble) トラブルの回避 (Avoid trouble): プロバイダーが同じマシン上にない場合、またはポートが 9080 でない場合は、必ず正しいホスト名とポートを指定してください。gotcha
    2. 「Message Type Synchronous Echo」を選択します。
    3. 「SOAP 1.2 の使用 (Use SOAP 1.2)」が選択されていないことを確認します。
    4. メッセージを入力し、「メッセージの送信 (Send Message)」をクリックします。
    サンプル・アプリケーションが JAXWS==>Message で応答するはずです。

タスクの結果

JaxWSServicesSamples Web サービス・アプリケーションが、要求に署名するために使用された証明書を使用して応答を暗号化するように構成されました。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configpolicysetforsignerencrypt
ファイル名:twbs_configpolicysetforsignerencrypt.html