Sun GlassFish Communications Server 1.5 管理ガイド

メッセージセキュリティーのための Communications Server の設定

要求および応答ポリシー設定のアクション

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

表 10–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 メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。

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

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

その他のセキュリティー機能の設定

Communications Server は、SOAP 処理レイヤー内に統合化されたメッセージセキュリティープロバイダを使用して、メッセージセキュリティーを実装します。メッセージセキュリティープロバイダは、Communications Server のその他のセキュリティー機能に依存します。

  1. バージョン 1.5.0 より前のバージョンの Java SDK を使用し、暗号化技術を使用する場合は、JCE プロバイダを設定します。

  2. JCE プロバイダの設定については、「JCE プロバイダの設定」を参照してください。

  3. ユーザー名トークンを使用する場合は、必要に応じてユーザーデータベースを設定します。ユーザー名およびパスワードトークンを使用する場合は、適切なレルムを設定し、このレルムに適切なユーザーデータベースを設定する必要があります。

  4. 必要に応じて証明書と非公開鍵を管理します。

次の手順

Communications Server の機能の設定が完了し、メッセージセキュリティープロバイダがそれらの機能を使用できるようになると、Communications Server とともにインストールされたプロバイダを有効にできます。その手順については、「メッセージセキュリティーのためのプロバイダの有効化」を参照してください。

JCE プロバイダの設定

J2SE 1.4.x に付属している JCE (Java Cryptography Extension) プロバイダは RSA 暗号化をサポートしていません。通常、WS-Security で定義されている XML 暗号化は RSA 暗号化に基づいているため、WS-Security を使って SOAP メッセージを暗号化するには、RSA 暗号化をサポートする JCE プロバイダをダウンロードおよびインストールする必要があります。


注 –

RSA は RSA Data Security, Inc. が開発した公開鍵暗号化技術です。この略語は、この技術の開発者である Rivest、Shamir、および Adelman を表しています。


Java SDK Version 1.5 以上で Communications Server を実行している場合は、JCE プロバイダは正しく設定されています。Java SDK Version 1.4.x で Communications Server を実行している場合は、次のようにJCE プロバイダを JDK 環境の一部として静的に追加できます。

  1. JCE プロバイダの JAR (Java ARchive) ファイルをダウンロードし、インストールします。

    RSA 暗号化をサポートする JCE プロバイダのリストについては、http://java.sun.com/products/jce/javase_providers.html を参照してください。

  2. JCE プロバイダの JAR ファイルを java-home/jre/lib/ext/ にコピーします。

  3. Communications Server を停止します。

    Communications Server を停止せずにこの手順の最後で再起動した場合、JCE プロバイダは Communications Server に認識されません。

  4. 任意のテキストエディタで java-home/jre/lib/security/java.security プロパティーファイルを編集します。このファイルに、前述の手順でダウンロードした JCE プロバイダを追加します。

    java.security ファイルに、このプロバイダを追加する詳細手順が含まれています。基本的には、類似のプロパティーを持つ場所に次の形式の行を追加する必要があります。


    security.provider.n=provider-class-name
    

    この例では、n は、Communications Server がセキュリティープロバイダを評価する際に使用する優先順位を示します。追加した JCE プロバイダには、n2 に設定します。

    たとえば、The Legion of the Bouncy Castle JCE プロバイダをダウンロードした場合は、次のような行を追加します。


    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider

    Sun セキュリティープロバイダが、値 1 の最高の優先順位に設定されていることを確認してください。


    security.provider.1=sun.security.provider.Sun

    各レベルにセキュリティープロバイダがただ 1 つだけ設定されるように、ほかのセキュリティープロバイダのレベルを下位に調整します。

    次に示す例は、必要な JCE プロバイダを提供し、既存のプロバイダを正しい位置に保持する java.security ファイルのサンプルです。


    security.provider.1=sun.security.provider.Sun
    security.provider.2=org.bouncycastle.jce.provider.
       BouncyCastleProvider
    security.provider.3=com.sun.net.ssl.internal.ssl.Provider
    security.provider.4=com.sun.rsajca.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
  5. ファイルを保存して、閉じます。

  6. Communications Server を再起動します。