Oracle® Fusion Middleware Oracle Web Services Manager相互運用性ソリューション・ガイド 12c (12.1.2) E48091-02 |
|
![]() 前 |
![]() 次 |
この章では、Axis 1.4およびWSS4J 1.5.8のセキュリティ環境とOracle Web Services Manager (OWSM)の相互運用性について説明します。
注意: この章の相互運用性シナリオの一部では、将来のリリースのOracle Fusion Middleware 12cでサポートされるSOAアプリケーションを使用します。このリリースでは、それらのシナリオでADFまたはJava EEアプリケーションを代用できます。 |
この章の構成は、次のとおりです。
Axis 1.4およびWSS4J 1.5.8では、ハンドラおよびデプロイメント・ディスクリプタを使用してインバウンド・リクエストとアウトバウンド・リクエストのセキュリティ環境を構成します。詳細は、http://ws.apache.org/wss4j/axis.html
の『Axis Deployment Tutorial』を参照してください。
OWSM 12cでは、ポリシーをWebサービス・エンドポイントにアタッチします。ポリシーはドメインレベルで定義された1つ以上のアサーションで構成されています。アサーションはセキュリティ要件の定義です。そのまま使用できる事前定義のポリシーとアサーションのセットが用意されています。
詳細の参照先は、次のとおりです。
OWSM事前定義済ポリシーについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』の事前定義済ポリシーに関する説明を参照してください。
OWSM 12cポリシーの構成およびアタッチについては、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のWebサービスの保護に関する説明およびポリシーのアタッチに関する説明を参照してください。
AxisおよびWSS4Jでポリシーを構成およびアタッチする方法の詳細は、http://ws.apache.org/wss4j/axis.html
の『Axis Deployment Tutorial』を参照してください。
表7-1 OWSM 12cサービス・ポリシーとAxis WSS4Jクライアント・ポリシーの相互運用性
アイデンティティ・トークン | WS-Securityバージョン | メッセージ保護 | トランスポート・セキュリティ | サービス・ポリシー | クライアント・ポリシー |
---|---|---|---|---|---|
ユーザー名 |
1.0 |
はい |
いいえ |
|
|
SAML |
1.0 |
はい |
いいえ |
|
|
ユーザー名 |
1.0および1.1 |
いいえ |
はい |
|
|
SAML |
1.0および1.1 |
いいえ |
はい |
|
SAMLTokenUnsigned Timestamp |
表7-2 Axis WSS4Jサービス・ポリシーとOWSM 12cクライアント・ポリシーの相互運用性
アイデンティティ・トークン | WS-Securityバージョン | メッセージ保護 | トランスポート・セキュリティ | サービス・ポリシー | クライアント・ポリシー |
---|---|---|---|---|---|
ユーザー名 |
1.0 |
はい |
いいえ |
|
|
SAML |
1.0 |
はい |
いいえ |
|
|
ユーザー名 |
1.0および1.1 |
いいえ |
はい |
|
|
SAML |
1.0および1.1 |
いいえ |
はい |
|
o |
次の手順を実行して、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=welcome1 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=orakey 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クライアントおよびOWSM 12c Webサービスを構成するには、次の各項で説明する手順を実行します。
oracle/wss10_username_token_with_message_protection_service_policy
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java
)とキーストア・プロパティ・ファイル(crypto.properties
)を作成します。
キーストア・ファイル(default-keystore.jks
など)およびcrypto.properties
ファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。
client_deploy.wsdd
デプロイメント・ディスクリプタを例7-1のように編集します。
この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
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>
OWSM 12cクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java
)とキーストア・プロパティ・ファイル(crypto.properties
)を作成します。
キーストア・ファイル(default-keystore.jks
など)およびcrypto.properties
ファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。
server_deploy.wsdd
デプロイメント・ディスクリプタを例7-2のように編集します。
この例では、受信者がユーザー名トークンの復号化、確認および検証を行い、送信者がユーザー名トークンの挿入、タイムスタンプの追加、本体、ユーザー名トークンおよびタイムスタンプへの署名、本体とユーザー名トークンの暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。
Webサービスをデプロイします。
oracle/wss10_username_token_with_message_protection_client_policy
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
Java SEクライアントの場合のみ、次のように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, "welcome1"); 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="wss4j"/>
<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クライアントおよびOWSM 12c Webサービスを構成するには、次の各項で説明する手順を実行します。
oracle/wss10_saml_token_with_message_protection_service_policy
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
Webサービスをデプロイします。
Webサービス・クライアント・プロキシを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java
)、キーストア・プロパティ・ファイル(crypto.properties
)およびsaml.properties
ファイルを作成します。
キーストア・ファイル(default-keystore.jks
など)およびcrypto.properties
ファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。
client_deploy.wsdd
デプロイメント・ディスクリプタを例7-3のように編集します。
この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。
前の手順で定義したデプロイメント・ディスクリプタを使用するために、クライアント・コード内に次のプロパティを設定します。
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>
OWSM 12cクライアントおよびAxis/WSS4J Webサービスを構成するには、次の各項で説明する手順を実行します。
Webサービスを構築します。
「AxisおよびWSS4Jとの相互運用に必要なファイル」の説明に従って、パスワード・コールバック・クラス(PWCallback.java)、キーストア・プロパティ・ファイル(crypto.properties)およびsaml.propertiesファイルを作成します。
キーストア・ファイル(default-keystore.jksなど)およびcrypto.propertiesファイルをclassesフォルダの直下に配置します。
v3証明書付きのキーストアを使用していることを確認してください。
server_deploy.wsddデプロイメント・ディスクリプタを例7-4のように編集します。
この例では、受信者がSAMLトークンの復号化、確認および検証を行い、送信者がSAMLトークンの挿入、タイムスタンプの追加、本体、SAMLトークンおよびタイムスタンプへの署名、本体の暗号化を行います。この例に示されているように、暗号化キー・トランスポートは、OWSMのデフォルト要件と一致するようにオーバーライドされます。
Webサービスをデプロイします。
oracle/wss10_saml_token_with_message_protection_client_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services Managerによる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, "welcome1"); 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="wss4j"/>
<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クライアントおよびOWSM 12g Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のトランスポート・レベルのセキュリティ(SSL)の構成に関する説明を参照してください。
oracle/wss_username_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services Managerによる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サービス・クライアントをデプロイします。
OWSM 12cクライアントおよび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 Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
JSEクライアントの場合のみ、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、ユーザー名トークンを生成するためにクライアントが設定する必要があります。
注意: Java EEクライアントの場合、この手順を行う必要はありません。
myPort.setUsername("wss4j"); myPort.setPassword("security"););
Webサービス・クライアントをデプロイします。
クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。
-Djavax.net.ssl.trustStore=default-keystore.jks
この項では、次の相互運用性シナリオにおいてSSL経由のSAMLトークン(送信者保証)を実装する方法について説明します。
Axis/WSS4JクライアントおよびOWSM 12c Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーをSSL用に構成します。
詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』のトランスポート・レベルのセキュリティ(SSL)の構成に関する説明を参照してください。
wss_saml_token_over_ssl_service_policyポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Web Services Managerによる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サービス・クライアントをデプロイします。
OWSM 12cクライアントおよび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 Web Services ManagerによるWebサービスの保護とポリシーの管理』のポリシーのアタッチに関する説明を参照してください。
JSEクライアントの場合は、Webサービス・クライアント・プロパティを次のように構成します。ユーザー名とパスワードは、SAMLアサーションを生成するためにクライアントが設定する必要があります。
注意: Java EEクライアントの場合、この手順を行う必要はありません。 |
myPort.setUsername("wss4j");
Webサービス・クライアントをデプロイします。
クライアントを実行している場合は、次のクライアント・システム・プロパティを含めます。ここで、default-keystore.jksは、サーバー証明書に対応する証明書が含まれるキーストアを示します。
-Djavax.net.ssl.trustStore=default-keystore.jks