Sun GlassFish Enterprise Server v3 管理ガイド

メッセージ保護ポリシーの設定

メッセージ保護ポリシーは、要求メッセージの処理および応答メッセージの処理に対して定義されます。ポリシーは、ソース認証または受信者認証に関する要件として表現されます。プロバイダは、特定のメッセージセキュリティーメカニズムを適用することで、SOAP Web サービスメッセージにおけるメッセージ保護ポリシーを実現します。

ここでは、次のテーマを取り上げます。

メッセージ保護ポリシーの設定と処理の対応

次の表に、メッセージ保護ポリシーの構成と、その設定の結果として WS-Security SOAP メッセージセキュリティープロバイダが実行するメッセージセキュリティー処理を示します。

表 13–1 メッセージ保護ポリシーと WS-Security SOAP 処理の対応

メッセージ保護ポリシー 

結果として実行される WS-Security SOAP メッセージ保護処理 

auth-source="sender"

メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内に wsse:UsernameToken (パスワード付き) が格納されます。

auth-source="content"

SOAP メッセージ本体のコンテンツが署名されます。メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内にメッセージ本体の署名が ds: Signature として格納されます。

auth-source="sender"

auth-recipient="before-content"

または 

auth-recipient="after-content"

SOAP メッセージ本体のコンテンツが暗号化され、その結果得られた xend:EncryptedData で置換されます。メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内に wsse:UsernameToken (パスワード付き) と xenc:EncryptedKey が格納されます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。

auth-source="content"

auth-recipient="before-content"

SOAP メッセージ本体のコンテンツが暗号化され、その結果得られた xend:EncryptedData で置換されます。xenc:EncryptedData は署名されています。メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内に xenc:EncryptedKeyds: Signature が格納されます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。

auth-source="content"

auth-recipient="after-content"

SOAP メッセージ本体のコンテンツが、署名されたあと暗号化され、その結果得られた xend:EncryptedData で置換されます。メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内に xenc:EncryptedKeyds:Signature が格納されます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。

auth-recipient="before-content"

または 

auth-recipient="after-content"

SOAP メッセージ本体のコンテンツが暗号化され、その結果得られた xend:EncryptedData で置換されます。メッセージには、xenc:EncryptedKey を含む wsse:Security ヘッダーが含まれます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。

ポリシーを何も指定しない。 

モジュールはセキュリティー処理を一切行いません。 

Procedureプロバイダのメッセージ保護ポリシーを設定する

一般的には、プロバイダを再設定することはありません。ただし必要な場合は、プロバイダのタイプ、実装クラス、およびプロバイダ固有の構成プロパティーを変更して、プロバイダのメッセージ保護ポリシーを変更できます。設定の組み合わせの結果については、表 13–1 を参照してください。

set(1) サブコマンドを使用して応答ポリシーを設定します。そのあと、各コマンドの request の文字を response に置き換えて実行します。

  1. set(1) サブコマンドを使用して、要求ポリシーをクライアントに追加し、認証のソースを設定します。

    次に例を示します。


    asadmin> set server-config.security-service.message-security-config.SOAP.
    provider-config.ClientProvider.request-policy.auth_source=[sender | content]
    
  2. set サブコマンドを使用して、要求ポリシーをサーバーに追加し、認証のソースを設定します。

    次に例を示します。


    asadmin> set server-config.security-service.message-security-config.SOAP.
    provider-config.ServerProvider.request-policy.auth_source=[sender | content]
  3. set サブコマンドを使用して、要求ポリシーをクライアントに追加し、認証の受信者を設定します。

    次に例を示します。


    asadmin> set server-config.security-service.message-security-config.SOAP.
    provider-config.ClientProvider.request-policy.auth_recipient=[before-content | after-content]
    
  4. set サブコマンドを使用して、要求ポリシーをサーバーに追加し、認証の受信者を設定します。

    次に例を示します。


    asadmin> set server-config.security-service.message-security-config.SOAP.
    provider-config.ServerProvider.request-policy.auth_recipient=[before-content | after-content]
    

アプリケーションクライアント構成の要求および応答ポリシーの設定

「要求および応答ポリシー」は、認証プロバイダが実行する要求および応答処理に関連付けられた認証ポリシー要件を定義します。ポリシーはメッセージ送信者による順序で示されるので、「コンテンツのあと」ではメッセージ受信者が署名の検証前にメッセージを復号化することを意味します。

メッセージセキュリティーを実現するには、サーバーとクライアントの両方で要求ポリシーと応答ポリシーが有効化されている必要があります。クライアントおよびサーバーのポリシーを設定する場合は、クライアントポリシーがアプリケーションレベルのメッセージのバインドで要求および応答保護のサーバーポリシーと一致する必要があります。

アプリケーションクライアント構成の要求ポリシーを設定するには、「アプリケーションクライアントのメッセージセキュリティーの有効化」の説明に従って、アプリケーションクライアントコンテナの Enterprise Server 固有の構成を変更します。


例 13–1 アプリケーションクライアントのメッセージセキュリティーのポリシー設定

アプリケーションクライアント構成ファイルの request-policy 要素および response-policy 要素は、次のコード例に示すように、要求ポリシーの設定に使用されます (要素を定義している箇所以外のコードは説明用のものです。実際のインストールでは異なる場合があります。これらのコードは変更しないでください)。


<client-container>
  <target-server name="your-host" address="your-host"
      port="your-port"/>
  <log-service file="" level="WARNING"/>
  <message-security-config auth-layer="SOAP"
      default-client-provider="ClientProvider">
    <provider-config
        class-name="com.sun.enterprise.security.jauth.ClientAuthModule"
        provider-id="ClientProvider" provider-type="client">
      <request-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
      <response-policy auth-source="sender | content"
        auth-recipient="after-content | before-content"/>
       <property name="security.config"
           value="as-install/lib/appclient/wss-client-config.xml"/>
    </provider-config>
  </message-security-config>
</client-container>

auth-source の有効な値には、sendercontent があります。auth-recipient の有効な値には、before-contentafter-content があります。これらの値の組み合わせの結果については、「メッセージ保護ポリシーの設定」の表を参照してください。

要求または応答ポリシーを指定しない場合は、この要素を空白のままにします。次に例を示します。


<response-policy/>