Web サービス・プロバイダーにおけるポリシー構成の共有

WebSphere® Application Server サービス・プロバイダーは、 現在のポリシー構成を、Web サービス記述言語 (WSDL) を介して共有することができます。 ポリシー構成は、標準の WSDL WS-PolicyAttachment フォーマットになっているため、Web Services Policy (WS-Policy) 仕様をサポートする他のクライアント、サービス・レジストリー、またはサービスと共有することができます。

Java™ API for XML-Based Web Services (JAX-WS) サービス・エンドポイントのポリシー構成は、以下の方法で共有可能にすることができます。
  • サービス・プロバイダーのポリシー構成を WSDL に組み込みます。 これにより WSDL が、HTTP GET 要求を使用して、公開や取得に使用できるようになります。
  • サービス・プロバイダーのポリシー構成が WSDL に組み込まれ、WS-MetadataExchange GetMetadata 要求でその構成が使用できるように、Web Services Metadata Exchange (WS-MetadataExchange) プロトコルを使用可能に設定することができます。 適切なシステム・ポリシー・セットを使用して WS-MetadataExchange GetMetadata 要求にメッセージ・レベルのセキュリティーを適用できることが、WS-MetadataExchange プロトコルを使用する利点です。

システム管理者は、管理コンソールまたは管理コマンドを使用して、ファイル拡張子が .zip の公開された圧縮ファイルを通じて WSDL 文書にアクセスすることもできます。 しかし、圧縮ファイルで公開された静的 WSDL 文書は、アプリケーション・コードに存在する可能性のある Web サービス・フィーチャー、アノテーション、またはデプロイメント記述子エレメント (WS-Addressing アノテーションなど) を考慮に入れることができないため、この方法で入手した WSDL 文書は、HTTP GET 要求または WS-MetadataExchange プロトコルにより入手した WSDL 文書とは異なる可能性があります。

デフォルトでは、ポリシー共有はオフになっています。管理コンソールや wsadmin コマンドを使用して、サービス・プロバイダーのポリシー構成を WSDL に組み込んだり、その共有方法を指定したりできます。

ポリシー共有がオンになっている場合、以前 WSDL に組み込まれた WS-Policy の関連付けはすべて削除されます。 ポリシー構成情報は、WSDL で公開に使用できるようになりましたが、管理コンソールから直接 WSDL 文書を表示する場合や、管理エージェントを使用してリモートで WSDL を公開する場合には使用できません。

サービス・プロバイダー・アプリケーションで複数パーツ WSDL が使用されている場合、すべての WSDL は、Web サービス・アプリケーションに対してローカルでなければなりません。複数パーツの WSDL について詳しくは、WSDL に関するトピックを参照してください。

Security Assertion Markup Language (SAML) を使用するように 構成されたサービス・プロバイダーは、WebSphere Application Server クライアントまたはサービス・レジストリー で使用できるようポリシーを共有できます。SAML トークンが専有形式で公開される点に注意してください。

アプリケーション開発者は、Web サービスが生成される際に Rational® Application Developer ツールを使用して、サービス・プロバイダーがポリシー構成を共有すること、およびその共有方法を指定できます。 詳しくは、Rational Application Developer の資料を参照してください。

トランスポート・ポリシー情報は、HTTP、SSL および JMS などのトランスポート・ポリシーが WS-PolicyAttachment 形式で表せないため、ポリシー構成に組み込まれません。

ブートストラップ・ポリシー情報 (例えば、WS-Trust サービスにアクセスするポリシー) は、ブートストラップ・ポリシーが標準の公開可能な WS-PolicyAttachment 形式で表現されている場合には、ポリシー構成に組み込むことができます。

アプリケーション・レベルまたはサービス・レベルでポリシー構成を共有するようにサービス・プロバイダーを構成できます。 前のレベルに関連付けられたポリシー・セットで表されているポリシー構成も共有されます。 前のレベルで関連付けられたポリシー・セットによって、後のレベルで関連付けられたポリシー・セット構成がオーバーライドされます。

ポリシー情報をいくつかの方法で定義できます。 以下のリストは、優先順位の高い順に示されています。 例えば、デプロイメント記述子方式は、アプリケーション・コードでアノテーションやフィーチャーの使用をオーバーライドしますが、それ自体もポリシー・セットの使用によって、オーバーライドされます。
  • ポリシーを、アプリケーションにポリシー・セットを関連付けることによって定義する方法。
  • ポリシーを、port-component-ref エレメント内でデプロイメント記述子エレメントを使用することによって定義する方法。
  • ポリシーを、アプリケーション・コードでアノテーションまたはフィーチャーを使用することによって定義する方法。
  • ポリシーを、アプリケーションに同梱の WSDL 文書で WS-Policy 関連付けを使用することによって定義する方法。

アプリケーションがセル内にデプロイされている状態で、管理コンソールを使用して WSDL を公開している場合は、WSDL にセル内のデプロイメント・マネージャーのポリシー・セット構成が含まれています。どのポリシー・セットを変更しても、構成が更新されるまで、デプロイメント・マネージャーの構成に影響はありません。例えば、デプロイメント・マネージャーの再始動による、あるいはスクリプト・コマンドの実行によるデプロイメント・マネージャーのポリシー・セット構成の更新がこれに該当します。

次に、ポリシー構成の公開方法を制御するルールについて説明します。
  • ポリシー共有が使用可能になっている場合、WSDL 内の WS-Policy 関連付けが、サービスのポリシー構成を記述します。
  • ポリシー共有が使用可能になっていない場合は、以下のようになります。
    • HTTP GET 要求によって返される WSDL は、アプリケーションに同梱の WSDL です。
      注: このような WSDL は、変更せずに返されるので、サービスの構成にそぐわない、以前に存在した WS-Policy 関連付けが含まれる場合があります。
    • サービスに関連付けられた特定の WSDL 文書がない場合は、サーバー・ランタイムが自動的に WSDL 文書を生成し、それをサービスと関連付けます。 この場合、WSDL には WS-Policy 関連付けは含まれません。ただし、サービス実装に @Addressing アノテーションがある場合は例外で、その場合は、生成される WSDL の WS-Policy 関連付けで、@Addressing アノテーション構成が表現されます。

ポリシー構成共有に関するトラブルシューティング

構成を標準の WS-PolicyAttachments 形式で表せないため、サービス・プロバイダーがそのポリシー構成を共有できない場合があります。 原因の 1 つとして、互換性のない複数のポリシーが特定の関連付けポイントに定義されていることが考えられます。 また、標準ポリシーを生成するためのバインディング情報が不十分であることが原因である可能性もあります。ポリシー構成には、WS-Trust サービスにアクセスするためのポリシーなどのブートストラップ・ポリシーが組み込まれている場合があるため、そのブートストラップ・ポリシーも WS-PolicyAttachment 形式で表されている必要があります。

ポリシー構成が共有できない場合、問題を説明するエラーがサービス・プロバイダーのエラー・ログに書き込まれ、以下のポリシーがサービス・プロバイダーの WSDL に関連付けられます。
<wsp:Policy>
<wsp:ExactlyOne>
</wsp:ExactlyOne>
</wsp:Policy>
このポリシーによって、サービスに受け入れ可能なポリシー構成がないことがクライアントに通知されます。 WSDL のその他の部分には影響はありません。

トピックのタイプを示すアイコン 概念トピック



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