Oracle Service BusとOracle Web Services Managerを併用することで、既存のセキュリティ・プロバイダを活用しながら、WS-SecurityポリシーによってSOA環境を保護するにあたって、スケーラビリティの高い標準ベースの、集中的に管理されたアプローチを実現します。
Oracle Web Services Managerは、セキュリティ・ポリシーの作成や管理、制御のための実行時のフレームワークです。ポリシーを作成して、Oracle Service Bus内のサービスに付加し、Oracle Web Service Managerエージェントを使用してこれらをメッセージングのライフ・サイクルの様々なポイントで施行します。
注意: Oracle Service Busの将来のリリースでは、Oracle Web Services ManagerポリシーがWLS 9.2のセキュリティ・ポリシーを強化して、これに置き換わります。このバージョンのOracle Service Busでは引き続きWLS 9.2ポリシーはサポートされますが、新しいサービスの作成にはOracle Web Services Managerポリシーを使用して、将来的なWLS 9.2ポリシーのサポート廃止に備えることを考慮してください。 |
この項の内容は次のとおりです。
50.2項「Oracle Web Services ManagerとOracle Service Busの設定および使用」
50.3項「使用例: Oracle Service BusおよびWLS 9.2ポリシーとOracle Web Services Manager
Oracle Web Services Managerの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』を参照してください。
Oracle Web Services Managerは、Oracle Enterprise Manager Fusion Middleware Controlのコンポーネントで、Oracle SOA Suite環境とアプリケーションの集中管理と制御を提供するランタイムのフレームワークです。Oracle Web Services Managerポリシーは、Oracle Enterprise Managerで作成および構成します。これらのポリシーはポリシー・ストア(データベースを推奨)で永続します。Oracle Web Services Managerを使用すると、LDAPディレクトリに対してポリシーを定義し、標準のセキュリティ・トークン(SAMLトークンなど)を生成して、単一のトランザクションで使用される複数のWebサービスにIDを伝播することができます。
Oracle Service Busでは、セキュリティ・ポリシーを付加することのできるビジネス・サービスやプロキシ・サービスを定義する際に、使用可能な「OWSM」ポリシーを付加できます。
Oracle Web Services Managerはランタイムのコンポーネントであるため、Oracle Service Busサービスへのポリシーの付加には、Oracle Web Services Managerが有効になっているOracle Service Busドメインへの接続が必要です。たとえば、EclipseでOracle Web Services Managerポリシーを使用するサービスを作成、管理する際は、ポリシーを付加するために、Oracle Web Services Managerが有効になっているドメインにOracle Service Busの構成をデプロイする必要があります。開発環境からWeb Services Managerへのランタイム接続がなければ、以前にサービスに付加されたポリシーの表示や削除しかできません。
Oracle Service BusにおけるOracle Web Services Managerのサポートは、自動的には利用できません。Oracle Web Services ManagerのサポートをOracle Service Busで有効にするには、Oracle Service Busドメインを作成または拡張する際に、「Oracle Service Bus OWSM拡張」テンプレートを選択します。Oracle Service BusドメインでOracle Web Services Managerのサポートが有効になると、無効化することはできません。50.2.1項「Oracle Service BusドメインへのOracle Web Services ManagerおよびOracle Enterprise Managerの追加」を参照してください。
ここでは、Oracle Service BusとOracle Web Services Managerが認証および承認で使用するセキュリティ・サービスについて説明します。
Oracle Web Service ManagerはJava Platform Security (JPS)を使用するため、Oracle Service BusはOracle Web Services ManagerポリシーのJPSプロバイダを使用します。また、Oracle Service Busはメッセージ・セキュリティの他の面でOracle Common Security Services (CSS)を利用します。
以下は、様々なセキュリティ分野でOracle Service BusとOracle Web Services Managerがどのセキュリティ・プロバイダを使用するかを示します。
Oracle Web Services Managerポリシーを使用する場合
Oracle Web Services Managerポリシーは、Oracle WebLogic Serverではなく、JPSのSAMLプロバイダを使用します。Oracle Web Services ManagerポリシーのSAMLの構成については、50.2.3項「SAMLの構成」を参照してください。
認証の場合、Oracle Web Services ManagerはJPSログイン・モジュールを使用します。このモジュールが、Oracle WebLogic Server上で構成された認証プロバイダを呼び出します。
Oracle Web Services Managerポリシーの場合、Oracle WebLogic ServerとJPSキーストア・ファイルの両方が同じJKSファイルを参照するようにJPS上でキーストアを構成するのが最適です。たとえば、WLS 9.2ポリシーを持つプロキシ・サービスが、Oracle Web Services Managerポリシーを持つビジネス・サービスにルーティングされる場合、同じキーストア・ファイルが参照される必要があります。詳細については、50.2.1項「Oracle Service BusドメインへのOracle Web Services ManagerおよびOracle Enterprise Managerの追加」を参照してください。
JPSキーストアは、Oracle Web Services Managerポリシーのキーストア兼トラストストアとして機能します。
Oracle Service Busは以下の方法でCSSプロバイダを使用します。
WLS 9.2ポリシーの施行
トランスポート・セキュリティの施行
認証ポリシーのOracle WebLogic Server認証プロバイダ
カスタムのOracle WebLogic Server認証プロバイダおよびカスタムの認証ポリシー用IDアサーション・プロバイダ
Oracle WebLogic Serverの資格証明プロバイダおよびマッパー
WLS 9.2ポリシーのOracle WebLogic Serverキーストアおよびトラストストア
Oracle Web Services Managerエージェントによる認証およびIDアサーション
この項の内容は次のとおりです。
50.2.1項「Oracle Service BusドメインへのOracle Web Services ManagerおよびOracle Enterprise Managerの追加」
50.2.2項「Oracle Service BusサービスへのOracle Web Services Managerポリシーの付加」
Oracle Web Services ManagerポリシーをOracle Service Busで使用するには、Oracle Web Services Managerポリシー・ストア用に適切なデータベース・スキーマを作成して、Oracle Web Services Managerを含むようにOracle Service Busドメインを拡張する必要があります。
注意: Oracle Web Services ManagerをOracle Service Busドメインに追加した後は、ドメインでOracle Web Services Managerを無効化することはできません。 |
サポート対象のデータベースでOracle Web Services Managerデータベース・スキーマを作成するには、Oracle Repository Creation Utility (RCU)を使用します。作成する以下のスキーマを選択してください。
SOAインフラストラクチャ
メタデータ・サービスとAS Commonスキーマは、SOAインフラストラクチャを選択すると自動的に選択されます。
注意: SOAインフラストラクチャを選択した後は、レポートを有効にしない場合、オプションでビジネス・アクティビティ・モニターとユーザー・メッセージング・サービスを選択解除できます。 |
RCUの実行の詳細は、『Oracle Fusion Middleware Repository Creation Utilityユーザーズ・ガイド』を参照してください。
Oracle Web Services ManagerとOracle Enterprise Managerを使用して、Oracle Service Busドメインを拡張します。Oracle Fusion Middleware構成ウィザードを実行する際に、以下のドメイン・テンプレートを選択してください。
Oracle Service Bus OWSM拡張
Oracle WSM Policy Manager(OWSM拡張を選択すると自動的に選択されます)
Oracle Enterprise Manager(オプション。Oracle Web Services Managerポリシーの作成と管理に必要)
ドメイン拡張の一環として、Oracle構成ウィザードはJDBC構成ウィンドウでOWSM MDSスキーマを作成します。このスキーマを選択し、前述の手順でOracle Web Services Managerスキーマの作成に使用したRCU設定に基づいてデータベース情報を設定してください。
詳細は、『Oracle Fusion Middleware Oracle SOA Suiteエンタープライズ・デプロイメント・ガイド』の「ドメインの作成」を参照してください。
ベスト・プラクティスとしては、Oracle WebLogic ServerとJPSキーストア・ファイルの両方が同じJKSファイルを参照するようにOracle Web Services ManagerのキーストアをJPS上で構成します。たとえば、WLS 9.2ポリシーを持つプロキシ・サービスが、Oracle Web Services Managerポリシーを持つビジネス・サービスにルーティングされる場合、同じキーストア・ファイルを参照する必要があります。
キーストアの作成の詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「メッセージの保護のためのキーストアの設定」を参照してください。
Oracle Web Services Manager用のドメインの拡張およびキーストア作成が問題なく完了したら、Oracle Enterprise Manager Fusion Middleware Controlを使用してOracle Web Services Managerポリシーを作成し、ポリシーをOracle Service Bus内のサービスに付加できます。Oracle Web Services Managerによって、一般的に使用されるポリシーが自動的に提供されます。
ドメインの実行中に、以下のURLでOracle Enterprise Managerにアクセスできます。
http://host:port/em
Oracle Web Services Managerポリシーの管理の詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の「Webサービス・ポリシーの管理」を参照してください。
Oracle Web Services Managerを含むようにOracle Service Busドメインを拡張し、Oracle Enterprise Managerを使用してポリシーを作成し終わったら、「ポリシー」ページでOracle Service Bus内の以下のタイプのプロキシ・サービスとビジネス・サービスに、このポリシーを付加できます。
WSDL
任意のSOAP
Oracle Web Services Managerポリシーは、サービス・レベルでのみ付加することができ、サービスWSDLに埋め込むことはできません。任意のサービスに対して、Oracle Web Services ManagerポリシーかWLS 9.2ポリシーのどちらかを使用しなければなりませんが、両方は使用できません。ただし、プロキシ・サービスであるタイプのポリシーを使用して、対応するビジネス・サービスに別のタイプを使用できます。
Eclipseでは、Oracle Web Services Managerポリシーをサービスに追加する際に、Oracle Web Services Managerが有効化された実行中のドメインに接続している必要があります。開発環境で実行中のサーバーに接続していない場合、以前に追加されたOracle Web Services Managerポリシーしか表示および削除することができず、Oracle Web Services Managerポリシーがパブリッシュ時にのみ検証されるという警告がOracle Service Busで表示されます。
注意: Eclipseで複数のサーバーを操作するとき、EclipseはOracle Web Services Managerポリシーを取得するために、サーバー・リストの最初の有効なOracle Service Busサーバーを選択します。 |
開発環境でポリシーを付加する際は、開発環境のサービスがOracle Service Busコンソール内のサービスと同期化されていない可能性があることを念頭に置いて、Eclipseからコンソールにサービスを更新するときに注意してください。
サービスをコピーして同じタイプのサービスを作成する場合(たとえば、ビジネス・サービスをコピーして新しいビジネス・サービスを作成する場合)、新しいサービスのOracle Web Services Managerポリシーを確認し、必要な調整を行ってください。
Oracle Web Services Managerポリシーをサービスに追加した後、「「セキュリティ」ページでポリシーのオーバーライドを実行できます。
使用されたポリシーについては、オーバーライド・キー(プロパティ)とそのデフォルト値がユーザー・インタフェースに表示されます。キー名はポリシーのバインディングから取得されます。可能な場合には、キーのデフォルト値の横にテキスト・ボックスが表示され、そこでオーバーライド値を入力できます。
Oracle Service Busでは、署名キー別名やCSFキーのようなよく知られているオーバーライド用のキーが提供されません。これは、CSFストア内のユーザー資格証明を参照します(Oracle Service Busでは、サービス・アカウントでユーザー資格証明が提供されます)。
入力するオーバーライド・キーは、呼出しのときにOracle Web Service Managerエージェントに引き渡されます。
SAMLの構成は、WLS 9.2ポリシーとOracle Web Services Managerポリシーの場合で異なります。Oracle Web Services Managerを使用したSAMLの構成の詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』の「SAMLの構成」を参照してください。
Oracle Web Services Managerポリシーの参照を持ったサービスを含むOracle Service Busの構成をエクスポートする際は、参照が維持されます。参照されているポリシーが、対象の環境にも存在することを確認する必要があります。対象の環境がIDEの場合、ポリシーがパブリッシュ時に検証されるという警告が表示されます。
Oracle Enterprise Managerのポリシー・イベントを監査するには、監査データのリポジトリおよびイベント・コレクションを設定する必要があります。詳細については、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の以下のトピックを参照してください。
「監査データ・コレクションおよびストレージ」
「監査レポートの表示」 – Oracle Business Intelligence Publisher内の事前定義されたOracle Web Services Managerの監査レポートには、Oracle Service Busの統計が含まれます。
以下のポリシー・レベルのイベントを監査できます。
ポリシーの作成、削除、変更
アサーション・テンプレートの作成、削除、変更
このリリースでは、Oracle Enterprise Managerポリシーのモニター統計およびOracle Service Busの使用/影響分析は利用できません。このため、付加先のサービスに対するポリシー変更の影響を確認することはできません。ただし、Oracle Service Busは、WLS 9.2ポリシーの場合と同様に、Oracle Web Services Managerポリシーの施行エラーについてWS-Securityエラーの統計を収集します。この統計は、Oracle Service Busサービスのモニターのダッシュボードで利用できます。
表50-1と表50-2は、Oracle Service BusでサポートされないOracle Web Services Mangerのアサーションおよびシード・ポリシーを示します。ユーザー定義のアサーションも含めて、表に記載されていないアサーションやシード・ポリシーはすべて自動的にサポートされます。アサーションやポリシーの有効化/無効化オプションは、Oracle Service Busでアサーションやポリシーがサポートされるかどうかに関係ありません。
表50-1 サポートされないOracle Web Services Managerのアサーション
アサーション | アサーション・タイプ |
---|---|
ExactlyOnce |
N/A |
binding-authorization |
認可 |
binding-permission-authorization |
認可 |
http-security |
N/A |
OptimizedMimeSerialization |
MTOM |
RMAssertion |
信頼性のあるメッセージング |
sca-component-authorization |
認可 |
sca-component-permission-authorization |
認可 |
UsingAddressing |
N/A |
wss-saml-token-bearer-over-ssl |
認証 |
wss-saml-token-over-ssl |
認証 |
wss-usernametoken-over-ssl |
認証 |
表50-2 サポートされないOracle Web Services Managerのシード・ポリシー
ポリシー | ポリシー・タイプ |
---|---|
component_authorization_denyall_policy |
セキュリティ/認可 |
component_authorization_permitall_policy |
セキュリティ/認証 |
component_permission_authorization_policy |
セキュリティ/認証 |
wsaddr_policy |
アドレス指定 |
wsmtom_policy |
MTOM |
wsrm10_policy |
信頼性のあるメッセージング |
wsrm11_policy |
信頼性のあるメッセージング |
Wss_oam_token_client_policy |
セキュリティ/認証 |
Wss_oam_token_service_policy |
セキュリティ/認証 |
注意: 開発環境で、サポートされていないシード・ポリシー以外のポリシーを使用する場合
|
ここでは、サービス・パイプライン全体のセキュリティを確保する場合の使用例を挙げ、WLS 9.2ポリシーを使用したOracle Service BusサービスとOracle Web Services Manager機能の間の対話に重点を置いて説明します。
Oracle Service BusサービスでWLS 9.2ポリシーを持つOracle Web Services Managerを使用する場合、構成は必要なく、Oracle Web Services ManagerでOracle Service Busドメインを拡張する必要もありません。希望するクライアントおよびサービスの場所でOracle Web Services Managerの機能を実装すれば、自動的に対話と施行が行われます。
注意: Oracle Service Busの将来のリリースでは、Oracle Web Services ManagerポリシーがWLS 9.2のセキュリティ・ポリシーを強化して、これに置き換わります。このバージョンのOracle Service Busでは引き続きWLS 9.2ポリシーはサポートされますが、新しいサービスの作成にはOracle Web Services Managerポリシーを使用して、将来的なWLS 9.2ポリシーのサポート廃止に備えることを考慮してください。 |
Oracle Web Services Managerの詳細は、以下を参照してください。
『Oracle Fusion Middleware Security and Administrator's Guide for Web Services』
Oracle Web Services Manager 10.1.3のドキュメント(http://download.oracle.com/docs/cd/E10291_01/index.htm
)
『Oracle Fusion Middleware Oracle Web Services Manager相互運用ガイド』の「Oracle Service Bus 10gセキュリティ環境との相互運用性」
このドキュメントでは、Oracle Web Services Managerで使用する以下のセキュリティの使用例について説明します。
注意: Oracle Web Services Manager 11.1.1にはGatewayに相当するものがありません。 |
この説では、次の使用例について説明します。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
11.1.1.x
10.1.3.x
図50-1は、メッセージの保護のためにOracle Web Services Managerクライアント・エージェントを使用する方法について説明します。
図50-1 Oracle Web Services Managerクライアント・エージェントを使用したメッセージの保護
プロキシ・サービスに、インバウンド・メッセージ保護ポリシーがあります。Oracle Web Services Managerクライアント・エージェントが、署名され、暗号化されたリクエストをプロキシ・サービスに送信します。プロキシ・サービスは、セキュリティで保護されたリクエストを受け取り、能動的仲介者として復号化および署名の検証を行い、リクエストをビジネス・サービスにルーティングします。ビジネス・サービスは、Webサービスを呼び出し、レスポンスを受け取り、そのレスポンスをプロキシ・サービスに送信します。プロキシ・サービスは、レスポンスに署名し、レスポンスを暗号化して、Oracle Web Services Managerクライアント・エージェントに送信します。クライアント・エージェントはセキュリティで保護されたレスポンスを受け取り、復号化および署名の検証を行い、そのレスポンスをクライアントに渡します。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
11.1.1.x
10.1.3.x
図50-2は、メッセージの保護のためにOracle Web Services Managerサーバー・エージェントを使用する方法について説明します。
図50-2 Oracle Web Services Managerサーバー・エージェントを使用したメッセージの保護
クライアントはOracle Service Busにあるプロキシおよびビジネス・サービスを介して通常のリクエストを送信します。ビジネス・サービスは、リクエストに署名し、リクエストを暗号化して、Oracle Web Services Managerサーバー・エージェントにメッセージを送信します。サーバー・エージェントはリクエストを復号化して、検証を行います。クライアントに通常のメッセージ・レスポンスを返します。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
11.1.1.x
10.1.3.x
図50-3では、メッセージの保護のためにOracle Web Services Managerクライアントおよびサーバー・エージェントを使用する方法について説明します。
図50-3 Oracle Web Services Managerクライアントおよびサーバー・エージェントを使用したメッセージの保護
Oracle Web Services Managerクライアント・エージェントは、クライアント・リクエストに署名し、クライアント・リクエストを暗号化して、プロキシ・サービスに送信します。プロキシ・サービスは、署名を復号化し、署名の検証を行って、ビジネス・サービスに送信します。ビジネス・サービスは、リクエストに署名し、リクエストを暗号化します。Webサービスには、サーバー・エージェントが挿入されています。サーバー・エージェントは、インバウンド・メッセージの保護ポリシーがあります。インバウンド・メッセージの保護ポリシーは署名を復号化し署名の検証を行って、レスポンスを暗号化します。ビジネス・サービスにレスポンスを送信します。ビジネス・サービスはメッセージを検証して、レスポンスをプロキシ・サービスに送信します。プロキシ・サービスは、署名や暗号化されたレスポンスを生成して、クライアント・エージェントに送信します。クライアント・エージェントはレスポンスを復号化しレスポンスを検証して、クライアントに通常のレスポンスを返します。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
10.1.3.x
図50-4では、メッセージの保護のためにOracle Web Services Managerゲートウェイを使用する方法について説明します。
図50-4 Oracle Web Services Managerゲートウェイを使用したメッセージの保護
クライアントはOracle Service Busにあるプロキシおよびビジネス・サービスを介して通常のリクエストを送信します。ビジネス・サービスは、リクエストに署名し、リクエストを暗号化して、Oracle Web Services Managerゲートウェイに送信します。ゲートウェイはリクエストを復号化して、検証を行います。クライアントに通常のメッセージ・レスポンスを返します。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
11.1.1.x
10.1.3.x
図50-5では、認証のためにOracle Web Services Managerクライアント・エージェントを使用する方法について説明します。
図50-5 Oracle Web Services Managerクライアント・エージェントを使用した認証
プロキシ・サービスに、ユーザー名トークン・ポリシーがあります。クライアントが、Oracle Web Services Managerクライアント・エージェントを介して、ユーザー名トークンに含めたメッセージ・レベルのユーザー資格証明と共にリクエストをプロキシ・サービスに送信します。プロキシ・サービスは、資格証明マッピングを使用してユーザー名トークンのユーザー資格証明をマップし、認証のためにビジネス・サービスを介してWebサービスに送信します。Webサービスは、Oracle Web Services Managerサービス・エージェントによりインバウンド・ユーザー名トークン・ポリシーを使用して保護されています。Oracle Web Services Managerサービス・クライアント・エージェントが、ユーザー資格証明を抽出して認証します。その後、レスポンスがビジネス・サービスとプロキシ・サービスを介してクライアントに送り返されます。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
10.1.3.x
図50-6では、Oracle Web Services Managerゲートウェイを使用して境界セキュリティを適用する方法について説明します。
図50-6 Oracle Web Services Managerゲートウェイを使用した境界セキュリティ
Oracle Web Services Managerゲートウェイが、Oracle Service Busプロキシ・サービスによって公開されるサービスを仮想化します。Oracle Web Services Managerゲートウェイへのインバウンド・リクエストに、メッセージ保護ポリシーが含まれています。クライアントが、セキュリティで保護されたリクエストをOracle Web Services Managerゲートウェイで仮想化されたサービスに送信します。リクエストは署名され、暗号化されています。
Oracle Web Services Managerゲートウェイは、セキュリティを確立するポイントとして機能し、復号化と署名の検証を行います。その後、Oracle Web Services ManagerゲートウェイはSSLを介して通常のリクエストをプロキシ・サービスにルーティングします。プロキシ・サービスはリクエストをビジネス・サービスに転送し、ビジネス・サービスはWebサービスを呼び出して通常のレスポンスを受け取ります。レスポンスはプロキシ・サービスとOracle Web Services Managerゲートウェイを介してクライアントに戻ってきます。
この使用例を次のOracle Web Services Managerのバージョンに実装することができます。
10.1.3.x
図50-7では、SAML (Security Assertion Markup Language)トークン・バージョン1.1によるID伝播のためにOracle Web Services Managerゲートウェイを使用する方法について説明します。
図50-7 Oracle Web Services Managerゲートウェイを使用したID伝播
クライアントが、基本的なHTTP認証リクエストをOracle Web Services Managerゲートウェイに送信します。Oracle Web Services ManagerゲートウェイはHTTPヘッダーにあるユーザー名とパスワードを使用してユーザーを認証します。Oracle Web Services Managerゲートウェイは、認証されたユーザーIDを使用してSAML送信者保証アサーションを生成し(トークン仲介)、アサーションにSAMLトークンを挿入して、アサーションをプロキシ・サービスに送信します。プロキシ・サービスは、ユーザーIDを含むSAMLアサーションを受け取り、能動的仲介者としてユーザーIDを検証します。次に、プロキシ・サービスはリクエストをビジネス・サービスに渡します。レスポンスがビジネス・サービス、プロキシ・サービス、およびOracle Web Services Managerゲートウェイを介してクライアントに戻ってきます。