Web サービス・クライアントであるアプリケーションは、WebSphere Service Registry and Repository (WSRR) などのレジストリーから Web サービス・プロバイダーのポリシー構成を取得し、その情報を使用して、クライアントおよびサービス・プロバイダーの両方に許容されるポリシー構成を設定できます。
始める前に
すべての必要な成果物を含む Web サービス・クライアントを開発し、
Web サービス・アプリケーションをアプリケーション・サーバー・インスタンスにデプロイしました。必要に応じて、ポリシー・セットを関連付け、関連するバインディングを管理しました。
サービス・プロバイダーのポリシーに関する Web サービス記述言語 (WSDL)、およびそれに対応するポリシーとポリシーの関連付けは、
WSRR などのレジストリーに格納されます。
このポリシーには、WS-PolicyAttachments 形式のポリシー構成が含まれている必要があります。 クライアントによってそのプロバイダー・ポリシーのサポートが可能である必要があります。
レジストリー (例えば、WSRR バージョン 6.2 以降) は、WS-Policy の関連付けを含む WSDL を公開するための HTTP GET 要求の使用をサポートする必要があります。
サポートされる WS-Policy アサーション仕様および WS-Policy ドメインのリストについては、WS-Policyのトピックを参照してください。
このタスクについて
レジストリーに格納されているサービス・プロバイダーのポリシーに基づいて、クライアントが実行時に動的にクライアント自身を構成するように管理できます。
また、レジストリーから取得するプロバイダー・ポリシーをサービス・レベル
またはサービス参照レベル
で
動的に適用するように、クライアントを管理することができます。デフォルトでは、エンドポイントおよび操作は、関連サービスからポリシー構成を継承します。
ただし、
エンドポイントおよび操作がポリシー構成をサービス参照から継承する場合に
サービスをオーバーライドするようにサービス参照を
構成することができます。
アプリケーション・レベルでレジストリーから取得するプロバイダー・ポリシーを動的に適用するようにクライアントを管理することはできません。
管理コンソールを使用することにより、レジストリーに格納されているサービス・プロバイダー・ポリシーを使用するようにクライアント・ポリシーを構成できます。
また、wsadmin コマンドを使用して、レジストリーに格納されているサービス・プロバイダー・ポリシーを使用するようにクライアント・ポリシーを構成することもできます。
手順
- 管理コンソールのナビゲーション・ペインで、
をクリックします。
- 構成する Web サービス・クライアント・アプリケーションをクリックします。
- をクリックします。
- ポリシーを適用するサービスの行で、「適用されたポリシー」列のリンクをクリックします。 アプリケーション・レベルでポリシーを適用することはできません。 「適用されるポリシー (Policies applied)」ペインが表示されます。
- ドロップダウン・リストから次のオプションのうちの 1 つを選択します。
- プロバイダーのポリシーのみ (Provider policy only)。サービス・プロバイダーのポリシーのみに基づいてクライアントを構成します。このオプションは、クライアント・ポリシー・セットが関連付けられていない場合に使用できます。
- クライアントおよびプロバイダーのポリシー (Client and provider policy)。クライアント・ポリシー・セットとサービス・プロバイダーのポリシーの両方に基づいてクライアントを構成します。
このオプションは、クライアント・ポリシー・セットが関連付けられている場合に使用できます。
リスト内のその他のオプションはこのタスクには適用されません。
- 「HTTP GET 要求」をクリックします。
- 「要求ターゲットの指定」をクリックした後、
フィールドにプロバイダー・ポリシーのロケーションの URL (すなわち、WSDL およびポリシーのリポジトリーにあるアドレス) を入力します。 WSRR を使用した、ポリシーが組み込まれた WSDL 文書の取得、およびその結果としての必要な URL の取得について詳しくは、WSRR の資料を参照してください。
以下の例では、標準的な URL を示します。
https://www.wsrr.host/WSRR/6.2/PolicyService/
WSDL?bsrURI=3b9b493b-278f-4f64.ba3f.dabd30da3f7e
- 「OK」をクリックします。
- オプション: クライアントとレジストリーの間で Secure Sockets Layer (SSL) プロトコルを使用するセキュア接続がある場合は、アプリケーション・サーバーとレジストリー・サーバーの間でトラストが確立されていることを確認してください。 レジストリーにアクセスするため、クライアントはそのサービス・レベルのアプリケーション・ポリシーの一部である SSL トランスポート・ポリシーを使用します。
例えば、WSRR に対しては、ブラウザー・ウィンドウに WSRR サーバーの URL を入力できます。
WSRR サーバーがまだトラステッドではない場合は、
セキュリティー証明書がトラステッドではないことを示すメッセージが表示されます。
トラストを確立するには、以下のステップを使用してください。
- WSRR サーバーから X.509 証明書を取得して保管します。
メッセージのオプションを使用してその証明書の詳細を表示し、バイナリー形式でエンコードされた DER (Distinguished Encoding Rules) を使用して、その詳細をファイルに保存します。
- クライアントが使用する鍵ストア (すなわち、クライアント・アプリケーション・ポリシー・セットの SSL セキュリティー・トランスポート・バインディングによって示される鍵ストア) を特定します。
SSL トランスポート・ポリシーの構成を参照してください。例えば、鍵ストアはノードのデフォルト・トラストストアである場合があります。
- ステップ a で保存した署名者証明書を、クライアントが使用する鍵ストアに追加します。
鍵ストアへの署名者証明書の追加を参照してください。
- オプション: レジストリーにアクセスするため、クライアントはそのサービス・レベルのアプリケーション・ポリシーの一部であるトランスポート・ポリシーを使用します。
レジストリーで HTTP プロトコルを使用した認証が必要である場合は、
アプリケーション・レベルのトランスポート・ポリシー・バインディング構成の一部として有効なユーザー名とパスワードを構成します。 許可クレデンシャルは、Web サービス・エンドポイントおよびレジストリーの両方との対話に使用されるため、保護することをお勧めします。
- アプリケーション・レベルまたはサービス・レベルで付加された HTTP トランスポート・ポリシーが含まれるポリシー・セットがクライアントにあることを確認します。
サービス・クライアント用ポリシー・セットおよびバインディングの アプリケーション・レベルでの管理 (管理コンソールを使用)にある関連するステップを参照してください。
- クライアント・サンプルという名前のバインディング用に HTTP トランスポート・クライアント・バインディングを構成し、
レジストリーでアウトバウンド・サービス要求の認証に必要となるユーザー名とパスワードを入力します。
HTTP トランスポート・ポリシーの構成にある関連するステップを参照してください。
- 変更をマスター構成に保存します.
タスクの結果
Web アプリケーション・クライアント・サイドのポリシーは、選択したオプションに応じて、サービス・プロバイダーのポリシー、またはクライアント・ポリシー・セットとサービス・プロバイダーのポリシーのいずれかに基づいて、実行時に必要となった時点で計算されます。この計算されたポリシーは「有効なポリシー」として認識され、ランタイム構成としてキャッシュされます。 有効なポリシーは、動的ポリシー計算を実行したエンドポイントまたは操作への後続のアウトバウンド Web サービス要求に使用されます。クライアントのポリシー・セット構成は変更されません。
サービスに対してクライアントが保持している
プロバイダー・ポリシーは、アプリケーションがロードされた後、Web サービスが
最初に呼び出される際に更新されます。それ以降は、このプロバイダー・ポリシーは、アプリケーションを再始動するか、またはアプリケーションが明示的に更新を呼び出した場合に、更新されます。 プロバイダー・ポリシーが更新されると、有効なポリシーが再計算されます。