次の表に、メッセージ保護ポリシーの設定と、その設定の結果として 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:EncryptedKey と ds: Signature が格納されます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。 |
auth-source="content" auth-recipient="after-content" |
SOAP メッセージ本体のコンテンツが、署名されたあと暗号化され、その結果得られた xend:EncryptedData で置換されます。メッセージに wsse:Security ヘッダーが格納され、そのヘッダー内に xenc:EncryptedKey と ds:Signature が格納されます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。 |
auth-recipient="before-content" または auth-recipient="after-content" |
SOAP メッセージ本体のコンテンツが暗号化され、その結果得られた xend:EncryptedData で置換されます。メッセージには、xenc:EncryptedKey を含む wsse:Security ヘッダーが含まれます。また、xenc:EncryptedKey には SOAP メッセージ本文の暗号化に使用する鍵が含まれます。この鍵は、受信者の公開鍵内で暗号化されています。 |
ポリシーを何も指定しない。 |
モジュールはセキュリティー処理を一切行いません。 |
Enterprise Server は、SOAP 処理レイヤー内に統合化されたメッセージセキュリティープロバイダを使用して、メッセージセキュリティーを実装します。メッセージセキュリティープロバイダは、Enterprise Server のその他のセキュリティー機能に依存します。
バージョン 1.5.0 より前のバージョンの Java SDK を使用し、暗号化技術を使用する場合は、JCE プロバイダを設定します。
JCE プロバイダの設定については、「JCE プロバイダの設定」を参照してください。
ユーザー名トークンを使用する場合は、必要に応じてユーザーデータベースを設定します。ユーザー名およびパスワードトークンを使用する場合は、適切なレルムを設定し、このレルムに適切なユーザーデータベースを設定する必要があります。
必要に応じて証明書と非公開鍵を管理します。
Enterprise Server の機能の設定が完了し、メッセージセキュリティープロバイダがそれらの機能を使用できるようになると、Enterprise Server とともにインストールされたプロバイダを有効にできます。その手順については、「メッセージセキュリティーのためのプロバイダの有効化」を参照してください。
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 以上で Enterprise Server を実行している場合は、JCE プロバイダは正しく設定されています。Java SDK Version 1.4.x で Enterprise Server を実行している場合は、次のようにJCE プロバイダを JDK 環境の一部として静的に追加できます。
JCE プロバイダの JAR (Java ARchive) ファイルをダウンロードし、インストールします。
RSA 暗号化をサポートする JCE プロバイダのリストについては、http://java.sun.com/products/jce/javase_providers.html を参照してください。
JCE プロバイダの JAR ファイルを java-home/jre/lib/ext/ にコピーします。
Enterprise Server を停止します。
Enterprise Server を停止せずにこの手順の最後で再起動した場合、JCE プロバイダは Enterprise Server に認識されません。
任意のテキストエディタで java-home/jre/lib/security/java.security プロパティーファイルを編集します。このファイルに、前述の手順でダウンロードした JCE プロバイダを追加します。
java.security ファイルに、このプロバイダを追加する詳細手順が含まれています。基本的には、類似のプロパティーを持つ場所に次の形式の行を追加する必要があります。
security.provider.n=provider-class-name |
この例では、n は、Enterprise Server がセキュリティープロバイダを評価する際に使用する優先順位を示します。追加した JCE プロバイダには、n を 2 に設定します。
たとえば、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 |
ファイルを保存して、閉じます。
Enterprise Server を再起動します。