1.1.2.2 WS-Policyファイルの使用

高度なWebサービスの機能は、WS-Policyファイル(たとえば、信頼性のあるメッセージングおよびWebサービスのメッセージ・レベル・セキュリティ)を構成して有効できます。これらの機能を使用するには、WS-Policyファイルの作成が必要になる場合があります。Web Service Policy Framework仕様により、Webサービスのポリシーを記述および通信するための汎用的なモデルと構文が提供されています。

WS-Policyファイルを使用する場合、<Policy>要素を定義してこれらの異なるWS-PolicyファイルをWSDFに組み込む必要があります。ポリシー・ファイル・パスの指定にはlocation属性を使用します。絶対ファイル・パスでも相対ファイル・パスでも指定できます。省略可能なuse属性をメッセージレベルのアサーション・ポリシー・ファイルで使用すると、適用するメッセージ(リクエスト(入力)メッセージ、応答(出力)メッセージ、またはエラー・メッセージ、あるいはこれら3つの組合せ)を指定できます。

WSDFには、WS-Policyファイルを参照する2つのサブ要素があります。

  • <Servicegroup>
    • WS-PolicyファイルがWebサービスのエンドポイントレベルのアサーション(たとえば、信頼性のあるメッセージング・アサーション)から構成されている場合、WS-Policyファイルはこの <Servicegroup>要素を提供するすべてのエンドポイントに適用されます
    • WS-PolicyファイルがWebサービス操作レベルのアサーション(たとえば、セキュリティIDアサーション)から構成されている場合、WS-Policyファイルはこの<Servicegroup>要素にリストされるすべてのサービスに適用されます。
    • WS-PolicyファイルがWebサービスのメッセージ・レベルのアサーション(たとえば、セキュリティSignedPartsアサーション)から構成されている場合、WS-Policyファイルはこの<Servicegroup>要素にリストされるすべてのサービスの入力メッセージ、出力メッセージ、フォルト・メッセージに適用されます。

      ノート:

      現行リリースでは、リクエスト・メッセージレベルのアサーションのみサポートされます。メッセージレベルのアサーション・ポリシー・ファイルの場合は、use="input"のみを指定するようにしてください。
  • <Service>
    • WS-PolicyファイルがWebサービス操作レベルのアサーション(たとえば、セキュリティIDアサーション)から構成されている場合、WS-Policyファイルはこの特定のサービスに適用されます。
    • WS-PolicyファイルがWebサービスのメッセージレベルのアサーション(たとえば、セキュリティSignedPartsアサーション)から構成されている場合、WS-Policyファイルはこの特定のサービスの入力メッセージ、出力メッセージ、フォルト・メッセージに適用されます。

      ノート:

      現行リリースのSALTでは、リクエスト・メッセージレベルのアサーションのみサポートされます。メッセージレベルのアサーション・ポリシー・ファイルの場合は、use="input"を指定してください。

SALTには、使用されることの多い用途に合せてあらかじめパッケージ化されたWS-Policyファイルが含まれています。これらのWS-Policyファイルは$TUXDIR/udataobj/salt/policyディレクトリにあります。これらのファイルを参照するには、location=”salt:<policy_file_name>”を使用します

次に、ネイティブWSDFファイルでWS-Policyファイルを使用する例を示します。

例1-7 WSDFファイルでのWS-Policyファイルの定義サンプル

<Definition ...>
  <WSBinding id="simpapp_binding">
    <Servicegroup id="simpapp">
      <Policy location=”./endpoint_policy.xml” />
      <Policy location=”/usr/resc/all_input_msg_policy.xml” use=”input” />
      <Service name="toupper">
        <Policy location=”service_policy.xml” />
        <Policy location=”/usr/resc/input_message_policy.xml”
                use=”input” />
      </Service>
      <Service name="tolower" />
    </Servicegroup>
    ....
  </WSBinding>
</Definition>

詳細は、「WSDFファイルで信頼性のあるメッセージング・ポリシー・ファイルの指定」および「WS-Securityポリシー・ファイルの使用」を参照してください