第5章 WS-Policy フレームワーク
概要
本章では、WS-Policy フレームワークの基本概念、ポリシーサブジェクトとポリシーアサーションの定義、およびポリシーアサーションがどのように組み合わせてポリシー式を行うかを説明します。
5.1. WS-Policy の概要 リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
WS-Policy 仕様 は、Web サービスアプリケーションで実行時に接続および通信のセマンティクスを変更するポリシーを適用する一般的なフレームワークを提供します。Apache CXF セキュリティーは WS-Policy フレームワークを使用して、メッセージ保護と認証要件を設定します。
ポリシーおよびポリシーの参照 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーを指定する最も簡単な方法は、ポリシーを適用する場所に直接埋め込むことです。たとえば、WSDL コントラクトの特定ポートにポリシーを関連付けるには、以下のように指定します。
ポリシーを指定する代替方法として、ポリシーを適用したい場所にポリシー参照要素 wsp:PolicyReference
を挿入し、続いて XML ファイルの他の場所にポリシー要素 wsp:Policy
を挿入します。たとえば、ポリシー参照を使用してポリシーを特定ポートに関連付けるには、以下のような設定を使用します。
ポリシー参照 wsp:PolicyReference
は、ID PolicyID を使用して参照されたポリシーを特定します (URI
属性の #
接頭辞文字の追加に留意してください)。ポリシー自体 wsp:Policy
は、属性 wsu:Id="PolicyID"
を追加して特定する必要があります。
ポリシーサブジェクト リンクのコピーリンクがクリップボードにコピーされました!
ポリシーが関連付けられているエンティティーは ポリシーサブジェクト と呼ばれます。たとえば、ポリシーをエンドポイントに関連付けることができます。この場合、エンドポイント はポリシーの対象となります。複数のポリシーを任意のポリシー件名に関連付けることが可能です。WS-Policy フレームワークは、以下のようなポリシー件名をサポートします。
サービスポリシーの件名 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーをサービスに関連付けるには、以下の WSDL 1.1 要素のサブ要素として、<wsp:Policy>
要素または <wsp:PolicyReference>
要素のいずれかを挿入します。
-
wsdl:service
— このサービスで提供されるすべてのポート (エンドポイント) にポリシーを適用します。
エンドポイントポリシーサブジェクト リンクのコピーリンクがクリップボードにコピーされました!
ポリシーをエンドポイントに関連付けるには、以下の WSDL 1.1 要素のサブ要素として、<wsp:Policy>
要素または <wsp:PolicyReference>
要素のいずれかを挿入します。
-
wsdl:portType
— このポートタイプを使用するすべてのポート (エンドポイント) にポリシーを適用します。 -
wsdl:binding
— このバインディングを使用するすべてのポートにポリシーを適用します。 -
wsdl:port
- このエンドポイントにのみポリシーを適用します。
たとえば、ポリシーをエンドポイントバインディングに関連付けるには、以下のようにします (ポリシー参照を使用)。
操作ポリシー件名 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーを操作に関連付けるには、以下の WSDL 1.1 要素のサブ要素として、<wsp:Policy>
要素または <wsp:PolicyReference>
要素のいずれかを挿入します。
-
wsdl:portType/wsdl:operation
-
wsdl:binding/wsdl:operation
たとえば、以下のようにバインディングでポリシーを操作と関連付けることができます (ポリシー参照を使用)。
メッセージポリシー件名 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーをメッセージに関連付けるには、以下の WSDL 1.1 要素のサブ要素として、<wsp:Policy>
要素または <wsp:PolicyReference>
要素のいずれかを挿入します。
-
wsdl:message
-
wsdl:portType/wsdl:operation/wsdl:input
-
wsdl:portType/wsdl:operation/wsdl:output
-
wsdl:portType/wsdl:operation/wsdl:fault
-
wsdl:binding/wsdl:operation/wsdl:input
-
wsdl:binding/wsdl:operation/wsdl:output
-
wsdl:binding/wsdl:operation/wsdl:fault
たとえば、ポリシー参照を使用して、バインディングのメッセージとポリシーを関連付けることができます。