52 Oracle Web Services Managerを使用したOracle Service Busのセキュリティ
この章では、Service BusとOracle Web Services Manager (OWSM)を組み合せて使用し、既存のセキュリティ・プロバイダを活用しながら、WS-Securityポリシーとのサービス統合環境を保護するためのスケーラブルで標準ベースの集中管理型アプローチを提供する方法について説明します。
OWSMは、セキュリティ・ポリシーの作成、管理、および制御のための実行時フレームワークです。ポリシーを作成して、Service Bus内のサービスにアタッチし、OWSMエージェントを使用してこれらのポリシーをメッセージングのライフ・サイクルの様々なポイントで施行します。
OWSMポリシーにより、WS-AT、WS-RMおよびWS-Security/WS-SCが有効になります。WSDL埋込みポリシーは使用できません。
ノート:
Oracle Web Services Manager (OWSM)は、Service Busで使用されるWebサービス・セキュリティ・メカニズムです。ビジネス・サービスやプロキシ・サービスなどの新規作成されたすべてのリソースでは、セキュリティにOWSMポリシーを使用します。WLS 9ポリシーは非推奨になったため、新しいService Busリソースのセキュリティの構成には使用できません。
ただし、WLS 9ポリシーですでに構成されたリソースをService Busプロジェクトにインポートできます。これらのWLS 9ポリシーの編集または変更はできませんが、OWSMポリシーに置き換えることができます。
ノート:
クラスタ・ドメインで、管理対象サーバーは、リスニング・アドレスを使用するか、マシンに割り当てる必要があります。WSM-CCWはこの情報を使用して、AdminServerからWSM-PM(クラスタにデプロイされる)に接続するURLを作成します。それ以外の場合、Service BusサービスにアタッチされるWSMポリシーはドメインにインポートされないか、正常に動作しません。
この章の内容は次のとおりです。
52.1 Oracle Web Services ManagerとOracle Service Busの統合について
OWSMは、Oracle Enterprise Manager Fusion Middleware Controlのコンポーネントで、Oracle SOA Suite環境およびアプリケーションの集中管理と制御を提供するランタイムのフレームワークです。
OWSMポリシーは、Oracle Enterprise Managerで作成および構成し、ポリシー・ストア(データベースを推奨)で保持されます。OWSMを使用すると、LDAPディレクトリに対してポリシーを定義し、標準のセキュリティ・トークン(SAMLトークンなど)を生成して、単一のトランザクションで使用される複数のWebサービス間でIDを伝播できます。
Service Busでは、セキュリティ・ポリシーをアタッチできるビジネス・サービスやプロキシ・サービスを定義する際に、使用可能なOWSMポリシーをアタッチできます。
52.1.1 セキュリティ・プロバイダ
Service BusおよびOracle Web Services Manager (OWSM)では、認証と認可に特定のサービスを使用します。OWSMはJava Platform Security (JPS)を使用するため、Service BusはOWSMポリシーにJPSプロバイダを使用します。Service Busでは、メッセージ・セキュリティの他のアスペクトに対してCommon Security Services (CSS)も使用します。これは、Oracle Platform Security Services (OPSS)の一部です。
Oracleセキュリティ・サービスの詳細は、Oracle Platform Security Servicesによるアプリケーションの保護のOracle Platform Security Servicesの概要に関する項を参照してください。
次のトピックでは、様々なセキュリティ分野でService BusとOWSMがどのセキュリティ・プロバイダを使用するかについて説明します。
52.1.1.1 JPSプロバイダ
Oracle Web Services Managerポリシーを使用する場合は、次の事項が適用されます。
-
OWSMポリシーは、WebLogic Serverではなく、JPSのSAMLプロバイダを使用します。OWSMでのSAMLの構成の詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のSAMLの構成に関する項を参照してください。
-
認証の場合、OWSMはJPSログイン・モジュールを使用し、このモジュールが、WebLogic Server上で構成された認証プロバイダをコールします。
-
OWSMとService Busは、Oracle Platform Security Servicesで提供されるJavaキーストア(JKS)とキーストア・サービス(KSS)をサポートしています。OWSMポリシーの場合、WebLogic ServerとJPSキーストアの両方が同じ種類のキーストアを参照するようにJPS上でキーストアを構成する方法が最適です。たとえば、JKSファイル・キーストアを使用する場合、JPSとWebLogic Serverは同じファイルを示す必要があります。KSSキーストアを使用する場合、JPSとWebLogic Serverは同じKSS構成を示す必要があります。
キーストアの作成の詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のメッセージ保護に関するキーストアの構成に関する項を参照してください。
-
JPSキーストアは、OWSMポリシーのキーストア兼トラストストアとして機能します。
52.1.1.2 CSSプロバイダ
Service Busは、次のプロバイダを使用します。
-
WLS 9ポリシーを施行するためのCSSプロバイダ
-
トランスポート・セキュリティを施行するためのCSSプロバイダ
-
認証ポリシーのWebLogic Server認可プロバイダ
-
カスタムのWebLogic Server認証プロバイダおよびカスタムの認証ポリシー用IDアサーション・プロバイダ
-
WebLogic Serverの資格証明プロバイダおよびマッパー
-
WLS 9ポリシーのWebLogic Serverキーストアおよびトラストストア
-
Oracle Web Services Managerエージェントによる認証およびIDアサーション
52.2 Oracle Service BusでのOracle Web Services Managerの使用
この項では、OWSMポリシーをService Busサービスにアタッチする方法、デプロイメントに関する考慮事項および監査とモニタリングについて説明します。
52.2.1 Oracle Service BusサービスへのOracle Web Services Managerポリシーの付加
OWSMポリシーは、Service Busの「ポリシー」ページで、次の種類のプロキシ・サービスおよびビジネス・サービスにアタッチできます。
-
WSDL
-
任意のSOAP
-
任意のXML
-
メッセージング
-
REST
OWSMポリシーは、サービス・レベルでのみアタッチでき、サービスWSDLファイルに埋め込むことはできません。非SOAPサービスに対するポリシー・サポートは制限されることに注意してください。
開発環境でポリシーを付加する際は、開発環境のサービスがOracle Service Busコンソール内のサービスと同期化されていない可能性があることを念頭に置いて、JDeveloperからコンソールにサービスを更新するときに注意してください。サービスをコピーして同じタイプのサービスを作成する場合(たとえば、ビジネス・サービスをコピーして新しいビジネス・サービスを作成する場合)、必ず新しいサービスのOWSMポリシーを確認し、必要な調整を行ってください。
52.2.1.1 ポリシーのオーバーライド
OWSMポリシーをサービスに追加した後、「セキュリティ」ページでポリシーのオーバーライドを入力できます。使用されたポリシーについては、オーバーライド・キー(プロパティ)とそのデフォルト値がユーザー・インタフェースに表示されます。キー名はポリシーのバインディングから取得されます。可能な場合には、キーのデフォルト値の横にテキスト・ボックスが表示され、そこでオーバーライド値を入力できます。Service Busでは、CSFストアでユーザー資格証明を指定する、署名キー別名やCSFキーのようなよく知られているオーバーライド用のキーが提供されません。(Service Busでは、サービス・アカウントでユーザー資格証明が提供されます。)入力するオーバーライド・キーは、呼出しのときにOracle Web Services Managerエージェントに渡されます。
52.2.2 SAMLの構成
Service Busで使用するSAMLの構成の詳細は、「Oracle Service BusでのSAMLの使用」を参照してください。OWSMでのSAMLの構成の詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のSAMLの構成に関する項を参照してください。
52.2.3 WS標準をサポートするためのWSDLファイルの通知
WSDLファイルに組込みOracle Web Service Managerポリシーが含まれるとき、Oracle Service BusおよびOracle SOA Suiteでサポートされている、次のポリシー標準と適合するようにポリシーを通知できます。
-
WS-Policy 1.2(デフォルト)および1.5
-
WS-Security Policy 1.1(デフォルト)、1.2および1.3
OWSMポリシーが組み込まれたWSDLファイルにアクセスする特殊な問合せパラメータをURLで使用することで、Service Busは必要な標準に適合するWSDLファイルを生成します。URLを使用したWSDLファイルへのアクセスの詳細は、「WebブラウザでのService Busリソースの表示」を参照してください。
ノート:
この機能は、Service Busの「WSDLのエクスポート」または「WSDLの生成」機能では使用できません。
特殊な問合せパラメータは&wsp (WS-Policy)および&wssp (WS-Security Policy)で、WSDL、PROXY、およびWSDLファイルを取得するためのBIZ URLパターンと組み合せて使用できます。たとえば:
-
http://localhost:7001/proxy/myProxy?WSDL
&wsp=1.5&wssp=1.2myProxyのWSDLファイル、つまりWSDLベースのプロキシ・サービスを返すことで、OWSMポリシー参照がWS-Policy 1.5およびWS-Security Policy 1.2に適合します。
ノート:
前述のURLで、
/proxy/myProxy
はプロキシ・サービスのエンドポイントURIを指します。 -
http://localhost:7001/sbresource?PROXY/myProject/myProxy
&wsp=1.5&wssp=1.2
myProxyのWSDLファイル、つまりWSDLベースのプロキシ・サービスを返すことで、OWSMポリシー参照がWS-Policy 1.5およびWS-Security Policy 1.2に適合します。
-
http://localhost:7001/sbresource?BIZ/myProject/myBiz
&wsp=1.5&wssp=1.3
myBizのWSDLファイル、つまりWSDLベースのビジネス・サービスを返すことで、OWSMポリシー参照がWS-Policy 1.5およびWS-Security Policy 1.3に適合します。
-
http://localhost:7001/sbresource?WSDL/proxy/myProxy
myProxyのWSDLファイル、つまりWSDLベースのプロキシ・サービスを返すことで、OWSMポリシー参照がWS-Policy 1.2およびWS-Security Policy 1.1に適合します。問合せパラメータが使用されていないため、Service Busはデフォルトを使用します。
-
http://localhost:7001/proxy/myProxy?WSDL
&wssp=1.3
WS-Security Policy 1.3がWS-Policy 1.5のみと互換性があるため、myProxyのWSDLファイルが返され、OWSMポリシー参照がWS-Security Policy 1.3およびWS-Policy 1.5に適合します。
-
無効な値/組合せ
WS-Security Policy 1.2および1.3はWS-Policy 1.5のみと互換性があります。無効な値の例については、表52-1を参照してください。
ヒント:
Webブラウザで別のバージョンの問合せパラメータを試行して、返されるWSDLがどのように変わるかを参照してください。
問合せパラメータの組合せに関するクイック・リファレンスは、次の項の「WSポリシーのためのWSDL問合せパラメータ・リファレンス」を参照してください。
52.2.3.1 WSポリシーのためのWSDL問合せパラメータ・リファレンス
この項では、前の項の「WS標準をサポートするためのWSDLファイルの通知」で説明した&wspおよび&wssp問合せパラメータの、有効および無効な組合せを示すクイック・リファレンスを提供します。例では、?WSDLを使用してWSDLファイルを取得します。「WebブラウザでのService Busリソースの表示」の説明のとおり、WSDLファイル取得の?PROXYおよび?BIZの各メソッドも使用できます。
表52-1に示すように、パラメータが1つ以上省略される際、Service Busでは有効なデフォルトが提供されます。無効な値の例外の場合、WS-Security Policy 1.2および1.3はWS-Policy 1.5のみと互換性があり、その逆もまた同様です。
表52-1 &wspおよび&wsspの問合せパラメータの有効および無効な組合せ
問合せパラメータの組合せ | WS-Policyバージョン | WS-Security Policyバージョン |
---|---|---|
...?WSDL |
1.2 |
1.1 |
...?WSDL&wsp=1.2 |
1.2 |
1.1 |
...?WSDL&wsp=1.5 |
1.5 |
1.3 |
...?WSDL&wssp=1.1 |
1.2 |
1.1 |
...?WSDL&wssp=1.2 |
1.5 |
1.2 |
...?WSDL&wssp=1.3 |
1.5 |
1.3 |
...?WSDL&wsp=1.2&wssp=1.1 |
1.2 |
1.1 |
...?WSDL&wsp=1.5&wssp=1.2 |
1.5 |
1.2 |
...?WSDL&wsp=1.5&wssp=1.3 |
1.5 |
1.3 |
...?WSDL&wsp=1.2&wssp=1.2 |
無効な値の例外 |
無効な値の例外 |
...?WSDL&wsp=1.2&wssp=1.3 |
無効な値の例外 |
無効な値の例外 |
...?WSDL&wsp=1.5&wssp=1.1 |
無効な値の例外 |
無効な値の例外 |
...?WSDL&wsp=3.0&wssp=1.2 |
無効な値の例外 |
無効な値の例外 |
...?WSDL&wsp=1.2&wssp=2.0 |
無効な値の例外 |
無効な値の例外 |
52.2.4 デプロイメントの考慮事項
OWSMポリシー参照を持ったサービスを含むService Busの構成をエクスポートする際は、参照が維持されます。参照されているポリシーが、対象の環境にも存在することを確認する必要があります。対象の環境がIDEの場合、ポリシーがパブリッシュ時に検証されるという警告が表示されます。
52.2.5 監査
Oracle Enterprise Managerのポリシー・イベントを監査するには、監査データのリポジトリおよびイベント・コレクションを設定する必要があります。詳細は、Webサービスの管理の次のトピックを参照してください。
-
監査レポートの表示に関する項 - Oracle Business Intelligence Publisher内の事前定義されたOWSMの監査レポートには、Service Busの統計が含まれます。
次のポリシー・レベルのイベントを監査できます。
-
ポリシーの作成、削除、変更
-
アサーション・テンプレートの作成、削除、変更
52.2.6 統計のモニター
Fusion Middleware Controlを使用すると、ユーザーのService Busサービスに付加されたポリシーをモニターおよび管理できます(それらのサービスの使用状況メトリックと違反メトリックを含む)。また、ポリシー・セットをグローバルに付加し、ポリシーのオーバライドを定義して、ユーザーのサービスに対してポリシーをアタッチおよびデタッチすることもできます。これらのポリシーの監視と管理の詳細は、『Oracle Service Busの管理』のセキュリティ・ポリシーの監視と管理に関する項を参照してください。
Service Busは、WLS 9ポリシーの場合と同様に、OWSMポリシーの施行エラーについてWS-Securityエラーの統計を収集し、この統計は、Service Busサービスの監視ダッシュボードで利用できます。
52.2.7 事前定義済ポリシーとサポートされないアサーション
この項では、OWSMの事前定義済ポリシーとアサーション(Service Busでサポートされるものとサポートされないものがある)を示し、そのリンクが提供されます。カスタム・アサーションがサポートされます。
ノート:
Oracle Enterprise Manager Fusion Middleware Controlのユーザー・インタフェースにおけるアサーションまたはポリシーの「有効化/無効化」オプションでは、アサーションまたはポリシーがService Busでサポートされているかどうかは判断されません。この項では、サポートされるポリシーとアサーションをリストします。
52.2.7.1 事前定義済ポリシー
Service BusでサポートされるOWSMポリシーの詳細は、次のトピックを参照してください。
-
SOAPサービス: Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理の使用する事前定義済ポリシーの決定に関する項を参照してください。ここでは、現在のリリースで利用可能な事前定義済ポリシーに関する情報が提供されます。
-
非SOAPサービス: 表52-2を参照してください。この表では、HTTPトランスポートを使用するWSDL (非SOAP)サービス・タイプ、XMLサービス・タイプまたはメッセージング・サービス・タイプで構成されたビジネス・サービスおよびプロキシ・サービスについて、サポートされるOWSM事前定義済ポリシーを示しています。ユーザー定義のポリシーもサポートされます。
-
RESTサービス: Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のRESTful WebサービスおよびクライアントでサポートされるOWSMポリシーに関する項を参照してください。ここでは、RESTサービス・タイプで構成されるサービスのサポート対象のOWSM事前定義済ポリシーが示されます。
-
JCAサービス: Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のJCAアダプタでサポートされているOWSMポリシーに関する項を参照してください。
ノート:
開発環境でサポートされていないシード・ポリシーを使用すると次のようになります。
-
開発環境で生成された有効なWSDLファイルは、サポートされていないポリシーをスキップします。
-
検証はサービス・パブリッシュ時に実行されます。
次のポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理の事前定義済ポリシーに関する項を参照してください。
表52-2 HTTPトランスポートを使用するWSDL (非SOAP)、XMLおよびメッセージングの各サービス・タイプでサポートされるOWSM事前定義済ポリシー
タイプ | クライアント・ポリシー | サービス・ポリシー |
---|---|---|
認証専用 |
oracle/wss_http_token_client_policy Basic認証専用。 このポリシーの詳細は、「wss_http_token_*_policyのガイドライン」および「OWSM認証ポリシーのガイドライン」を参照してください。 |
oracle/wss_http_token_service_policy Basic認証専用。 このポリシーの詳細は、「wss_http_token_*_policyのガイドライン」および「OWSM認証ポリシーのガイドライン」を参照してください。 |
認証およびメッセージ保護 |
oracle/wss_http_token_over_ssl_client_policy このポリシーの詳細は、「wss_http_token_*_policyのガイドライン」および「OWSM認証ポリシーのガイドライン」を参照してください。 |
oracle/wss_http_token_over_ssl_service_policy このポリシーの詳細は、「wss_http_token_*_policyのガイドライン」および「OWSM認証ポリシーのガイドライン」を参照してください。 |
認可専用 |
該当なし |
oracle/whitelist_authorization_policy |
認可専用 |
該当なし |
oracle/binding_authorization_denyall_policy |
認可専用 |
該当なし |
oracle/binding_authorization_permitall_policy |
信頼性のあるメッセージング |
該当なし |
oracle/reliable_messaging_policy ノート: このポリシーはWSDLサービス・タイプのHTTPトランスポート・サービスでのみサポートされています。このポリシーをアタッチするときには、oracle/reliable_messaging_internal_api_policyもアタッチする必要があります。 |
信頼性のあるメッセージング |
該当なし |
oracle/reliable_messaging_internal_api_policy ノート: このポリシーはWSDLサービス・タイプのHTTPトランスポート・サービスでのみサポートされています。このポリシーをアタッチするときには、oracle/reliable_messaging_policyもアタッチする必要があります。 |
52.2.7.2 wss_http_token_*_policyのガイドライン
この項では、Service Busでwss_http_tokenポリシーを使用する場合のガイドラインを提供します。
ノート:
OWSMポリシーとともにHTTPトランスポートを使用する場合は、トランスポートの「認証」プロパティを「なし」に設定します。これ以外の値に設定すると、OWSMポリシーと競合します。
OWSMのポリシーで特定のオプションを有効にする場合、一定のガイドラインが適用されます。オプションは次のとおりです。
-
認証モード – OWSMおよびService Busでは、ポリシーの「基本」認証モードのみがサポートされます。他のモードではすべて例外が発生します。
-
トランスポート・セキュリティ - このオプションは、SSLチャネルで呼出しを実行する必要があることを示します。実行時は、次に従います。
-
プロキシ・サービス: ポリシーでこのオプションを有効にする場合、ポリシーを含むプロキシ・サービスで「HTTPSが必要」オプションを有効にする必要があります。
-
ビジネス・サービス: ポリシーでこのオプションを有効にするとビジネス・サービス構成で検証は発生しないため、ビジネス・サービス・エンドポイントのアドレスで必ずHTTPSを使用してください。エンドポイントでHTTPSを使用しないと、ランタイム・エラーがスローされます。
-
-
相互認証が必要 - このオプションは双方向SSLを示します。
-
プロキシ・サービス: このオプションは、プロキシ・サービスでは使用できません。OWSMにより提供されるwss_*_over_ssl_* _policyポリシーを使用する場合、このオプションはクリアしてください。
-
ビジネス・サービス: このオプションは、アウトバウンド・メッセージではOWSMに無視されるため、ビジネス・サービスとともに使用しても効果はありません。
-
-
タイムスタンプを含める - このオプションは、SOAPヘッダーにタイムスタンプを強制的に含めます。
-
プロキシ・サービス: このオプションをプロキシ・サービスで有効化すると、OWSMによって、SOAPヘッダーのタイムスタンプが利用可能で有効であることが保証されます。
-
ビジネス・サービス: ビジネス・サービスでこのオプションを有効にすると、OWSMによって、タイムスタンプがまだ存在しない場合にSOAPヘッダーにタイムスタンプが追加されます。
ノート:
HTTPトランスポートで非SOAPのサービス・タイプを使用するプロキシ・サービスおよびビジネス・サービスにwss_http_tokenポリシーを適用する場合は、OWSMポリシーの「タイムスタンプを含める」オプションを無効にする必要があります。
-
52.2.7.3 OWSM認証ポリシーのガイドライン
Service Busサービスでwss_http_token_over_ssl_client_policyやwss_username_token_over_ssl_client_policyなどのトークン・トランスポート・ポリシーを使用する場合、サービスのトランスポート構成ページで「認証」プロパティを「なし」に設定します。OWSMトークン・ポリシーを使用するか、またはトランスポートを通じて認証を処理できます(両方は実行できません)。
52.2.7.4 OWSMポリシーおよびSOAP with Attachments (SwA)
サポートされる任意のOWSMポリシーを、SOAP with Attachments (SwA)がサポートされるプロキシ・サービスおよびビジネス・サービスにアタッチできます。メッセージ本文の保護に加えて、メッセージ保護ポリシーにメッセージの署名またはメッセージの暗号化のためのSwA添付とMIMEヘッダーを含むように構成できます。
52.2.7.5 OWSMポリシーおよびMTOM形式のメッセージ
OWSMポリシーを、MTOM形式のSOAPメッセージがサポートされ、HTTP、ローカルまたはSBトランスポートを使用するプロキシ・サービスおよびビジネス・サービスに付加できます。サポートされるすべてのポリシーのメッセージ処理は、メッセージ保護ポリシーを除いて、MTOM形式のSOAPメッセージと他のすべてのSOAPメッセージで同じです。
メッセージ本文の任意の部分を暗号化するメッセージ保護ポリシーでは、復号化される前に、受信メッセージの<xop:Include>
要素がインラインで埋め込まれます。復号化時に、<xop:Include>
要素は、データのbase64Binary表現で置き換えられます。メッセージ・コンテンツは変更されません。
ノート:
MTOM形式のメッセージをサポートするサービスにOWSMポリシーを適用する場合:
-
プロキシ・サービスの場合は、同等のクライアント・ポリシーを使用して、着信メッセージが最初に暗号化される必要があります。
-
サービスを構成する際は、トランスポートの「認証」プロパティを「なし」に設定します。これ以外の値に設定すると、OWSMポリシーと競合します。
52.2.7.6 OWSMポリシーを使用したWS-ReliableMessagingのサポート
Oracle Service Busでは、Oracle Web Services Managerポリシーoracle/reliable_messaging_policyおよびoracle/reliable_messaging_internal_api_policy
をアタッチすることによって、WSDLサービス・タイプのHTTPトランスポート・サービスでWS-ReliableMessaging (WS-RM)をサポートしています。
サポートされる機能
-
WS-RM 1.0、1.1、および1.2のサポート
-
一方向のWS-RMのサポート
-
同期WS-RM (匿名ReplyTo)のサポート
-
サービス品質(QoS):
-
AtLeastOnce
-
ExactlyOnce
-
AtMostOnce
-
サポートされない機能
-
非HTTPトランスポート・サービスはサポートされていません。
-
非同期WS-RM (非匿名ReplyTo)はサポートされていません。
その他のノート
-
oracle/reliable_messaging_policy
をサービスにアタッチする場合は、常にoracle/reliable_messaging_internal_api_policy
もアタッチする必要があります。両方が追加されていない場合は、エラーがスローされます。 -
同期WS-RMシナリオでは、レスポンス・メッセージが確実に送信されなくてもかまいません。一部のシナリオでは、リクエスト・メッセージはサービスによって確実に処理されますが、クライアントがレスポンスを受信しない場合があります。
-
WS-RMポリシーがアタッチされているHTTPプロキシ・サービスは、次の場合のみ、WS-RMポリシーがアタッチされているHTTPビジネス・サービスを呼び出します。
-
ビジネス・サービスが、WS-RM対応プロキシ・サービスによってターゲットに設定されているパイプラインのルート・ノードである場合
-
ビジネス・サービスがプロキシ・サービスのターゲット・サービスである場合
-
-
WS-ATポリシーは、SOAPバインディングまたはSOAPベースのHTTPプロキシ/ビジネス・サービスのWSDLにのみ適用できます。
-
WS-ATおよびWS-RMポリシーは、同じサービスに適用できません。
-
WS-ATは、一方向WSDL操作でサポートされていません。一方向操作を含むWSDL(SOAPバインディング)ベースのサービスを使用したHTTPプロキシの設計時に、警告メッセージが表示されます。
52.2.7.6.1 WS-RMポリシーを使用したプロキシ・サービスについて
OWSMポリシーoracle/reliable_messaging_ policyおよびoracle/reliable_messaging_internal_api_policyをプロキシ・サービスにアタッチし、そのサービスのWS-RMを有効にします。「Oracle Service BusサービスへのOracle Web Services Managerポリシーの付加」を参照してください。
WS-RMポリシーがアタッチされているHTTPプロキシ・サービスは次のとおりです。
-
トランザクション
-
非同期
WS-RMスタックでは、シーケンスのQualityOfServiceがAtMostOnceまたはExactlyOnceとしてポリシーに設定されている場合のみトランザクションを開始します。「ルーティング」オプションの「サービス品質」(QoS)は、ポリシーにAtMostOnceまたはExactlyOnceとしてシーケンスQualityofServiceが含まれている場合にのみ、ExactlyOnceに設定されます。
一方向および同期リクエスト・メッセージの両方について、リクエスト・パス処理が完了した後、メッセージ確認がWS-RMスタックに通知されます。リクエスト・パスでエラーが発生した場合、WS-RMスタックにエラーが通知され、リクエスト・メッセージは未処理とみなされます。これはポリシーの再試行構成に応じて再試行されます。
52.2.7.6.2 WS-RMポリシーを使用したビジネス・サービスについて
OWSMポリシーoracle/reliable_messaging_ policyおよびoracle/reliable_messaging_internal_api_policyをビジネス・サービスにアタッチし、そのサービスのWS-RMを有効にします。「Oracle Service BusサービスへのOracle Web Services Managerポリシーの付加」を参照してください。
WS-RMポリシーがアタッチされているHTTPビジネス・サービスは次のとおりです。
-
トランザクション
-
非同期
WS-RMポリシーがアタッチされているビジネス・サービスがトランザクション内でリクエスト・メッセージを受信すると、そのトランザクションはWS-RM処理に進む前に中断されます。トランザクションは、ターゲット・サービスから完了確認を受信した場合のみコミットします。
トランザクションは、次の場合にロールバック対象としてマークされます。
-
WS-RMスタックが確認を受信しない場合、または処理中にメッセージがタイムアウトした場合
-
ターゲット・サービスからWS-RM処理に関するフォルトを受信した場合。
WS-RMスタックのエラーによってリクエスト・メッセージを処理できない場合、フォルトが生成され、それがレスポンスとして送信されます。
52.2.7.6.3 エンドツーエンド・メッセージの信頼性
エンドツーエンド・メッセージの信頼性は、次のいずれかのシナリオを使用して実現できます。
エンドツーエンドの信頼性は、次のシナリオでサポートされています。
-
WS-RMアウトバウンドへの非同期プロキシ・サービス
-
WS-RMアウトバウンドへのWS-RMインバウンドは、次の構成でサポートされています。
-
WS-RMインバウンドに、WS-RMアウトバウンドのターゲット・サービスがある
-
WS-RMインバウンドが、WS-RMアウトバウンドへルーティングするパイプラインにターゲット設定されている
-
52.2.7.6.4 WS-RM相互運用性
Service Busを仲介した次の相互作用がサポートされています。
-
SOA Suite 12.2.1 / WebLogic Server < --- > Service Bus < ---- > WS-RM以外のサービス
-
WS-RM以外のクライアント < --- > Service Bus < ---- > Oracle SOA Suite 12.2.1 / WebLogic Server
-
Oracle SOA Suite 12.2.1 / WebLogic Server < --- > Service Bus < ---- > Oracle SOA Suite 12.2.1 / WebLogic Server
52.2.7.6.5 WS-RMサブシステムのチューニング
OWSMポリシーoracle/reliable_messaging_policyおよびoracle/reliable_messaging_internal_api_policyに対してプロパティを構成すると、パフォーマンスを改善できます。
-
oracle/reliable_messaging_internal_api_policyの
user.transaction.timeout
プロパティを使用して、適切なトランザクション・タイムアウトを構成します。 -
oracle/reliable_messaging_internal_api_policyの
sequence.manager.maintenance.period
プロパティを使用して、孤立したメッセージについて、データベース表に格納されているデータをパージするメンテナンス・タスク用に、間隔(ミリ秒)を構成します。 -
oracle/reliable_messaging_internal_api_policyの
max.concurrent.session
プロパティを使用して、WSエンドポイント専用のシーケンス・マネージャが、シーケンス作成の新規リクエストを拒否するまでに、同時にアクティブなWS-RMセッション(インバウンドWS-RMシーケンスに基づいて測定)をいくつ受け入れるかを指定します。
52.2.7.6.5.1 oracle/reliable_messaging_internal_api_policy
次のプロパティを構成すると、oracle/reliable_messaging_policyでのサービス・パフォーマンスをチューニングできます
表52-3 oracle/reliable_messaging_internal_api_policyプロパティ
名前 | 説明 | デフォルト | 必須? |
---|---|---|---|
|
シーケンス・マネージャ・メンテナンス・タスクの実行期間(ミリ秒)を指定します。 |
60000 |
オプション |
|
WSエンドポイント専用のシーケンス・マネージャが、シーケンス作成の新規リクエスト拒否を開始するまでに、同時にアクティブなRMセッション(インバウンドRMシーケンスに基づいて測定)をいくつ受け入れるかを指定します。 |
100 |
オプション |
|
プロキシ・サービスによって開始したXAトランザクションのトランザクション・タイムアウト。 デフォルト値0では、システム・デフォルトを使用します。 |
0 |
オプション |
|
詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のreference.priorityに関する項を参照してください。 |
なし |
オプション |
52.2.7.7 サポートされないアサーション
表52-4は、SOAPおよび非SOAPサービス両方でのサポートされないOWSMアサーションの一覧であり、アサーションを含むポリシーを示し、影響を受ける機能とその機能を実現するための代替方法について説明しています。
表52-4 サポートされないアサーション
サポートされないアサーション | アサーションを含むOWSMポリシー | 影響を受ける機能と代替方法 |
---|---|---|
binding-permission-authorization |
oracle/binding_permission_authorization_policy |
サービスに対する許可ベースのアクセス制御。 代替方法: XACML認可ポリシーを使用します。 |
OptimizedMimeSerialization (MTOM) |
oracle/wsmtom_policy |
MTOM 代替方法: プロキシ・サービスまたはビジネス・サービスで直接MTOM構成を使用します。 |
RMAssertion |
oracle/wsrm10_policy oracle/wsrm11_policy |
WS-RM 1.0/1.1/1.2 代替: WS-RM 1.0/1.1/1.2のService Busで直接WSトランスポートを使用するか、oracle/reliable_messaging_ policyおよびoracle/reliable_messaging_internal_api_policyをWSDLタイプのHTTPトランスポート・サービスにアタッチします。 |
sca-component-authorization |
oracle/component_authorization_denyall_policy oracle/component_authorization_permitall_policy |
コンポーネントにアクセスするすべてを拒否または許可するロール・ベースのアクセス制御。 代替方法: 使用できません |
sca-component-permission-authorization |
oracle/component_permission_authorization_policy |
コンポーネントに対する許可ベースのアクセス制御 代替方法: 使用できません |
UsingAddressing |
oracle/wsaddr_policy |
WS-Addressingが要件 代替方法: SOA-DIRECTトランスポートを使用するビジネス・サービスでWS-Addressingを構成するか、Service BusパイプラインのメッセージにWS-Addressingを追加します。 |
52.2.8 カスタム・アサーション
Oracle Service Busでは、事前定義済ポリシーのセット、およびOWSMで配信されるアサーション・テンプレートの実行がサポートされます。製品で利用できる標準ポリシーで特定の機能が提供されない場合、ユーザーはカスタム・アサーションを開発できます。
カスタム・アサーションの詳細は、Oracle Web Services Managerの拡張可能アプリケーションの開発のカスタム・アサーションについてに関する項を参照してください。
カスタム・アサーションの作成の詳細は、Oracle Web Services Managerの拡張可能アプリケーションの開発のカスタム・アサーションの作成に関する項を参照してください。
52.3 OAuthを使用したRESTエンドポイントによるサービスの保護
Service Bus 12.2.1以降、OAuth OWSMポリシーをアタッチすることにより、RESTエンドポイントでサービスを保護できるようになりました。
このセクションのトピックでは、Service BusでOAuthを使用するために、OAuthサーバーおよびOWSMの構成に必要な、サポートされているユースケースとステップについて説明します。
Service Busの今回のリリースでは、OAuth2のみサポートされています。
52.3.1 サポートされているOAuthユースケース
Service Busでは、2-Legged OAuthユースケースとしてクライアント認証およびクライアント + ユーザー認証がサポートされています。
-
クライアント認証:
-
クライアント資格証明 - 認証HTTPヘッダーのAppIDユーザー名およびパスワード(
federated=false
) (SSL付き/SSLなし) -
クライアント資格証明 - JWT (JSON Webトークン) (
federated=true
) (SSL付き/SSLなし)ノート:
federated=true
の場合、JWTトークンがクライアント資格証明用に作成されます。この値はOWSM OAuthポリシーで変更できます。
-
-
クライアント + ユーザー認証
-
クライアント資格証明 - 認証HTTPヘッダーのAppIDユーザー名とパスワード + ユーザー資格証明(
federated=false
) (SSL付き/SSLなし) -
クライアント・アイデンティティ – JWT + ユーザー・アイデンティティ – JWT (
federated=true
) (SSL付き/SSLなし)
-
2-legged OAuthの詳細は、『Oracle Access Managementの管理』の2-Legged認可の理解に関する項を参照してください。
52.3.2 Service BusでOAuthを使用するためのOracle Access Managementの構成
Service BusでOAuthポリシーを使用してRESTエンドポイントを保護するには、OWSMおよびOAuthサーバーを構成する必要があります。
ノート:
この項では、サンプルのOAuthサーバーの構成に必要なステップについて説明します。これらのタスクで説明する構成は、すべてのデプロイメント・シナリオに適用されるわけではありません。OAuthサーバーの構成の詳細は、『Oracle Access Managementの管理』の12cでのOAuthサービスの構成に関する項を参照してください。
52.3.2.1 OAuthサーバーの構成
OAuthサーバーを構成するには、次のタスクを完了する必要があります。
トピック
ノート:
このセクションでは、サンプルOAuthサーバーの構成に必要なステップを記載しています。これらのタスクに示す構成は、すべてのデプロイメント・シナリオに適用されるわけではありません。
52.3.2.1.1 Oracle Access ManagementでのOAuthの有効化
OAuthサーバーを構成するには、OAuthをOracle Access Managementに対して有効にしておく必要があります。これはOracle Access ManagementコンソールでAccess ManagerサービスおよびMobile and Socialサービスを有効にして実行します。
52.3.2.1.2 IDMコンソールを使用した認可RESTコールバック・プラグイン・プロファイルの作成
52.3.2.1.3 IDM OAuthコンソールを使用したリソース・サーバー・プロファイルの作成
52.3.2.1.4 OAuth OWSMクライアント・プロファイルの作成
52.3.2.1.5 OAuthサーバー・プロファイル構成の更新
- 「サービス・プロファイル構成」ページで、「属性」表に次のプロパティを構成します。
jwt.issuer
プロパティを更新します。jwt.issuer=www.example.comjwt.CryptoScheme
プロパティを更新します。jwt.CryptoScheme=RS256- 新規のプロパティを追加します。jwt.trusted.issuer.size=1
- 新規のプロパティを追加します。jwt.trusted.issue.1=http://www.example.com
- 変更を保存します。
52.3.2.1.6 証明書のインポートとエクスポート
- OAuthサーバーから、次のWSLTコマンドを実行して、OAuthキーストアのパスワードを取得します。
listCred(map="oracle.wsm.security",key="keystore-csf-key")
- OAuth構成の場所から、次のコマンドを実行してOAuth証明書をエクスポートします。
keytool -exportcert -keystore default-keystore.jks -alias orakey -file oauth-key.pem -rfc
- OWSM構成の場所から、次のコマンドを実行して、別名を
orakey
からowsmkey<unique-ending>
に変更します。keytool -changealias -alias orakey -destalias owsmkey
<unique-ending>
-keystore default-keystore.jks
- OWSM構成の場所から、次のコマンドを実行してOWSM証明書をエクスポートします。
keytool -exportcert -keystore default-keystore.jks -alias owsmkey<unique-ending> -file owsmkey<unique-ending>.cer
- OAuth構成の場所から、次のコマンドを実行してOWSM証明書をOAuthキーストアにインポートします。
keytool -importcert -file owsmkey<unique-ending>.cer -keystore default-keystore.jks -alias owsmkey<unique-ending>
- OWSM構成の場所から、次のコマンドを実行してOAuth証明書をOWSMキーストアにインポートします。
keytool -importcert -file oauth-key.pem -keystore default-keystore.jks -alias orakey
52.3.3 Service BusサービスへのOAuth OWSMポリシーのアタッチ
OAuth OWSMポリシーは、任意のOWSMポリシーをService Busサービスにアタッチしたときと同じ方法でビジネス・サービスおよびプロキシ・サービスにアタッチします。
JDeveloperおよびService Busコンソールを使用したポリシーのサービスへのアタッチについては、「ビジネス・サービスとプロキシ・サービスの保護」を参照してください。
oracle/http_jwt_token_service_policy
またはoracle/http_jwt_token_over_ssl_service_policy
ポリシーは、プロキシ・サービスにアタッチでき、oracle/oauth2_config_client_policy
(OAuthトークンの取得元となるRESTエンドポイントを指定)およびoracle/http_oauth2_token_client_policy
またはoracle/http_oauth2_token_over_ssl_client_policy
ポリシーは、ビジネス・サービスにアタッチできます。