ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.2.1)
E69914-01
  目次へ移動
目次

前
次
 

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ポリシーに置き換えることができます。

この章の内容は次のとおりです。

Oracle Web Services Managerの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理を参照してください。

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キーストア(Java Keystore: JKS)とキーストア・サービス(Keystore Service: 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の使用

この項の内容は次のとおりです。

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.2

    myProxyの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認証ポリシーのガイドライン」を参照してください。

認可専用

N/A

oracle/whitelist_authorization_policy

認可専用

N/A

oracle/binding_authorization_denyall_policy

認可専用

N/A

oracle/binding_authorization_permitall_policy

信頼できるメッセージング

N/A

oracle/reliable_messaging_policy

注意: このポリシーはWSDLサービス・タイプのHTTPトランスポート・サービスでのみサポートされています。このポリシーをアタッチするときには、oracle/reliable_messaging_internal_api_policyもアタッチする必要があります。

信頼できるメッセージング

N/A

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のサポート

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対応プロキシ・サービスによってターゲットに設定されているパイプラインのルート・ノードである場合

    • ビジネス・サービスがプロキシ・サービスのターゲット・サービスである場合

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 Web Services ManagerによるWebサービスの保護とポリシーの管理の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プロパティ

名前 説明 デフォルト 必須かどうか

sequence.manager.maintenance.period

シーケンス・マネージャ・メンテナンス・タスクの実行期間(ミリ秒)を指定します。

60000

オプション

max.concurrent.session

WSエンドポイント専用のシーケンス・マネージャが、シーケンス作成の新規リクエスト拒否を開始するまでに、同時にアクティブなRMセッション(インバウンドRMシーケンスに基づいて測定)をいくつ受け入れるかを指定します。

100

オプション

user.transaction.timeout

プロキシ・サービスによって開始したXAトランザクションのトランザクション・タイムアウト。

デフォルト値0では、システム・デフォルトを使用します。

0

オプション

reference.priority

詳細は、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ユースケースをサポートしています。次の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 Fusion Middleware Oracle Access Management管理者ガイド』の2-legged OAuthの理解に関する項を参照してください。

52.3.2 Service BusでOAuthを使用するためのOracle Access Managementの構成

Service BusでOAuthポリシーを使用してRESTエンドポイントを保護するには、OWSMおよびOAuthサーバーを構成する必要があります。

トピック

注意:

このセクションでは、サンプルOAuthサーバーの構成に必要な手順を記載しています。これらのタスクに示す構成は、すべてのデプロイメント・シナリオに適用されるわけではありません。OAuthサーバーの構成の詳細は、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のOAuthサービスの構成に関する項を参照してください

52.3.2.1 OAuthサーバーの構成

OAuthサーバーを構成するには、次のタスクを完了する必要があります。

トピック

注意:

このセクションでは、サンプルOAuthサーバーの構成に必要な手順を記載しています。これらのタスクに示す構成は、すべてのデプロイメント・シナリオに適用されるわけではありません。OAuthサーバーの構成の詳細は、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のOAuthサービスの構成に関する項を参照してください。

52.3.2.1.1 Oracle Access ManagementでのOAuthの有効化

OAuthサーバーを構成するには、OAuthをOracle Access Managementに対して有効にしておく必要があります。これはOracle Access ManagementコンソールでAccess ManagerサービスおよびMobile and Socialサービスを有効にして実行します。

OAuthを有効にするには、『Oracle Fusion Middleware Oracle Access Management管理者ガイド』使用可能なサービスの有効化または無効化に関する項に示すとおり、Access ManagerおよびMobile and Socialサービスが有効化されていることを確認します。
このタスクを完了した後は、「IDMコンソールを使用した認可RESTコールバック・プラグイン・プロファイルの作成」に示すタスクを実行します。
52.3.2.1.2 IDMコンソールを使用した認可RESTコールバック・プラグイン・プロファイルの作成
このタスクを実行する前に、「IDMでのOAuthの有効化」に示すタスクを完了しておく必要があります。
IDMコンソールを使用して認可RESTコールバック・プラグイン・プロファイルを作成するには:
  1. 『Oracle Fusion Middleware Oracle Access Management管理者ガイド』の新しいプラグインの作成に関する項に示すとおり、プラグインを作成します。
  2. 『Oracle Fusion Middleware Oracle Access Management管理者ガイド』プラグイン構成ページの理解に関する項に示すとおり、次の構成のいずれかに従ってプラグインを構成します。
    オプション 説明

    粗密(推奨)

    次のフィールドを変更します。

    • 名前: PermissionRESTPluginと入力します。

    • 説明: Permission Authorization REST Coherence Pluginまたは別の関連する説明を入力します。

    • 実装クラス: oracle.security.idaas.oauth.consent.impl.CoherenceAuthorizationUserConsentImplを選択します。

    ファイングレイン

    次のフィールドを変更します。

    • 名前: PermissionRESTPluginと入力します。

    • 説明: Permission Authorization REST Coherence Pluginまたは別の関連する説明を入力します。

    • 実装クラス: oracle.security.idaas.oauth.consent.impl.CoherenceAuthorizationUserConsentImplを選択します。

    • 属性rest.permission.service.endpoint=http://example.com:8001/ras/api/public/auth/get_permissiontokenを属性表に追加します。

このタスクを完了した後は、「IDM OAuthコンソールを使用したリソース・サーバー・プロファイルの作成」に示すタスクを実行します。
52.3.2.1.3 IDM OAuthコンソールを使用したリソース・サーバー・プロファイルの作成

このタスクを実行する前に、「IDMコンソールを使用した認可RESTコールバック・プラグイン・プロファイルの作成」に示すタスクを実行しておく必要があります。
IDM OAuthコンソールを使用してリソース・サーバー・プロファイルを作成するには:
  1. 『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のカスタム・リソース・サーバーの作成に関する項に示すタスクを実行し、カスタム・リソース・サーバーを作成します。
    「カスタム・リソース・サーバー構成」ページが開きます。
  2. 「カスタム・リソース・サーバー構成」では、次のプロパティを構成します。

    注意:

    これらの値は、ユーザー環境の構成に応じて異なる場合があります。

    1. 「追加」フィールドに、docServiceInstance1と入力します。
    2. 「認可および承認サービス・プラグイン」メニューから、PermissionRESTPluginを選択します。
    3. 「追加」をクリックして新しいスコープを追加します。
    4. スコープの「名前」に、docServiceInstance1.ALLと入力します。
    5. スコープの「説明」に、Default Scopeと入力します。
    6. 「ユーザー承認が必要」オプションが選択されていないことを確認します。

      このページのオプションの詳細は、「カスタム・リソース・サーバーの構成ページの理解」を参照してください。

  3. 「作成」をクリックします。
このタスクを完了した後は、「OAuth OWSMクライアント・プロファイルの作成」に示すタスクを実行します。
52.3.2.1.4 OAuth OWSMクライアント・プロファイルの作成

このタスクを実行する前に、「IDM OAuthコンソールを使用したリソース・サーバー・プロファイルの作成」に示すタスクを実行しておく必要があります。
OAuth OWSMクライアント・プロファイルを作成するには:
  1. 『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のクライアントの作成に関する項に示すタスクを実行し、OAuthサービスWebクライアントを作成します。

    ヒント:

    「OAuth Webクライアント」見出しで「作成」をクリックします。

  2. Webクライアント構成ページで、次のプロパティを構成します。

    注意:

    これらの値は、ユーザー環境の構成に応じて異なる場合があります。

    1. 「名前」フィールドにOWSM Clientと入力します。
    2. 「クライアントID」フィールドに、OWSMClientIdと入力します。
    3. 値を「クライアント・シークレット」フィールドに入力します。
    4. 「許可されているスコープ」から、「追加」をクリックします。
    5. ドロップダウン・リストから「docServiceInstance1.ALL」を選択します。
    6. 「権限タイプ」から、「クライアント資格証明」「JWTベアラー」「認可コード」(3–legged OAuth用)、および「リフレッシュ・トークン」(3–legged OAuth用)の認可付与タイプが選択されていることを確認します。
      このページのオプションの詳細は、「Webクライアントの構成ページの理解」を参照してください。
  3. 「作成」をクリックします。
このタスクを完了した後は、「OAuthサーバー・プロファイル構成の更新」に示すタスクを実行します。
52.3.2.1.5 OAuthサーバー・プロファイル構成の更新
このタスクを実行する前に、「OAuth OWSMクライアント・プロファイルの作成」に示すタスクを実行しておく必要があります。
OAuthサーバー・プロファイル構成を更新するには:
  1. 『Oracle Fusion Middleware Oracle Access Management管理者ガイド』のサービス・プロファイルの編集または削除に関する項に示すタスクのとおり、OAuthServiceProfileを編集します。
  2. 「サービス・プロファイル構成」ページで、「属性」表に次のプロパティを構成します。
    1. jwt.issuerプロパティを更新します。jwt.issuer=www.example.com
    2. jwt.CryptoSchemeプロパティを更新します。jwt.CryptoScheme=RS256
    3. 新規のプロパティを追加します。jwt.trusted.issuer.size=1
    4. 新規のプロパティを追加します。jwt.trusted.issue.1=http://www.example.com
  3. 変更を保存します。
このタスクを完了した後は、「証明書のインポートとエクスポート」に示すタスクを実行します。
52.3.2.1.6 証明書のインポートとエクスポート

このタスクを実行する前に、「OAuthサーバー・プロファイルの更新」に示すタスクを実行しておく必要があります。
必要な証明書をインポートおよびエクスポートするには:
  1. OAuthサーバーから、次のWSLTコマンドを実行して、OAuthキーストアのパスワードを取得します。listCred(map="oracle.wsm.security",key="keystore-csf-key")
  2. OAuth構成の場所から、次のコマンドを実行してOAuth証明書をエクスポートします。keytool -exportcert -keystore default-keystore.jks -alias orakey -file oauth-key.pem -rfc
  3. OWSM構成の場所から、次のコマンドを実行して、別名をorakeyからowsmkey<unique-ending>に変更します。keytool -changealias -alias orakey -destalias owsmkey<unique-ending> -keystore default-keystore.jks
  4. OWSM構成の場所から、次のコマンドを実行してOWSM証明書をエクスポートします。 keytool -exportcert -keystore default-keystore.jks -alias owsmkey<unique-ending> -file owsmkey<unique-ending>.cer
  5. OAuth構成の場所から、次のコマンドを実行してOWSM証明書をOAuthキーストアにインポートします。keytool -importcert -file owsmkey<unique-ending>.cer -keystore default-keystore.jks -alias owsmkey<unique-ending>
  6. OWSM構成の場所から、次のコマンドを実行してOAuth証明書をOWSMキーストアにインポートします。keytool -importcert -file oauth-key.pem -keystore default-keystore.jks -alias orakey
このタスクを完了した後は、「OWSMの構成」に示すタスクを実行します。

52.3.2.2 OWSMの構成

このタスクを実行する前に、「証明書のインポートとエクスポート」に示すタスクを完了しておく必要があります
OWSMを構成するには:
  1. 「OAuth OWSMクライアント・プロファイルの作成」で構成した「クライアントID」(ユーザー名)および「クライアント・シークレット」(パスワード)と同じユーザー名とパスワードでユーザーを作成します。
  2. OWSMサーバーで次のWLSTコマンドを実行します。
    • deleteCred(map="oracle.wsm.security", key="basic.client.credentials")
    • createCred(map="oracle.wsm.security", key="basic.client.credentials", user="OWSMClientId", password="password")
  3. 「証明書のインポートとエクスポート」の手順2で作成したOAuth証明書をOWSMサーバーにインポートします。
  4. RESTプロキシ・サービスを作成します。
  5. RESTビジネス・サービスを作成します。

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ポリシーは、ビジネス・サービスにアタッチできます。