WS-MetadataExchange 要求
Web Services Metadata Exchange (WS-MetadataExchange) の GetMetadata 要求を使用して、WS-Policy 情報でアノテーションが付けられた Web サービス記述言語 (WSDL) を交換することができます。サービス・プロバイダーは WS-MetadataExchange 要求を使用してそのポリシーを共有することができ、サービス・クライアントは WS-MetadataExchange 要求を使用してプロバイダーのポリシーを適用することができます。 トランスポート・レベルまたはメッセージ・レベルのセキュリティーを使用して、WS-MetadataExchange 要求をセキュアにすることができます。
WS-MetadataExchange 仕様は、エンドポイントからメタデータを取り出す手段を定義します。 WebSphere® Application Server は、応答でメタデータを戻すための WS-MetadataExchange 1.1 GetMetadata 要求の使用をサポートします。 サービス・プロバイダーはこのメカニズムを使用して、WS-Policy 情報で アノテーションを付けられた WSDL を使用可能にすることができます。 つまり、サービス・プロバイダーはそのポリシーを共有することができます。 サービス・クライアントはこのメカニズムを使用して、WS-Policy 情報で アノテーションを付けられた WSDL をサービス・プロバイダーから入手し、それらのポリシーを適用することができます。 ポリシー構成は、サービス・プロバイダーの WSDL の WS-PolicyAttachments フォーマットである必要があります。
HTTP GET 要求を使用する代わりに、WS-MetadataExchange 要求を使用することができます。
デフォルトでは、サービス・プロバイダーまたはサービス・クライアントは、WS-MetadataExchange を使用して WS-Policy 情報を共有または入手することはありません。 ポリシーを共有するようにサービス・プロバイダーを構成するか、サービス・プロバイダーのポリシーを適用するようにサービス・クライアントを構成するかして、そのポリシー構成を共有または入手するために WS-MetadataExchange 要求を使用するように指定しなければなりません。 WS-Policy 情報はアプリケーション・レベルまたはサービス・レベルで共有または入手できます。 サービス・プロバイダーまたはサービス・クライアントの構成は、管理コンソールまたは wsadmin コマンドを使用して行うことができます。
アプリケーション開発者は、Web サービスの生成時に Rational® Application Developer ツールを使用することにより、サービス・プロバイダーまたはサービス・クライアントを構成できます。 詳しくは、Rational Application Developer の資料を参照してください。
サービス・プロバイダーが WS-MetadataExchange を介してポリシーを共有するように構成されている場合、サービスがサポートする着信 WS-MetadataExchange GetMetadata 要求は WSDL 方言に限定されます。サービスがこのような要求を受け取ると、サービスの WSDL は、対応する WS-MetadataExchange 応答を介してインラインに戻されます。 サービスの WSDL には、現行のポリシー構成を表す WS-PolicyAttachments アノテーションが含まれています。 ポリシー構成は、WSDL の WS-PolicyAttachments フォーマットであるため、Web サービス・ポリシー (WS-Policy) 仕様および WS-MetadataExchange GetMetadata 要求をサポートする他の クライアント、サービス・レジストリー、またはサービスで使用可能です。
サービス・クライアントが WS-MetadataExchange を使用してサービス・プロバイダーのポリシーを入手するように構成されている場合には、そのサービス・クライアントは、プロバイダーのポリシーを入手または更新する必要があるときに、WSDL 方言を指定した WS-MetadataExchange GetMetadata 要求を送信します。
WS-MetadataExchange セキュリティー
認証、許可、および保全性と機密性の維持が有効に行われるように、GetMetadata 要求が保護されていることを確認する必要があります。 セキュリティー・メタデータ (SecurityPolicy) を交換するためには、エンドツーエンドの認証が特に重要です。認証されていない通話者がこの情報にアクセスすると、信頼されないエンドポイントにセキュリティー・クレデンシャルが送信される可能性があるからです。
GetMetadata 要求は、アプリケーション・エンドポイントと同じポートをターゲットにしているため、アプリケーションがトランスポート・レベルのセキュリティーを使用していると、GetMetadata 要求もセキュア・ポートをターゲットにし、デフォルトでは、アプリケーションと同じトランスポート・レベルのセキュリティー構成を使用します。
また、メッセージ・レベルのセキュリティー (WS-Security) をメタデータ交換に適用することができます。アプリケーション・エンドポイントでトランスポート・レベルのセキュリティーが使用できない場合、またはトランスポート・レベルのセキュリティーがご使用の要件を満たすことができない場合には、メッセージ・レベルのセキュリティーを適用することができます。 メッセージ・レベルのセキュリティーの利点は、SOAP メッセージのヘッダーにセキュリティー・フィーチャーを取り込むことによってエンドツーエンドのセキュリティーが提供されることです。
メッセージ・レベルのセキュリティーを提供するためには、ポリシー構成を交換するためにサービス・プロバイダーまたはサービス・クライアントを構成するときに、システム・ポリシー・セットおよび汎用 (名前付き) バインディングをエンドポイントに関連付けます。
システム・ポリシー・セットは、ビジネスに関連していないシステム・メッセージに使用され、アプリケーション・ポリシー・セットは、ビジネスに関連するメッセージのためのポリシー表明を指定するために使用されます。 例えば、WS-MetadataExchange プロトコルで定義されたメッセージなどの、サービスの品質 (QoS) を適用するメッセージには、システム・ポリシー・セットを使用します。 GetMetadata 要求にメッセージ・レベル・セキュリティーを 提供するには、Web Services Security (WS-Security) ポリシー または Web サービス・アドレッシング (WS-Addressing) ポリシーのみを含む システム・ポリシー・セットを関連付ける必要があります。 グローバル・ドメインまたはサービスのセキュリティー・ドメインを有効範囲とする汎用バインディングを指定することができます。
メッセージ・レベルのセキュリティーを適用する場合、そのアプリケーションのトランスポート・ポリシーが常に使用されます。