Oracle® Fusion Middleware Oracle Web Services Manager相互運用ガイド 11g リリース1 (11.1.1) B61391-05 |
|
前 |
次 |
この章の内容は次のとおりです。
Oracle Service Bus 10gでは、ポリシーをアタッチして、インバウンド・リクエストとアウトバウンド・リクエストに対してセキュリティ環境を構成します。Oracle Service Busでは、そのセキュリティ・サービスのビルディング・ブロックとして、基礎となるWebLogicセキュリティ・フレームワークを使用します。ポリシーを構成およびアタッチする方法の詳細は、http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/security/ws_policy.html
のOracle Service Busのセキュリティ・ガイドで、Oracle Service Busプロキシおよびビジネス・サービスでのWS-Policyの使用に関する項を参照してください。
注意: パッチ・ツールを使用して、Oracle Service Bus 10.3用にリリースされたTYBNおよびU37Zパッチをダウンロードし、適用しておく必要があります。 |
Oracle WSM 11gでは、ポリシーをWebサービス・エンドポイントにアタッチします。各ポリシーは、ドメインレベルで定義された、セキュリティ要件を定義する1つ以上のアサーションで構成されます。そのまま使用できる一連の事前定義済のポリシーおよびアサーションが用意されています。
事前定義済ポリシーの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の事前定義済ポリシーに関する項を参照してください。
ポリシーを構成およびアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成およびWebサービスへのポリシーのアタッチに関する項を参照してください。
表6-1は、セキュリティ要件(認証、メッセージ保護およびトランスポート)に基づいたOracle Service Bus 10gの最も一般的な相互運用性シナリオをまとめたものです。
詳細は次を参照してください。
Oracle WSM 11gポリシーを構成およびアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成およびWebサービスへのポリシーのアタッチに関する項を参照してください。
Oracle Service Bus 10gポリシーを構成およびアタッチする方法の詳細は、http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/security/ws_policy.html
のOracle Service Busのセキュリティ・ガイドで、Oracle Service Busプロキシおよびビジネス・サービスでのWS-Policyの使用に関する項を参照してください。
注意: 以降のシナリオでは、v3証明書付きのキーストアを使用していることを確認してください。JDK 1.5キーツールでは、デフォルトでv1証明書付きのキーストアが生成されます。 また、キーが適切な拡張(DigitalSignature、Non_repudiation、Key_EnciphermentおよびData_Enciphermentなど)を使用していることも確認してください。 |
表6-1 Oracle Service Bus 10gのセキュリティ環境との相互運用性
相互運用性シナリオ | クライアント→Webサービス | Oracle WSM 11gのポリシー | Oracle Service Bus 10gのポリシー |
---|---|---|---|
「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」 |
Oracle Service Bus 10g→Oracle WSM 11g |
oracle/wss10_username_token_with_message_protection_service_policy |
Encrypt.xml Sign.xml |
「メッセージ保護付きユーザー名トークン(WS-Security 1.0)」 |
Oracle WSM 11g→Oracle Service Bus 10g |
oracle/wss10_username_token_with_message_protection_client_policy |
Encrypt.xml Sign.xml |
「メッセージ保護付きSAMLトークン(送信者保証)(WS-Security 1.0)」 |
Oracle Service Bus 10g→Oracle WSM 11g |
oracle/wss10_saml_token_with_message_protection_service_policy |
Encrypt.xml Sign.xml |
「メッセージ保護付きSAMLトークン(送信者保証)(WS-Security 1.0)」 |
Oracle WSM 11g→Oracle Service Bus 10g |
oracle/wss10_saml_token_with_message_protection_client_policy |
Encrypt.xml Sign.xml |
|
Oracle Service Bus 10g→Oracle WSM 11g |
oracle/wss_saml_or_username_token_over_ssl_service_policy |
Auth.xml |
「メッセージ保護付き相互認証(WS-Security 1.0)」 |
Oracle Service Bus 10g→Oracle WSM 11g |
oracle/wss10_x509_token_with_message_protection_service_policy |
Encrypt.xml Sign.xml |
「メッセージ保護付き相互認証(WS-Security 1.0)」 |
Oracle WSM 11g→Oracle Service Bus 10g |
oracle/wss10_x509_token_with_message_protection_client_policy |
Encrypt.xml Sign.xml |
この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きユーザー名トークンを実装する方法について説明します。
相互運用性のための構成の前提条件
Oracle Service Busが稼働しているWebLogic Serverに対して、次の前提条件ステップを実行します。
default-keystore.jksおよびtrust.jksファイルをドメイン・ディレクトリにコピーします。
default-keystore.jksは、WebLogicドメイン内のSOAPメッセージの公開鍵と秘密鍵を格納するために使用されます。trust.jksは、WebLogic Server環境でのアイデンティティと信頼の確立および検証に使用される公開鍵、デジタル証明書、および信頼できる認証局証明書を格納するために使用されます。
Oracle WebLogic管理コンソールへのアクセスに関する項の説明に従って、Weblogic管理コンソールを起動します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのキーストアの構成に関する項の説明に従って、カスタムIDキーストアとカスタム信頼キーストアを構成します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのSSLの設定に関する項の説明に従って、SSLを構成します。
秘密鍵の別名を指定します。例: oratest
。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの資格証明マッピング・プロバイダの構成に関する項の説明に従って、資格証明マッピング・プロバイダを構成します。
PKICredentialMapperを作成し、次のように構成します(その他の値はすべてデフォルト設定のままにしておきます)。
キーストア・プロバイダ: なし
キーストアのタイプ: jks
キーストア・ファイル名: default_keystore.jks
キーストアのパスフレーズ: <password>
キーストアのパスフレーズを確認: <password>
Oracle WebLogic Serverを再起動します。
OSBコンソールを起動します。例:
http://<host name>:<port number>/sbconsole
ServiceKeyProviderを作成します。
「暗号化鍵」および「デジタル署名鍵」を指定します。
Oracle WSMサーバーとOracle Service Busサーバーでは別々のキーを使用する必要があります。必要であれば、暗号化と署名には同じキーを使用できます。
Oracle Service Bus 10gクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
wss10_username_token_with_message_protection_service_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
次のようにして、ポリシー設定を編集します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
「タイムスタンプを含める」構成設定を有効化します。
ユーザー名トークン要素の場合のみ、「暗号化」を「false」に設定します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、ファイルをmyEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
暗号化準拠の失敗を回避するために、myEncrypt.xmlファイル内の暗号化アルゴリズムを次のように編集します。
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
ユーザー名トークンに署名する目的のみで、Oracle Service Busビジネス・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集します。これには、次のターゲットを含めます。
<wssp:Target> <wssp:DigestAlgorithm URI= "http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect= "http://www.bea.com/wls90/security/policy/wsee#part"> wls:SecurityHeader(wsse:UsernameToken) </wssp:MessageParts> </wssp:Target>
セキュリティ・トークンを無署名にすることを指定する目的のみで、Oracle Service Busビジネス・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集します。
<wssp:Integrity SignToken="false">
また、SOAクライアントの場合のみ、次に示すようにシステム・ヘッダーのターゲットをコメント・アウトします。
<!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SystemHeaders() </wssp:MessageParts> </wssp:Target -->
クライアントからWebサービス・メソッドを起動します。
Oracle WSM 11gクライアントおよびOracle Service Bus 10g Webサービスを構成するには、次の各項で説明する手順を実行します。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、ファイルをmyEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
暗号化準拠の失敗を回避するために、myEncrypt.xmlファイル内の暗号化アルゴリズムを次のように編集します。
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
セキュリティ・トークンを無署名にすることを指定する目的のみで、プロキシ・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集します。
<wssp:Integrity SignToken="false">
また、SOAクライアントの場合のみ、次に示すようにシステム・ヘッダーのターゲットをコメント・アウトします。
<!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SystemHeaders() </wssp:MessageParts> </wssp:Target -->
Oracle Service Busルーティング・サービスを起動するWebサービス・アプリケーションを作成します。
wss10_username_token_with_message_protection_client_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
次のようにして、ポリシー設定を編集します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「受信者暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
「タイムスタンプを含める」構成設定を無効化します。
「暗号化」を「false」に設定します。
メッセージの署名および暗号化については、デフォルト構成設定のままにしておきます。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
ポリシーをWebサービス・クライアントにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
クライアントからWebサービスを起動します。
この項では、次の相互運用性シナリオにおいてWS-Security 1.0標準に準拠するメッセージ保護付きSAMLトークン(送信者保証)を実装する方法について説明します。
相互運用性のための構成の前提条件
Oracle Service Busが稼働しているWebLogic Serverに対して、次の前提条件ステップを実行します。
default-keystore.jksおよびtrust.jksファイルをドメイン・ディレクトリにコピーします。
default-keystore.jksは、WebLogicドメイン内のSOAPメッセージの公開鍵と秘密鍵を格納するために使用されます。trust.jksは、WebLogic Server環境でのアイデンティティと信頼の確立および検証に使用される公開鍵、デジタル証明書、および信頼できる認証局証明書を格納するために使用されます。
Oracle WebLogic管理コンソールへのアクセスに関する項の説明に従って、Weblogic管理コンソールを起動します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの認証プロバイダとIDアサーション・プロバイダの構成に関する項の説明に従って、SAMLIdentityAsserterV2認証プロバイダを作成します。
WebLogic Serverを再起動して、新しいプロバイダを管理サーバーのランタイムMBeanサーバーに追加します。
ステップ3で作成した認証プロバイダを選択します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのSAML IDアサータV2: アサーティング・パーティの作成および「SAML IDアサータV2: アサーティング・パーティ: 構成」に関する項の説明に従って、SAMLアサーティング・パーティを作成して構成します。
次のようにSAMLアサーティング・パーティを構成します(その他の値はデフォルトの設定のままにしておきます)。
プロファイル: WSS/sender-vouches
ターゲットURL: <OSB Proxy Service Endpoint URI>
発行者URI: www.oracle.com
「有効」チェック・ボックスを選択し、「保存」をクリックします。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの資格証明マッピング・プロバイダの構成に関する項の説明に従って、SamlCredentialMapperV2という資格証明マッピング・プロバイダを作成します。
ドロップダウン・リストから「SamlCredentialMapperV2」を選択し、資格証明マッパーに名前を付けます(UC2_SamlCredentialMapperV2など)。
WebLogic Serverを再起動します。
次のように資格証明マッパーを構成します(その他の値はデフォルトの設定のままにしておきます)。
発行者URI: www.oracle.com
注意: この値はポリシー・ファイル内に指定されています。
名前修飾子: oracle.com
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのSAML資格証明マッピング・プロバイダV2: リライイング・パーティの作成および「SAML資格証明マッピング・プロバイダV2: リライイング・パーティ: 構成」に関する項の説明に従って、SAMLリライイング・パーティを作成して構成します。
次のようにSAMLリライイング・パーティを構成します(その他の値はデフォルトの設定のままにしておきます)。
プロファイル: WSS/sender-vouches
ターゲットURL: <Oracle WSM 11g Web Service>
説明: <your_description>
「有効」チェック・ボックスを選択し、「保存」をクリックします。
WebLogic Serverを再起動します。
Oracle Service Bus 10gクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
oracle/wss10_saml_token_with_message_protection_service_policyポリシーのコピーを作成します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
ユーザー名トークン要素の場合のみ、「暗号化」を「false」に設定します。
メッセージの署名および暗号化については、デフォルト構成設定のままにしておきます。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、myEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
暗号化準拠の失敗を回避するために、myEncrypt.xmlファイル内の暗号化アルゴリズムを次のように編集します。
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
SAMLアサーションに署名する目的のみで、Oracle Service Busビジネス・サービス・リクエストにアタッチされたmySign.xmlファイルを編集します。これには、次のターゲットを含めます。
<wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect= "http://www.bea.com/wls90/security/policy/wsee#part"> wls:SecurityHeader(wsse:Assertion) </wssp:MessageParts> </wssp:Target>
セキュリティ・トークンを無署名にすることを指定する目的のみで、Oracle Service Busビジネス・サービス・レスポンスにアタッチされたmySign.xmlファイルを次のように編集します。
<wssp:Integrity SignToken="false">
また、SOAクライアントの場合のみ、次に示すようにシステム・ヘッダーのターゲットをコメント・アウトします。
<!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SystemHeaders() </wssp:MessageParts> </wssp:Target -->
例6-1で定義されているカスタムSAMLポリシーを使用します。
クライアントからWebサービスを起動します。
使用するカスタムSAMLポリシーを次に定義します。
例6-1 カスタムSAMLポリシー
<?xml version="1.0"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part" wsu:Id="custom_saml"> <wssp:Identity xmlns:wssp="http://www.bea.com/wls90/security/policy"> <wssp:SupportedTokens> <wssp:SecurityToken TokenType= "http://docs.oasis-open.org/wss/2004/01/oasis-2004-01-saml-token-profile-1.0#SAMLAssertionID"> <wssp:Claims> <wssp:ConfirmationMethod> sender-vouches </wssp:ConfirmationMethod> </wssp:Claims> </wssp:SecurityToken> </wssp:SupportedTokens> </wssp:Identity> </wsp:Policy>
Oracle WSM 11gクライアントおよびOracle Service Bus 10g Webサービスを構成するには、次の各項で説明する手順を実行します。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、myEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
暗号化準拠の失敗を回避するために、myEncrypt.xmlポリシー・ファイル内の暗号化アルゴリズムを次のように編集します。
<wssp:Target>
<wssp:EncryptionAlgorithm
URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<wssp:MessageParts
Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">
wsp:Body()
</wssp:MessageParts>
</wssp:Target>
セキュリティ・トークンを無署名にすることを指定する目的のみで、プロキシ・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集します。
<wssp:Integrity SignToken="false">
また、SOAクライアントの場合のみ、次に示すようにシステム・ヘッダーのターゲットをコメント・アウトします。
<!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SystemHeaders() </wssp:MessageParts> </wssp:Target -->
例6-1で定義されているカスタムSAMLポリシーを使用します。
wss10_saml_token_with_message_protection_client_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
次のようにして、ポリシー設定を編集します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「受信者暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
「タイムスタンプを含める」構成設定を無効化します。
メッセージの署名および暗号化については、デフォルト構成設定のままにしておきます。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
ポリシーをWebサービス・クライアントにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
クライアントからWebサービスを起動します。
この項では、次の相互運用性シナリオにおいてSSL経由のSAMLトークンまたはユーザー名トークンのポリシーを実装する方法について説明します。
注意: この項で説明する相互運用性シナリオは、SSL経由のSAMLトークンおよびSSL経由のユーザー名トークンのポリシーにも適用されます。 |
相互運用性のための構成の前提条件
ユーザー名トークンの構成の詳細は、「相互運用性のための構成の前提条件」を参照してください。
SAMLトークンの構成の詳細は、「相互運用性のための構成の前提条件」を参照してください。
相互運用性のためのSAMLの前提条件
SAMLの場合、Oracle Service Busが稼働しているWebLogic Serverに対して、次の前提条件ステップを実行します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの資格証明マッピング・プロバイダの構成に関する項の説明に従って、SamlCredentialMapperV2という資格証明マッピング・プロバイダを作成します。
ドロップダウン・リストから「SamlCredentialMapperV2」を選択し、資格証明マッパーに名前を付けます(UC2_SamlCredentialMapperV2など)。
WebLogic Serverを再起動します。
次のように資格証明マッパーを構成します(その他の値はデフォルトの設定のままにしておきます)。
発行者URI: www.oracle.com
注意: この値はポリシー・ファイル内に指定されています。
名前修飾子: oracle.com
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのSAML資格証明マッピング・プロバイダV2: リライイング・パーティの作成および「SAML資格証明マッピング・プロバイダV2: リライイング・パーティ: 構成」に関する項の説明に従って、SAMLリライイング・パーティを作成して構成します。
次のようにSAMLリライイング・パーティを構成します(その他の値はデフォルトの設定のままにしておきます)。
プロファイル: WSS/sender-vouches
ターゲットURL: <Oracle WSM 11g Web Service>
説明: <your_description>
「有効」チェック・ボックスを選択し、「保存」をクリックします。
WebLogic Serverを再起動します。
Oracle Service Bus 10gクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
サーバーを双方向SSL用に構成します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。
サービス・ポリシーがSSL経由のユーザー名トークンの場合、「相互クライアント証明書の動作」を「クライアント証明書をリクエスト(強制しない)」に設定します。
サービス・ポリシーがSSL経由のSAML名トークンの場合、「相互クライアント証明書の動作」を「クライアント証明書をリクエスト(強制する)」に設定します。
wss_saml_or_username_token_over_ssl_service_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
wss_username_token_over_ssl_service_policyに対して、「要素およびNonceの作成」構成設定を無効化します。
wss_saml_token_over_ssl_service_policyに対して、「タイムスタンプを含める」構成設定を無効化します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
Fusion Middleware Controlを使用して、ポリシーをインポートします。
JDeveloperを使用して、単純なSOAコンポジットを作成します。
wss_saml_or_username_token_over_ssl_service_policyポリシーのコピーをコンポジットにアタッチし、デプロイします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
SAMLトークン・クライアントとユーザー名トークン・クライアントはいずれもサポートされています。
サーバーを双方向SSL用に構成します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebLogic ServerへのSSLの構成(双方向)に関する項を参照してください。
クライアント・ポリシーがSSL経由のユーザー名トークンに相当するポリシーの場合、「相互クライアント証明書の動作」を「クライアント証明書をリクエスト(強制しない)」に設定します。
クライアント・ポリシーがSSL経由のSAMLトークンに相当するポリシーの場合、「相互クライアント証明書の動作」を「クライアント証明書をリクエスト(強制する)」に設定します。
Oracle Service Busコンソールで、リライイング・パーティのWSDLをインポートします。いずれのポリシーもアタッチされていないことを確認してください(このサービスではポリシー・アサーションは許可されていません。)
SAMLトークンに対して、ビジネス・サービスを作成します。
例6-1の「カスタムSAMLポリシー」に示されているポリシーをリクエストにアタッチします。
WSDLをHTTPからHTTPSに変更します。
ユーザー名トークンに対して、ビジネス・サービスを作成します。
auth.xmlポリシーをリクエストにアタッチします。
WSDLをHTTPからHTTPSに変更します。
サービス・キー・プロバイダを作成します。
プロキシ・サービスを作成し、ビジネス・サービスへのルートを作成します。
「HTTPトランスポート構成」で、「認証」を「基本」に設定します。
「セキュリティ」ページで、サービス・キー・プロバイダを関連付けます。これは、Oracle Service Busがクライアント証明書をSOAに送信するために必要となります。
Oracle Service Busコンソールから、ユーザー名とパスワードを使用してプロキシ・サービスを実行します。
次の各項では、WS-Security 1.0標準に準拠するメッセージ保護付き相互認証を実装する方法について説明します。
Oracle WebLogic Serverの構成の前提条件
Oracle Service Busが稼働しているOracle WebLogic Serverに対して、次の前提条件ステップを実行します。
default-keystore.jksおよびtrust.jksファイルをドメイン・ディレクトリにコピーします。
default-keystore.jksは、WebLogicドメイン内のSOAPメッセージの公開鍵と秘密鍵を格納するために使用されます。trust.jksは、Oracle WebLogic Server環境でのアイデンティティと信頼の確立および検証に使用される公開鍵、デジタル証明書、および信頼できる認証局証明書を格納するために使用されます。
Oracle WebLogic管理コンソールへのアクセスに関する項の説明に従って、Weblogic管理コンソールを起動します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのキーストアの構成に関する項の説明に従って、カスタムIDキーストアとカスタム信頼キーストアを構成します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのSSLの設定に関する項の説明に従って、SSLを構成します。
秘密鍵の別名を指定します。例: oratest
。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの資格証明マッピング・プロバイダの構成に関する項の説明に従って、資格証明マッピング・プロバイダを構成します。
PKICredentialMapperを作成し、次のように構成します(その他の値はすべてデフォルト設定のままにしておきます)。
キーストア・プロバイダ: なし
キーストアのタイプ: jks
キーストア・ファイル名: default_keystore.jks
キーストアのパスフレーズ: <password>
キーストアのパスフレーズを確認: <password>
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの認証プロバイダとIDアサーション・プロバイダの構成に関する項の説明に従って、認証を構成します。
「認証」タブを選択し、次のように構成します。
「DefaultIdentityAsserter」をクリックし、「X.509」を「選択済み」アクティブ・タイプに追加します。
「プロバイダ固有」をクリックし、次のように構成します。
デフォルト・ユーザー名マッパーの属性のタイプ: CN
アクティブなタイプ: X.509
デフォルト・ユーザー名マッパーの使用: True
トークン・ハンドラを構成して、メッセージ保護付きのWebサービスを起動するクライアントがX.509証明書を使用してアイデンティティを確立することを指定します。WebLogic管理コンソールで、ドメインの「Webサービス・セキュリティ」ページにナビゲートし、次のようにインバウンド・メッセージとアウトバウンド・メッセージを構成します。
注意: 常に使用できるのは、メッセージ保護付きユーザー名トークンまたはメッセージ保護付き相互認証のみです。メッセージ保護付き相互認証を有効にすると、以降のユーザー名認証は失敗します。 |
「_SERVICE_BUS_INBOUND_WEB_SERVICE_SECURITY_MBEAN_」をクリックし、「トークン・ハンドラ」タブを選択します。
「X.509」トークン・ハンドラをクリックし、次のように構成します。
名前: UseX509ForIdentity
値: True
アウトバウンドOracle Service Bus MBeanの_SERVICE_BUS_OUTBOUND_WEB_SERVICE_SECURITY_MBEAN_に対しても、同じ手順を実行します。
ユーザーを追加していない場合は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのユーザーの作成に関する項の説明に従って、証明書内に指定されている一般名(CN)ユーザーを追加します。
Oracle WebLogic Serverを再起動します。
Oracle WSMの構成の前提条件
Oracle WebLogic Server管理コンソールを使用して、Oracle WSMに対して次の前提条件ステップを実行します。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプの認証プロバイダとIDアサーション・プロバイダの構成に関する項の説明に従って、認証を構成します。
「認証」タブを選択し、次のように構成します。
「DefaultIdentityAsserter」をクリックし、「X.509」を「選択済み」アクティブ・タイプに追加します。
「プロバイダ固有」をクリックし、次のように構成します。
デフォルト・ユーザー名マッパーの属性のタイプ: CN
アクティブなタイプ: X.509
デフォルト・ユーザー名マッパーの使用: True
ユーザーを追加していない場合は、Oracle Fusion Middleware Oracle WebLogic Server管理コンソール・ヘルプのユーザーの作成に関する項の説明に従って、証明書内に指定されている一般名(CN)ユーザーを追加します。
Oracle WebLogic Serverを再起動します。
Oracle Service Bus 10gクライアントおよびOracle WSM 11g Webサービスを構成するには、次の各項で説明する手順を実行します。
SOAコンポジットを作成してデプロイします。
wss10_x509_token_with_message_protection_service_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
次のようにして、ポリシー設定を編集します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
ポリシーをWebサービスにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービスへのポリシーのアタッチに関する項を参照してください。
Oracle Service Busビジネス・サービスを作成します。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、ファイルをmyEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
X.509ポリシーをOracle Service Busビジネス・サービス・リクエストにアタッチします。
<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:s0="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" s0:Id="X509Auth"> <wssp:Identity xmlns:wssp="http://www.bea.com/wls90/security/policy"> <wssp:SupportedTokens> <wssp:SecurityToken TokenType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/> </wssp:SupportedTokens> </wssp:Identity> </wsp:Policy>
Sign.xmlポリシー・ファイルをOracle Service Busビジネス・サービス・リクエストにアタッチします。
myEncrypt.xmlポリシーを編集し、Oracle Service Busビジネス・サービス・リクエストにアタッチします。
<?xml version="1.0"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part" wsu:Id="X509Encrypt"> <wssp:Confidentiality> <wssp:KeyWrappingAlgorithm URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <wssp:Target> <wssp:EncryptionAlgorithm URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> <wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">wsp:Body()</wssp:MessageParts> </wssp:Target> <wssp:KeyInfo/> </wssp:Confidentiality> </wsp:Policy>
セキュリティ・トークンを無署名にすることを指定するために、Oracle Service Busビジネス・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集します。
<wssp:Integrity SignToken="false">
また、SOAクライアントの場合のみ、次に示すようにシステム・ヘッダーのターゲットをコメント・アウトします。
<?xml version="1.0"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- utility-1.0.xsd" xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part" wsu:Id="X509Sign"> <wssp:Integrity SignToken="false"> <wssp:SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <wssp:CanonicalizationAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#"/> <!--wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SystemHeaders() </wssp:MessageParts> </wssp:Target--> <wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part"> wls:SecurityHeader(wsu:Timestamp) </wssp:MessageParts> </wssp:Target> <wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part"> wsp:Body() </wssp:MessageParts> </wssp:Target> </wssp:Integrity> <wssp:MessageAge/> </wsp:Policy>
手順6で編集したmyEncrypt.xmlポリシー・ファイルをOracle Service Busビジネス・サービス・レスポンスにアタッチします。
ServiceKeyProviderを作成します。
「暗号化鍵」および「デジタル署名鍵」を指定します。
Oracle WSMサーバーとOracle Service Busサーバーでは別々のキーを使用する必要があります。必要であれば、暗号化と署名には同じキーを使用できます。
プロキシ・サービスを作成し、ビジネス・サービスへのルートを作成します。
「セキュリティ」ページで、サービス・キー・プロバイダを関連付けます。これは、Oracle Service Busがクライアント証明書をSOAに送信するために必要となります。
Oracle Service Busコンソールからプロキシ・サービスを実行します。
Oracle WSM 11gクライアントおよびOracle Service Bus 10g Webサービスを構成するには、次の各項で説明する手順を実行します。
Oracle Service Busプロキシ・サービスを作成します。
Encrypt.xmlおよびSign.xml policyファイルのコピーを作成します。
たとえば、myEncrypt.xmlおよびmySign.xmlにコピーします。事前定義済ポリシー・ファイルを直接編集することはお薦めしません。
「Oracle Service Bus 10gクライアントの構成」に示されているX.509ポリシーをプロキシ・サービス・リクエストにアタッチします。
プロキシ・サービス・リクエストにアタッチされたmySign.xmlポリシー・ファイルを編集し、次に示すようにシステム・ヘッダーとタイムスタンプのターゲットをコメント・アウトします。
<?xml version="1.0"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:s0="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" s0:Id="X509SignRequest"> <wssp:Integrity xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part" xmlns:wssp="http://www.bea.com/wls90/security/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- utility-1.0.xsd"> <wssp:SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <wssp:CanonicalizationAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#" /> <!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part">wls:SystemHeaders ()</wssp:MessageParts> </wssp:Target --> <!-- wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://www.bea.com/wls90/security/policy/wsee#part">wls:SecurityHeader (wsu:Timestamp)</wssp:MessageParts> </wssp:Target --> <wssp:Target> <wssp:DigestAlgorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" /> <wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">wsp:Body()</wssp:MessageParts> </wssp:Target> </wsp:Policy>
プロキシ・サービス・リクエストにアタッチされたmyEncrypt.xmlファイル内の暗号化アルゴリズムを次のように変更します。
<?xml version="1.0"?>
<wsp:Policy
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wssp="http://www.bea.com/wls90/security/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wls="http://www.bea.com/wls90/security/policy/wsee#part"
wsu:Id="X509Encrypt">
<wssp:Confidentiality>
<wssp:KeyWrappingAlgorithm URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<wssp:Target>
<wssp:EncryptionAlgorithm URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
<wssp:MessageParts Dialect="http://schemas.xmlsoap.org/2002/12/wsse#part">wsp:Body()</wssp:MessageParts>
</wssp:Target>
<wssp:KeyInfo/>
</wssp:Confidentiality>
</wsp:Policy>
前の手順で編集したmySign.xmlおよびmyEncrypt.xmlポリシー・ファイルをプロキシ・サービス・レスポンスにアタッチします。
サービス・キー・プロバイダを作成します。
wss10_x509_token_with_message_protection_client_policyポリシーのコピーを作成します。
注意: 使用できることがわかっている有効なポリシー・セットが常にあるように、事前定義済ポリシーは変更しないことをお薦めします。 |
Enterprise Managerで、次のようにポリシー設定を編集します。
「暗号化キー参照メカニズム」を「issuerserial」に設定します。
「受信者暗号化キー参照メカニズム」を「issuerserial」に設定します。
「アルゴリズム・スイート」を、Oracle Service Busに使用されるアルゴリズム・スイートに合わせて「Basic128Rsa15」に設定します。
「タイムスタンプを含める」構成設定を無効化します。
詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の既存のポリシーからのWebサービス・ポリシーの作成に関する項を参照してください。
Enterprise Managerで、クライアント構成内にkeystore.recipient.aliasを指定します。クライアントに指定するkeystore.recipient.aliasキーが、Webサービスに対して構成されている信頼ストア内に信頼できる証明書エントリとして存在していることを確認してください。
ポリシーをWebサービス・クライアントにアタッチします。
ポリシーをアタッチする方法の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のWebサービス・クライアントへのポリシーのアタッチに関する項を参照してください。
クライアントからWebサービスを起動します。