| Oracle® Fusion Middleware Oracle Web Services Manager相互運用ガイド 11gリリース1 (11.1.1.9) B61391-07 |
|
![]() 前 |
![]() 次 |
この章の内容は次のとおりです。
Axis 1.4およびWSS4J 1.5.8では、ハンドラおよびデプロイメント・ディスクリプタを使用してインバウンド・リクエストとアウトバウンド・リクエストのセキュリティ環境を構成します。詳細は、http://ws.apache.org/wss4j/axis.htmlの『Axis Deployment Tutorial』を参照してください。
Oracle WSM 11gでは、ポリシーをWebサービス・エンドポイントにアタッチします。各ポリシーは、ドメインレベルで定義された、セキュリティ要件を定義する1つ以上のアサーションで構成されます。そのまま使用できる一連の事前定義済のポリシーおよびアサーションが用意されています。事前定義済ポリシーの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の事前定義済ポリシーに関する項を参照してください。ポリシーを構成およびアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成およびWebサービスへのポリシーのアタッチに関する項を参照してください。
表7-1に、セキュリティ要件(認証、メッセージ保護およびトランスポート)に基づいたAxisおよびWSS4Jの最も一般的な相互運用性シナリオを示します。
詳細は次を参照してください。
Oracle WSM 11gポリシーを構成およびアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成およびWebサービスへのポリシーのアタッチに関する項を参照してください。
AxisおよびWSS4Jでポリシーを構成およびアタッチする方法の詳細は、http://ws.apache.org/wss4j/axis.htmlの『Axis Deployment Tutorial』を参照してください。
表7-1 AxisおよびWSS4Jのセキュリティ環境との相互運用性
| 相互運用性シナリオ | クライアント→Webサービス | Oracle WSM 11gのポリシー | Axis/WSS4Jのポリシー |
|---|---|---|---|
|
「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」 |
Axis/WSS4J→Oracle WSM 11g |
oracle/wss10_username_token_with_message_protection_service_policy |
UsernameToken Timestamp Signature Encrypt |
|
「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」 |
Oracle WSM 11g→Axis/WSS4J |
oracle/wss10_username_token_with_message_protection_client_policy |
UsernameToken Timestamp Signature Encrypt |
|
「メッセージ保護付きSAMLトークン(WS-Security 1.0)」 |
Axis/WSS4J→Oracle WSM 11g |
oracle/wss10_saml_token_with_message_protection_service_policy |
SAMLTokenUnsigned Timestamp Signature Encrypt |
|
「メッセージ保護付きSAMLトークン(WS-Security 1.0)」 |
Oracle WSM 11g→Axis/WSS4J |
oracle/wss10_saml_token_with_message_protection_client_policy |
SAMLTokenUnsigned Timestamp Signature Encrypt |
|
|
Axis/WSS4J→Oracle WSM 11g |
oracle/wss_username_token_over_ssl_service_policy |
UsernameToken Timestamp |
|
|
Oracle WSM 11g→Axis/WSS4J |
oracle/wss_username_token_over_ssl_client_policy |
Timestamp UsernameToken |
|
|
Axis/WSS4J→Oracle WSM 11g |
oracle/wss_saml_token_over_ssl_service_policy |
SAMLTokenUnsigned Timestamp |
|
|
Oracle WSM 11g→Axis/WSS4J |
oracle/wss_saml_token_over_ssl_client_policy |
Timestamp SAMLTokenUnsigned |
次の手順を実行して、AxisおよびWSS4Jの相互運用性シナリオそれぞれに必要なハンドラおよびプロパティ・ファイルを作成します。
ユーザー名およびキーストア別名に必要なパスワードを解決できるPWCallback.javaというパスワード・コールバック・クラスを作成し、コンパイルします。
以降の各項で定義するデプロイメント・ディスクリプタには、ユーザー名情報は含まれますが、パスワード情報は含まれません。パスワードのような機密的な情報は、デプロイメント・ディスクリプタ内にクリア・テキストで保存しないほうが賢明です。Axisハンドラは、パスワードを取得するためにパスワード・コールバック・クラスをコールします。このメカニズムはJAASと似ています。詳細は、http://ws.apache.org/wss4jのWSS4Jドキュメントを参照してください。
次に示すように、キーストア・プロパティ・ファイル(crypto.properties)を作成します。このファイルをクラス・ディレクトリに含めてください。
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=password
org.apache.ws.security.crypto.merlin.file=default-keystore.jks
次に示すようなsaml.propertiesファイルを作成します。これは、SAMLの相互運用性シナリオのみに必要なファイルです。
org.apache.ws.security.saml.issuerClass=org.apache.ws.security.saml.SAMLIssuerImpl
org.apache.ws.security.saml.issuer.cryptoProp.file=crypto.properties
org.apache.ws.security.saml.issuer.key.name=orakey
org.apache.ws.security.saml.issuer.key.password=password
org.apache.ws.security.saml.issuer=www.oracle.com
org.apache.ws.security.saml.subjectNameId.name=weblogic
org.apache.ws.security.saml.authenticationMethod=password
org.apache.ws.security.saml.confirmationMethod=senderVouches
この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。
Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
oracle/wss10_username_token_with_message_protection_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とキーストア・プロパティ・ファイル(crypto.properties)を作成します。
キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。
client_deploy.wsddデプロイメント・ディスクリプタを例7-1のように編集します。
この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、Oracle WSMのデフォルト要件と一致するようにオーバーライドされます。
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
Webサービス・クライアントをデプロイします。
client_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。
例7-1 client_deploy.wsddデプロイメント・ディスクリプタ
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<!-- wss10_username_token_with_message_protection -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="passwordCallbackClass"
value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
<parameter name="passwordType" value="PasswordText"/>
<parameter name="user" value="weblogic"/>
<parameter name="action" value="UsernameToken Timestamp Signature Encrypt"/>
<parameter name="encryptionKeyTransportAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
<parameter name="encryptionKeyIdentifier" value="DirectReference" />
<parameter name="encryptionPropFile" value="crypto.properties" />
<parameter name="encryptionUser" value="orakey" />
<parameter name="encryptionParts" value=
"{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}
UsernameToken;{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
<parameter name="signatureUser" value="orakey" />
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signatureParts" value=
"{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}
UsernameToken;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-
1.0.xsd}
Timestamp;{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="com.oracle.xmlns.ConfigOverride_jws.CO
_SOA.BPELProcess1.PWCallback"/>
<parameter name="action" value="Timestamp Signature Encrypt" />
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="decryptionPropFile" value="crypto.properties" />
<parameter name="enableSignatureConfirmation" value="false" />
</handler>
</responseFlow>
</globalConfiguration >
</deployment>
Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とキーストア・プロパティ・ファイル(crypto.properties)を作成します。
キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。
server_deploy.wsddデプロイメント・ディスクリプタを例7-2のように編集します。
この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、Oracle WSMのデフォルト要件と一致するようにオーバーライドされます。
Webサービスをデプロイします。
oracle/wss10_username_token_with_message_protection_client_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
JSEクライアントの場合のみ、次のようにWebサービス・クライアント・プロパティを構成します。
注意: Java EEクライアントの場合、この手順を行う必要はありません。
myPort.setProperty(ClientConstants.WSS_KEYSTORE_TYPE,"JKS");
myPort.setProperty(ClientConstants.WSS_KEYSTORE_LOCATION,
"/keystore-path/default-keystore.jks");
myPort.setProperty(ClientConstants.WSS_KEYSTORE_PASSWORD, "password");
myPort.setProperty(ClientConstants.WSS_RECIPIENT_KEY_ALIAS,"orakey");
...
setPropertyの定義は次のとおりです。
public void setProperty(String name, String value) {
((Stub) _port)._setProperty(name, value);
}
Webサービス・クライアントをデプロイします。
server_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。
例7-2 server_deploy.wsddデプロイメント・ディスクリプタ
<ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" use="literal">
<!-- wss10_username_token_with_message_protection -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="user" value="smith"/>
<parameter name="action" value="Signature UsernameToken Timestamp Encrypt"/>
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="decryptionPropFile" value="crypto.properties" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="user" value="orakey"/>
<parameter name="action" value="Timestamp Signature Encrypt"/>
<parameter name="encryptionKeyTransportAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signatureParts"
value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body;{Element}
{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" />
<parameter name="encryptionKeyIdentifier" value="DirectReference" />
</handler>
</responseFlow>
</ns1:service>
この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。
Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
oracle/wss10_saml_token_with_message_protection_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびsaml.propertiesファイルを作成します。
キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。
client_deploy.wsddデプロイメント・ディスクリプタを例7-3のように編集します。
この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、Oracle WSMのデフォルト要件と一致するようにオーバーライドされます。
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
Webサービス・クライアントをデプロイします。
client_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。
例7-3 client_deploy.wsddデプロイメント・ディスクリプタ
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<!-- wss10_saml_token_with_message_protection -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="passwordCallbackClass"
value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
<parameter name="passwordType" value="PasswordText"/>
<parameter name="user" value="weblogic"/>
<parameter name="action" value="Timestamp Signature SAMLTokenSigned Encrypt"/>
<parameter name="samlPropFile" value="saml.properties"/>
<parameter name="encryptionKeyTransportAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
<parameter name="encryptionKeyIdentifier" value="DirectReference" />
<parameter name="encryptionPropFile" value="crypto.properties" />
<parameter name="encryptionUser" value="orakey" />
<parameter name="encryptionParts"
value="{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body" />
<parameter name="signatureUser" value="orakey" />
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signatureParts" value="{Element}
{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}
Timestamp;{Element}
{http://schemas.xmlsoap.org/soap/envelope/}Body" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass"
value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback" />
<parameter name="action" value="Timestamp Signature Encrypt" />
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="decryptionPropFile" value="crypto.properties" />
<parameter name="enableSignatureConfirmation" value="false" />
</handler>
</responseFlow>
</globalConfiguration >
</deployment>
Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびsaml.propertiesファイルを作成します。
キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。
server_deploy.wsddデプロイメント・ディスクリプタを例7-4のように編集します。
この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、Oracle WSMのデフォルト要件と一致するようにオーバーライドされます。
Webサービスをデプロイします。
oracle/wss10_saml_token_with_message_protection_client_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
JSEクライアントの場合のみ、次のようにWebサービス・クライアント・プロパティを構成します。
注意: Java EEクライアントの場合、この手順を行う必要はありません。
myPort.setProperty(ClientConstants.WSS_KEYSTORE_TYPE,"JKS");
myPort.setProperty(ClientConstants.WSS_KEYSTORE_LOCATION,
"/keystore-path/default-keystore.jks");
myPort.setProperty(ClientConstants.WSS_KEYSTORE_PASSWORD, "password");
myPort.setProperty(ClientConstants.WSS_RECIPIENT_KEY_ALIAS,"orakey");
...
setPropertyの定義は次のとおりです。
public void setProperty(String name, String value) {
((Stub) _port)._setProperty(name, value);
}
Webサービス・クライアントをデプロイします。
server_deploy.wsddデプロイメント・ディスクリプタの例を次に示します。
例7-4 server_deploy.wsddデプロイメント・ディスクリプタ
<ns1:service name="HelloWorld" provider="java:RPC" style="wrapped" use="literal">
<!-- wss10_username_token_with_message_protection -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="user" value="smith"/>
<parameter name="action" value="Signature SAMLTokenUnsigned Timestamp Encrypt"/>
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="decryptionPropFile" value="crypto.properties" />
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="user" value="orakey"/>
<parameter name="action" value="Timestamp Signature Encrypt"/>
<parameter name="encryptionKeyTransportAlgorithm"
value="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
<parameter name="signaturePropFile" value="crypto.properties" />
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signatureParts"
value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body;{Element}
{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" />
<parameter name="encryptionKeyIdentifier" value="DirectReference" />
</handler>
</responseFlow>
</ns1:service>
この項では、次の相互運用性シナリオにおいてSSL経由のユーザー名トークンを実装する方法について説明します。
Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(一方向)およびWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。
oracle/wss_username_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とキーストア・プロパティ・ファイル(crypto.properties)を作成します。
デプロイメント・ディスクリプタclient_deploy.wsddを次の例のように編集します。この例では、受信者がユーザー名トークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<!-- wss_username_token -->
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="UsernameToken Timestamp"/>
<parameter name="user" value="weblogic"/>
<parameter name="passwordCallbackClass"
value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
<parameter name="passwordType" value="PasswordText"/>
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
Webサービス・クライアントをデプロイします。
Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とcrypto.propertiesファイルを作成します。
デプロイメント・ディスクリプタserver_deploy.wsddを次の例のように編集します。この例では、受信者がユーザー名トークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。
<ns1:service name="HelloWorld" provider="java:RPC" style="wrapped"
use="literal">
<!-- wss_username_token_over_ssl -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="action" value="Timestamp UsernameToken"/>
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="Timestamp"/>
</handler>
</responseFlow>
</ns1:service>
Webサービスをデプロイします。
wss_username_token_over_ssl_client_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
JSEクライアントの場合のみ、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、ユーザー名トークンを生成するためにクライアントが設定する必要があります。
注意: Java EEクライアントの場合、この手順を行う必要はありません。
myPort.setUsername("smith");
myPort.setPassword("password"););
Webサービス・クライアントをデプロイします。
クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。
-Djavax.net.ssl.trustStore=default-keystore.jks
この項では、次の相互運用性シナリオにおいてSSL経由のSAMLトークン(送信者保証)を実装する方法について説明します。
Axis/WSS4JクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(一方向)およびWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。
wss_saml_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびSAMLプロパティ・ファイル(saml.properties)を作成します。
デプロイメント・ディスクリプタclient_deploy.wsddを次の例のように編集します。この例では、受信者がSAMLトークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<transport name="http"
pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration >
<!-- wss_saml_token -->
<requestFlow >
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="SAMLTokenSigned Timestamp"/>
<parameter name="samlPropFile" value="saml.properties"/>
<parameter name="user" value="weblogic"/>
<parameter name="passwordCallbackClass"
value="com.oracle.xmlns.ConfigOverride_jws.CO_SOA.BPELProcess1.PWCallback"/>
<parameter name="passwordType" value="PasswordText"/>
<parameter name="signatureUser" value="orakey" />
<parameter name="signatureKeyIdentifier" value="DirectReference" />
<parameter name="signaturePropFile" value="crypto.properties" />
</handler>
</requestFlow >
</globalConfiguration >
</deployment>
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
System.setProperty("axis.ClientConfigFile", "client_deploy.wsdd");
Webサービス・クライアントをデプロイします。
Oracle WSM 11gクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)とcrypto.propertiesファイルを作成します。
デプロイメント・ディスクリプタserver_deploy.wsddを次の例のように編集します。
この例では、受信者がSAMLトークンとタイムスタンプを検証し、送信者がタイムスタンプを挿入します。
<ns1:service name="HelloWorld" provider="java:RPC" style="wrapped"
use="literal">
<!-- wss_saml_token_over_ssl -->
<requestFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
<parameter name="passwordCallbackClass" value="PWCallback1"/>
<parameter name="action" value="Timestamp SAMLTokenUnsigned"/>
</handler>
</requestFlow>
<responseFlow>
<handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
<parameter name="action" value="Timestamp"/>
</handler>
</responseFlow>
</ns1:service>
Webサービスをデプロイします。
wss_saml_token_over_ssl_client_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
JSEクライアントの場合は、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、SAMLアサーションを生成するためにクライアントが設定する必要があります。
|
注意: Java EEクライアントの場合、この手順を行う必要はありません。 |
myPort.setUsername("smith");
Webサービス・クライアントをデプロイします。
クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。
-Djavax.net.ssl.trustStore=default-keystore.jks