Oracle® Fusion Middleware Oracle Service Busコンセプトおよびアーキテクチャ 11g リリース1(11.1.1.4.0) B61433-02 |
|
前 |
次 |
この項では、Oracle Service Busのサービス統合と適応的なメッセージングの概念、その高速で信頼できるサービス仲介とプロビジョニング機能について説明します。SOAにおいてサービスの構成を担当するITデプロイメントのスペシャリストを対象としています。この項では、以下のトピックについて説明します。
Oracle Service Busには、アプリケーションをエンタープライズ・クラスのサービス(Webおよびレガシー)に拡張して統合する機能があります。また、インテリジェントなブローカリング機能による再利用のためにサービスの仲介と公開を容易にする機能も備わっています。
Oracle Service Busを使用すると、サービス・プロバイダとクライアントが互いに直接メッセージを交換するかわりにプロキシ・サービスを仲介するようになるので、種類の異なる通信プロトコルやメッセージ・フォーマットにより生じる複雑さをなくすことができます。次のオペレーション機能を利用することで、高速で信頼できるサービスの仲介機能が提供されます。
複数のWebサービス・トランスポート(HTTP/SOAP、WS-I、WS-Security、WS-Policy、WS-Addressing、SOAP v1.2およびv1.1)のサポート
従来のメッセージング・トランスポート(JMS、MQ、EJB/RMI、Tuxedo、FTP、SMTP、ファイル、WebSphere上のEJB/RMI)のサポート
Javaメッセージングのサポート
データベース検索の容易さ
Oracle Data Service Integratorのネイティブ・トランスポートのサポート
Oracle Service BusトランスポートSDKを使用したエンタープライズ固有のカスタム・トランスポート作成のサポート
汎用プロキシ・テンプレートを使用した、任意のSOAPまたはXMLメッセージを受け入れる汎用プロキシ・サービスの作成と構成の支援
Webサービス統合テクノロジ(.NET、Tibco EMS、IBM MQ、IBM WebSphere、Apache Axis、Cyclone B2B Interchange、iWay 5.5アダプタなど)との相互運用性
Oracle Service Busは、Webサービスや従来のメッセージング・プロトコル、レガシーおよび専用の統合テクノロジとの互換性について、業界でも最高水準のサポートを行っており、理想的なサービス統合および適応的なメッセージング・ソリューションです。以下のトピックでは、Oracle Service Busを使用したサービス統合と適応的なメッセージングに関係する概念について説明します。
Oracle Service Busでは、サービス統合の関係は、ポリシーとプロキシ・サービスを構成することにより動的に実装されます。プロキシ・サービスとビジネス・サービスはどちらもプロキシ・サービスによって呼び出され、次の属性を持つサービスとして作成されます。
「ポート」と呼ばれる一連の具象インタフェース(「エンドポイント」とも呼ばれます)。それぞれがトランスポート・アドレスと関連構成を持ちます。 一連のポートは、ビジネス・サービスのロード・バランシングおよびフェイルオーバーの代替機能を果たします。プロキシ・サービスは、単一のポートしか持ちません。
単一の抽象インタフェース(任意指定)。インタフェースのメッセージ部の構造が定義され、必要に応じて、オペレーション別に定義できます。オペレーションは、Javaインタフェースのメソッドと同等です。
具象メッセージへの抽象インタフェースのメッセージ部のパッケージングを定義する単一のバインディング。
Webサービス・セキュリティ(WS-Security)のポリシー。
Oracle Service Busは、従来のWebサービス(WSDLでXMLまたはSOAPバインディングを使用)から非XMLサービスや汎用サービスまで、多くのサービス・タイプに対応しています。サービス・タイプは、ビジネスおよびプロキシ・サービスが作成されるときにサービスの登録を行うことで個別に選択され、サービス・エンドポイントとの通信で使用できるプロトコルが定義されます。Oracle Service Busのサービス・タイプには次のものがあります。
SOAPサービス: SOAPメッセージは、<soap:Envelope>要素内のheader変数およびbody変数のコンテンツをラップすることで作成されます。body変数に参照XMLが格納されている場合、現状のまま送信されます。つまり、参照されているコンテンツはメッセージに追加されません。attachments変数で添付が定義されている場合は、メイン・メッセージと添付データからMIMEパッケージが作成されます。各添付部分のコンテンツの処理方法は、メッセージング・サービスのコンテンツの処理方法に類似しています。
XMLサービス(非SOAP): XMLベースのサービスへのメッセージはXMLですが、プロキシ・サービスの構成で許可された任意の型を使用できます。添付を含むメッセージの場合、そのコンテンツは、プライマリXMLペイロードをその一部として(通常は最初の部分、または最上位のContent-Typeヘッダーで指定される部分)含むMIMEパッケージです。
メッセージング・サービス: メッセージング・サービスは、あるデータ型のメッセージを受信し、レスポンスとして別のデータ型のメッセージを返すことができます。サポートされるデータ型には、XML、メッセージ・フォーマット言語(MFL)、テキスト、型なし、バイナリ、およびインタフェースがWSDLで記述されていない添付などがあります。
Oracle Service Busでは、HTTPとJMSの非同期転送プロトコルの双方向(リクエストとレスポンス)および一方向のパラダイムがサポートされます。基底のトランスポートが順序付きメッセージ配信に対応している場合、Oracle Service Busでも同様の拡張で対応できます。
Oracle Service Busでは、以下のサービス・トランスポートプロトコルがサポートされます。
EJB/RMI
電子メール(POP/SMTP/IMAP)
ファイル
(S)FTP
HTTP(S)
JCA
JEJB
JMS (JMSを使用したMQおよびJMS/XAを含む)
ローカル(ESB間通信用にOracleが独自開発)
MQ (WebSphere MQ)
SB (RMIサポート)
SOA-DIRECT (Oracle SOA Suite)
Tuxedo (Oracle Tuxedo)
WS (WSRM、Web Services Reliable Messaging)
選択したサービス・タイプによってサービス・エンドポイントとの通信で使用されるプロトコルが定義されます。次の表にサービス・タイプとサポートされるトランスポートを示します。
サービス・タイプ | 転送プロトコル |
---|---|
SOAP WSDLまたはXMLnic | HTTP(S)、JCA、JMS、ローカル、SB、SOA-DIRECT、WS
JMSリクエストとJMSレスポンスは、WS-Securityが有効になっているとサポートされません。 |
SOAP (WSDLなし) | HTTP(S)、JMS、ローカル、SB
JMSリクエストとJMSレスポンスは、WS-Securityが有効になっているとサポートされません。 |
トランスポート・タイプ | EJB、Flow (分割結合)、JEJB |
XML (WSDLなし) | 電子メール、ファイル、FTP、HTTP(S)、JMS、ローカル、MQ、SB、SFTP、Tuxedo
HTTP GETは、WSDLがないXMLだけでサポートされます。 |
メッセージ・タイプ(バイナリ、テキスト、MFL、XML) | 電子メール、ファイル、FTP、HTTP(S)、JMS、ローカル、MQ、SFTP、Tuxedo |
Oracle Service Busでは、ネイティブのカスタム接続オプションを追加するために、トランスポートSDKも用意されています。
Oracle Service Busコンソールを使用してプロキシ・サービスのトランスポートを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のプロキシ・サービス: 作成および管理に関する項を参照してください。
Oracle Service Busコンソールを使用してビジネス・サービスのトランスポートを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のビジネス・サービス: 作成および管理に関する項を参照してください。
Oracle Service Busは、Webサービスの正式な記述の部分ではWSDLに依存します。Webサービスの場合、WSDLにはWebサービスのインタフェース、場所、および呼出し方法が記述されます。Oracle Service BusではWSDLに関する以下の2つの性質を考慮して、プロキシ・サービスおよびビジネス・サービスが定義されます。
インタフェース内のオペレーション、およびオペレーションのシグネチャのメッセージ部のタイプを定義する抽象WSDLインタフェース
メッセージ部のメッセージへのバインディング(パッケージング)、およびメッセージのトランスポートへのバインディングを定義するバインディングWSDLインタフェース
WSDLは、Oracle Service Busコンソールを使用してWSDLリポジトリにインポートできます。WSDL内の参照が解決されるようにOracle Service Busコンソールを使用して、すべてのスキーマとWSDLが正しくリンクされていることを確認できます。 WSDLのリポジトリへの格納が終了すると、プロキシ・サービスおよびビジネス・サービスの追加時に使用できるようになります。Oracle Service Busではメッセージング・サービスに対して、独自のインタフェース表現が使用されます。
Oracle Service Busコンソールを使用してWSDLをインポートおよび解決する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のWSDLの追加に関する項を参照してください。
Oracle Service Busには複数のメッセージング・パラダイムが採用されており、次の種類の通信をサポートします。
同期リクエスト/レスポンス
非同期パブリッシュ1対1
非同期パブリッシュ1対多
非同期リクエスト/レスポンス(同期と非同期のブリッジング)
同期と非同期のブリッジングでは、同期クライアントが非同期プロバイダにリクエストを発行します。このパターンの場合、Oracle Service Busにはレスポンスをリスニングするときのタイムアウト値を使用して1つ目のJMSでメッセージをパブリッシュし、2つ目のJMSのレスポンス・キューを構成する機能があります。このタイプのサービスは、サービス・コンシューマからは同期サービスに見えます。非同期リクエスト/レスポンス・メッセージを使用すると、次のような利点があります。
多数のブロックされているリクエスト/レスポンスの呼出しによって発生する可能性のあるスレッド管理の問題が解消され、リクエスト・スレッドによるブロッキングがなくなります。
メッセージングの信頼性が向上します。
Oracle Service Busでは、次のメッセージ・フォーマットがサポートされます。
電子メール(添付ファイルなしまたは添付ファイル付き)
ヘッダー付きJMS
MFL (メッセージ・フォーマット言語)
生データ(既知のスキーマを持たない不明確な非XMLデータ(MFLファイルなし))
テキスト
SOAPおよび添付ファイル付きSOAP (WSDLで記述されたSOAPまたは記述されないSOAP)
XMLおよび添付ファイル付きXML (WSDLまたはスキーマで記述されたXMLまたは記述されないXML)
プロキシ・サービスによって送受信されるすべてのメッセージは、プロキシ・サービスの内部で一連のプロパティによって定義されます。これらのプロパティは、メッセージ・データや、そのメッセージに関連するメタデータを保持しています。この一連のプロパティは、メッセージ・コンテキスト(コンテキスト)と呼ばれ、コンテキスト変数を使用して実装されます。メッセージ・コンテキストはXMLスキーマによって定義されます。各コンテキスト変数は異なるプロパティに関連します。コンテキスト変数には、事前定義された変数とユーザー定義の変数があります。プロキシ・サービスの中核となるのが「コンテキスト」です。メッセージ・フローで使用されるメッセージ・コンテキストおよびコンテキスト変数の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のメッセージ・コンテキストに関する項を参照してください。
あらかじめ定義されたコンテキスト変数には、メッセージに関する情報、トランスポート・ヘッダー、セキュリティ・プリンシパル、現在のプロキシ・サービスのメタデータ、およびプロキシ・サービスから呼び出されるプライマリ・ルーティング・サービスとパブリッシュ・サービスのメタデータが含まれます。通常は、XQuery式を使用して、メッセージ・フローのコンテキスト変数を操作します。変換およびインプレース更新アクションを使用してコンテキスト変数を変更することもできます。
メッセージ関連のコンテキスト変数である$header
、$body
および$attachments
は、メッセージ・フロー内のメッセージの標準書式を表します。これらはSOAPヘッダー要素、SOAP本体要素、およびMIME添付を含むラッパー変数です。コンテキストによって、すべてのメッセージがSOAPメッセージであり、非SOAPメッセージがこのパラダイムにマップされるように見えます。次の表に、メッセージ・タイプごとのマッピングを示します。
表3-1 メッセージのマッピング
メッセージ・タイプ | 説明 |
---|---|
XML |
|
バイナリ |
添付は |
MFL |
MFLドキュメントとXMLの相互変換が透過的に行われ、 添付は |
テキスト |
添付は |
ファイル、FTP、および電子メール |
参照渡しドキュメントの場合、 添付は |
SOAP |
添付は |
各添付の$attachments
には、次のものが含まれます。
添付ファイル:添付ファイルがXMLの場合
参照XML :添付ファイルがバイナリの場合
テキスト:添付ファイルがテキストの場合
Oracle Service Busでは、種類の異なるエンドポイントとの相互運用性をサポートするために、サービスの構成で、使用するコンテンツ・タイプ、JMSタイプ、およびエンコーディングを制御できます。外部クライアントやサービスで必要になるものについては仮定を行わず、かわりにこの目的のために構成されているサービス定義の情報を使用します。Oracle Service Busのアウトバウンド・メッセージのコンテンツ・タイプは、サービス・タイプとインタフェースから派生し、次の仕様を使用します。
XMLまたはSOAPの場合(WSDLの有無を問わない)、コンテンツ・タイプはtext/XML
インタフェースがMFLまたはバイナリのメッセージングの場合、コンテンツ・タイプはbinary/octet-stream
インタフェースがテキストのメッセージングの場合、コンテンツ・タイプはtext/plain
インタフェースがXMLのメッセージングの場合、コンテンツ・タイプはtext/XML
サービスを呼び出すプロキシ・サービスのアウトバウンド・コンテキスト変数($outbound)のコンテンツ・タイプ、およびプロキシ・サービス・リクエストのインバウンド・コンテキスト変数($inbound)のコンテンツ・タイプはオーバーライドできます。さらに、サービスが管理コンソールで定義される場合に構成できるJMSタイプ(バイトまたはテキスト)があります。すべてのアウトバウンド・メッセージのエンコーディングも、サービス定義で明示的に構成します。
Oracle Service Busのリソースとは、再利用可能なエンティティ定義またはエンティティ記述であり、通常はそれらのエンティティのメタデータが含まれています。リソースは複数のサービスで使用可能で、企業や部署全体で使用できるように標準化された定義または記述を持ちます。
Oracle Service Busのリソースおよびサービスは一連のプロジェクトとしてグループ化され、各プロジェクトはフォルダ構造を持ちます。 リソースおよびサービスをプロジェクトにまとめることで、名前の競合を回避でき、ビジネス・カテゴリごとにリソースおよびサービスをまとめたり検索したりするのに便利です。
この項では、次のOracle Service Busのリソースについて説明します。
スキーマとは、基本データや構造化データのタイプを表すものです。XMLスキーマは、XMLビジネス・データが従う必要のあるルールを表すXML用語集です。XMLスキーマは、ドキュメントの構造、およびドキュメントに含まれる各要素と属性のデータ型を指定します。XMLスキーマには、他のXMLスキーマをインポートまたは含めることができます。Oracle Service Busコンソールを使用してスキーマを作成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のXMLスキーマの追加に関する項を参照してください。
Oracle Service Busでは、メッセージ・フォーマット言語(MFL)というメタデータ言語を使用して、型付きの非XMLデータの構造を記述します。Oracle Format Builderツールを使用すると、MFLドキュメントと呼ばれるデータ・ファイルとしてメタデータを作成および管理できます。MFLドキュメントの作成方法については、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
変換マップは、2つの種類の異なるデータ型のソースと宛先サービス間のマッピングを記述したものです。Oracle Service Busは、XQueryまたはeXtensible Stylesheet Language Transformation (XSLT)標準のどちらかを使用したデータ・マッピングに対応しています。また、MFLで記述されたデータは自動的に同等のXMLに変換され、XQueryまたはXSLTでの変換で使用できます。ターゲット・サービスで必要な場合、結果のXMLは自動的にMFLに変換されます。
JAR (Java ARchive)ファイルとは、Javaクラスを含むzipファイルです。コンパイルされたJavaクラスと、プログラムを構成する関連メタデータの保存に使用します。JARはJavaコード要素用の呼出し可能なプログラム・ライブラリのように機能します(それぞれの要素に対して個別にバインディングを要求するのではなく、単一のコンピレーション・リンクが複数要素へのアクセスを提供)。
JARファイルは再使用可能なOracle Service Busリソースとして登録できます。Java終了メカニズムを提供するJavaコールアウト・アクション、EJBベースのビジネス・サービス、およびTuxedoベースのビジネス・サービスで使用されます。JARリソースの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のJARに関する項を参照してください。
WSDL (Web Service Definition Language)インタフェースは、SOAPサービスまたはXMLサービスのサービス・インタフェースを定義します。WSDLには、インタフェース内のオペレーションを含むサービスの抽象インタフェース、およびオペレーションのシグネチャのメッセージ部の型が記述されます。また、メッセージ部のメッセージへのバインディング(パッケージング)、およびメッセージのトランスポートへのバインディングを記述できます。さらに、WSDLでは、サービスの具象インタフェース(たとえば、トランスポートURL)を記述することもできます。
Oracle Service Busコンソールを使用してWSDLを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のWSDLの追加に関する項を参照してください。
プロキシ・サービスは、Oracle Service Busのローカルにホストされた複数のビジネス・サービスにメッセージをルーティングするのに使用される仲介WebサービスのOracle Service Busでの定義です。プロキシ・サービスは汎用のサービスであり、インタフェースを使用してビジネス・サービスとは独立して構成できます。汎用のプロキシ・テンプレートを使用すると、プロキシ・サービスをインタフェース、メッセージ・フローの定義、およびポリシーの観点から定義することができ、コンテンツ・ベースのルーティング・ロジックに基づいてメッセージを適切なサービスに動的にルーティングします。プロキシ・テンプレートの詳細は、第5章「サービス・コンポジション」の5.1.1.2項「ビジネス・サービス」を参照してください。
プロキシ・サービスは、メッセージ・データをエンドポイントのビジネス・サービスによって必要とされる適切なプロトコル形式にマップすることもでき、動的な実行時のプロトコルの切替えを実現しています。プロキシ・サービスで資格証明レベルの検証が必要な場合は、サービス・キー・プロバイダを作成して、Oracle Service Busコンソールを使用したセキュリティ資格証明の管理が行えます。
Oracle Service Busコンソールを使用してプロキシ・サービスを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のプロキシ・サービス: 作成および管理に関する項を参照してください。
サービス・キー・プロバイダ・リソースには、プロキシ・サービスがインバウンドSOAPメッセージの復号化、アウトバウンド認証およびデジタル署名に使用する公開鍵インフラストラクチャ(PKI)資格証明情報が含まれます。PKI資格証明とは、デジタル署名や暗号化(Webサービス・セキュリティ)、およびアウトバウンドSSL認証に使用できる証明書とペアになった秘密鍵です。この証明書には、秘密鍵に対応する公開鍵が含まれています。Oracle Service Busコンソールを使用してサービス・キー・プロバイダを構成する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダの追加に関する項を参照してください。
アラート宛先リソースは、Oracle Service Busからのアラート通知を受信できる受信者のリストを取り込みます。このリストは、メッセージ・フローで設定されたアラート・アクション、およびSLAアラート・ルールで使用されます。アラート宛先には、1つまたは複数の宛先のタイプ(レポート・データ・ストリーム、SNMPトラップ、電子メール、JMSキュー、JMSトピック)を含めることができます。電子メールおよびJMS宛先の場合は、宛先リソースに電子メール・アドレスまたはJMS URIのリストをそれぞれ含めることができます。アラート宛先は、サービスのアラート構成全体で再利用できます。
アラート宛先リソースの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のアラート宛先に関する項を参照してください。
JNDIプロバイダ・リソースは、通信プロトコル、およびリモート・サーバーへのアクセスに関するセキュリティ資格証明を定義し、Oracleに含まれる多数のプロキシ・サービスで再利用できます。JNDIプロバイダ・リソースは、Oracle Service Busドメインにあるプロジェクト間で、アラート宛先リソースで使用できるグローバル・リソースです。
JNDI プロバイダの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のJNDI プロバイダの追加に関する項を参照してください。
SMTPサーバー・リソースは、電子メール宛先、ポート番号、および認証資格証明(必要な場合)に対応するSMTPサーバーのアドレスを指定します。JNDIプロバイダ・リソースは、Oracle Service Busドメインにあるプロジェクト間で、アラート宛先リソースで使用されるグローバル・リソースです。
SMTPサーバー・リソースの詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のSMTPサーバーの追加に関する項を参照してください。
Oracle Service Busでは、実績のあるOracle Service Bus 9.0のOracle WebLogic Securityフレームワークを使用して、より高度なセキュリティ・サービスを構成します。これには、認証、IDアサーション、認可、ロール・マッピング、監査、資格証明マッピングなどが含まれます。Oracle WebLogic Serverのセキュリティを構成した後、コンソールを使用してセキュリティを構成できます。
コンソールには事前定義されたルールがあります。これによりOracle WebLogic Serverセキュリティ・プロバイダの使用がオペレーションのいくつかの異なるレベルにおいて簡素化されます。サポートされるセキュリティ・レベルの詳細は、3.3.4項「セキュリティ・レベル」を参照してください。
Oracle Service Busのセキュリティ機能の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のセキュリティに関する項を参照してください。
Oracle Service BusサービスとともOracle Web Services Managerのポリシーを使用することで、サービスを保護できます。 Oracle Web Services Managerは、Oracle SOA Suite環境およびアプリケーションを一元的に管理および制御するランタイム・フレームワークである、Oracle Enterprise Manager Fusion Middleware Controlのコンポーネントです。
詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のOracle Web Services ManagerでのOracle Service Busの保護に関する項を参照してください。
Webサービス・ポリシー(WS-Policy)は、Webサービスのセキュリティ制約と要件を定義するための標準ベースのフレームワークです。WS-Policyでは、それぞれ1つまたは複数のアサーションを含む、ポリシーと呼ばれるXML文の集合でセキュリティ制約と要件を表します。Oracle Service Busでは、WS-Policyアサーションを使用して、デジタル署名や暗号化に対するWebサービスの要件、および必要なセキュリティ・アルゴリズムや認証メカニズムを指定します。
WS-PolicyポリシーはWSDLドキュメントに直接、または参照によって含まれます。WSDLドキュメントは、WS-Policyポリシーを含むか参照する他のWSDLドキュメントをインポートできます。これらのポリシーを含むXMLファイルは、複数のプロキシ・サービスまたはビジネス・サービスから使用できます。WebLogic Webサービス実行時環境では、2つのタイプのWS-Policy文を認識します。
具象WS-Policy文では、認証、暗号化、およびデジタル署名のために使用されるセキュリティ・トークンを指定します。必要な認証のタイプ(X.509またはSAMLトークンの使用など)、暗号化やデジタル署名のために複数の秘密鍵と証明書のペアがキーストアから使用されることが、実行時にわかっている場合は、これらのWS-Policy文が作成されます。
抽象WS-Policy文ではセキュリティ・トークンを指定しません。
抽象ポリシーが受け取るセキュリティ・トークンのタイプは、Oracle Service Busの実行時環境で決定します。実行時環境の構成については、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のOracle Service Busのプロキシ・サーバーとビジネス・サービスでのWS-Policyの使用を参照してください。
ポリシーはURIによって参照され、WSDL、HTTP URI、またはポリシーURIのいずれかに埋め込まれます(例: policy:myPolicy
)。ポリシーURIでは組み込まれたポリシーを参照できます。WS-Policyの詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
サービス・アカウント・リソースは、ユーザー名とパスワードを提示します。このユーザー名とパスワードは、プロキシ・サービスとビジネス・サービスがアウトバウンド認証を行うとき、またはプロキシ・サービスとビジネス・サービスがFTPサーバーやJMSサーバーなどのローカルまたはリモート・リソースを認証するときに使用します。たとえば、ビジネス・サービスがWebサービスによるトランスポート・レベルの認証でユーザー名とパスワードを提示する必要がある場合、サービス・アカウントを作成してユーザー名とパスワードを指定できます。次にビジネス・サービスを構成して、サービス・アカウントの資格証明がアウトバウンド・リクエストに含まれるようにします。1つのサービス・アカウントを複数のビジネス・サービスおよびプロキシ・サービスに使用できます。サービス・アカウント・リソースの詳細は、 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・アカウントに関する項を参照してください。
Oracle Service Busには、次の種類のセキュリティ機能が用意されています。
認証
IDアサーション
認可
監査
資格証明マッピング
次のトピックでは、Oracle Service Busのセキュリティ・モデルで使用できるセキュリティ機能について説明します。
インバウンド・セキュリティによって、Oracle Service Busプロキシ・サービスは、認可されたクライアントからのリクエストのみを処理することが保証されます(デフォルトでは、すべての匿名ユーザーまたは認証ユーザーがプロキシ・サービスに接続できます)。また、クライアントからデータが送信されたときに、認可されていないユーザーがそのデータを参照または変更していないことが保証されます。
プロキシ・サービスは、サービス・コンシューマと他のプロキシ・サービスという2つのタイプのクライアントを持つことができます。インバウンド・セキュリティは、プロキシ・サービスの作成時に設定され、セキュリティ要件の変化によって決定されます。外向きのプロキシ・サービス(サービス・コンシューマからリクエストを受信します)の場合は、双方向SSL over HTTPSなどの厳密なセキュリティ要件が設定されます。他のOracle Service Busプロキシ・サービスからのみリクエストを受信することが保証されているプロキシ・サービスの場合は、これよりセキュリティの低いプロトコルが使用されます。プロキシ・サービスで、デジタル署名、暗号化、またはSSL認証に対して公開鍵インフラストラクチャ(PKI)テクノロジを使用する場合は、証明書とペアの秘密鍵を提供するサービス・キー・プロバイダを作成します。
各プロキシ・サービスに対し、次のインバウンド・セキュリティのチェックを構成できます。
トランスポート・レベルのセキュリティは、クライアントとプロキシ・サービス間の接続確立の一部としてセキュリティ・チェックを適用します。トランスポート・レベルのセキュリティによって適用できるセキュリティ要件は、プロキシ・サービスで使用するように構成するプロトコルによって異なります。サポートされる各プロトコルに対するトランスポート・レベルのセキュリティの構成については、「トランスポート・レベルのセキュリティの構成」を参照してください。詳細は、3.3.4.6項「トランスポート・レベルのセキュリティ」を参照してください。
カスタム認証は、メッセージ・レベルのセキュリティ用で、トランスポート・レベルおよびメッセージ・レベルのインバウンド・リクエストでのクライアント指定のカスタム認証資格証明のためのものです。カスタム認証資格証明は、カスタム・トークン、またはユーザー名とパスワードの形式になります。詳細は、3.3.5,項「カスタム・セキュリティ資格証明」を参照してください。
メッセージ・レベルのセキュリティは、Webサービスであるプロキシ・サービスのためのものです。これはWS-Security仕様の一部です。メッセージ・レベルのセキュリティでは、SOAPメッセージまたはSOAPメッセージの特定の部分を処理する前にセキュリティ・チェックを適用します。詳細は、3.3.4.7項「メッセージ・レベルのセキュリティ」を参照してください。
アウトバウンド・セキュリティは、プロキシ・サービスとビジネス・サービス間の通信を保護します。プロキシ・サービスを構成するタスクの大半は、ビジネス・サービスが指定するトランスポート・レベルのセキュリティまたはメッセージ・レベルのセキュリティの要件に準拠しています。ビジネス・サービスでデジタル署名またはSSL認証のためにPKIテクノロジを使用する必要がある場合は、証明書とペアの秘密鍵を提供するサービス・キー・プロバイダが作成されます。詳細は、 『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のサービス・キー・プロバイダに関する項を参照してください。
IDの伝播のオプションでは、クライアントが提示するIDの伝播方法など、Oracle Service Busのセキュリティを設計するときの判断を行うことができます。Oracle Service Busの構成によって、次のことを実行できます。
クライアントが提供する資格証明を認証します。
認可チェックを実行します。
クライアント資格証明を変更せずにビジネス・サービスに渡します。
ビジネス・サービスが認証および認可できる別の資格証明にクライアント資格証明をマップします。
セキュリティ・テクノロジ間を橋渡しします。
これらのOracle WebLogic Serverセキュリティ・プロバイダおよびOracle WebLogic Serverセキュリティ・アーキテクチャ全般の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティの理解』を参照してください。
Oracle Service Busセキュリティでは、WS-Policy仕様がサポートされます。WS-Policy仕様の詳細は、次のURLにあるWeb Services Policy Framework (WS-Policy)とWeb Services Policy Attachment (WS-PolicyAttachment)に関する記述を参照してください。http://specs.xmlsoap.org/ws/2004/09/policy/
Oracle Service Busコンソールでは、サービスにセキュリティ・ポリシーを構成し、そのインタフェース内のメッセージにセキュリティ・ポリシーを適用できます。セキュリティ・ポリシーの適用対象として、サービスを指定することも、サービスのオペレーションに関連する個々のメッセージを指定することもできます。サービスに対してセキュリティ・ポリシーを指定した場合、そのサービスのすべてのメッセージにポリシーが適用されます。
Oracle Service Busでは、オペレーションのレベルごとに異なるOracle WebLogic Serverセキュリティ・プロバイダを使用できます。次のセキュリティのレベルがサポートされます。
セキュリティ・レベルの詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
Oracle Service Busのユーザー管理は、Oracle WebLogic Serverの統合されたセキュリティ・フレームワークに基づいて作成されています。このフレームワークにより、Oracle Service Busコンソールでは、任意のグループまたは個々のユーザーに割り当てられたロールに関連付けられているセキュリティ・ポリシーを基にしたタスク・レベルの認可がサポートされます。Oracle WebLogic Serverのセキュリティ・フレームワークの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティの理解』を参照してください。
Oracle Service Busコンソールでは、Oracle Service Busのユーザー、グループ、およびロールを管理できます。Oracle Service Busコンソールを使用して、Oracle Service Busのユーザー、グループ、およびロールを管理する方法の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のセキュリティ構成に関する項を参照してください。
プロキシ・サービスの作成などの管理機能にユーザーがアクセスできるようにするため、事前定義されたアクセス特権を持つ4つのセキュリティ・ロールのいずれかにユーザーを割り当てることができます。セキュリティ・ロールは、実行時に評価される条件に基づきユーザーまたはグループに動的に与えることのできるIDです。Oracle Service Bus管理セキュリティ・ロールのアクセス権限は変更できませんが、どのユーザーまたはグループをあるロールにするための条件は変更できます。
デフォルトでは、Oralce Service Busドメインで最初に作成されるユーザーはOraclWebLogic Server管理者です。このユーザーは、Oracle Service Busのすべてのオブジェクトおよび機能にアクセスでき、ユーザー管理タスクを実行してOracle Service Busコンソールの機能へのアクセス制御を行うことができます。
Oracle Service Busユーザーに割り当てることのできるデフォルトのロールを次に示します。
IntegrationAdmin
IntegrationDeployer
IntegrationMonitor
IntegrationOperator
管理セキュリティの構成については、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』の管理セキュリティの構成: 主な手順に関する項を参照してください。
Oracle Service Busコンソールを使用してOracle Service Busのユーザー、グループおよびロールを管理する方法については、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のセキュリティ構成に関する項を参照してください。
Oracle Service Busでは、トランスポート・レベルの機密性、メッセージの整合性、および一方向のリクエストまたは双方向(リクエスト/レスポンス)の(クライアントからOracle Service Busへの)トランザクションでのクライアント認証がHTTPS経由でサポートされます。次のいずれかのクライアント認証を要求するように、HTTP(S)のプロキシ・サービスまたはビジネス・サービスを構成できます。
基本(ユーザー名/パスワード)クライアント認証
クライアント証明書(双方向SSL)によるクライアント認証
クライアント認証なし
プロキシ・サービスがアクティブになると、シンWebアプリケーションが生成されます。Oracle Service Busは、セッション管理、クライアント証明書の検証および認証、信頼性の管理、およびサーバーのSSLキー/証明書の操作といったサーバー側SSLの部分でOracle WebLogic Serverに依存します。
Oracle Service Busでサポートされる、HTTP以外のトランスポート方式でのトランスポート・セキュリティは次のとおりです。
電子メール・トランスポートおよびFTPトランスポートでは、FTPサーバーまたは電子メール・サーバー接続用の資格証明を使用したセキュリティが提供されます。
ファイル・トランスポートでは、ファイルが存在するマシンへのログイン・コントロールを使用したセキュリティが提供されます。
詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
Oracle Service Busでは、OASIS Web Services Security (WSS)1.0をサポートしています。WSS仕様の詳細は、次のURLにあるOASIS Web Services Security TCを参照してください。http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
WSSは、メッセージの機密性、整合性、およびSOAPメッセージでのセンダー認証を実現するためのフレームワークを定義します。Oracle Service BusでWSSを使用することにより、デジタル署名または暗号化、あるいはその両方を使用するメッセージを保護できます。WSSは、トランスポート・レベルのセキュリティとしては使用できませんが、エンド・ツー・エンドのメッセージで機密性および整合性を確保するのに適しています。
SOAPエンベロープの一部の要素のみに署名または暗号化、あるいはその両方を適用し、残りの要素には署名または暗号化を適用しないことが可能であるため、SSLよりも柔軟性に富んでいます。WSSとOracle Service Busの機能を結合して、メッセージのコンテンツに基づいてデータのルーティングの決定および変換を行うと非常に強力です。現在Oracle Service Busでは、HTTP/SおよびJMSを介したWSSがサポートされます。
Oracle Service BusのクライアントのIDを認証するには、基本認証、クライアント証明書(双方向SSL)、およびWebサービス・セキュリティという複数の方法があります。ビジネス・サービスおよびプロキシ・サービスに関連付けられたクライアント資格証明は、Oracle WebLogic Serverを使用して直接管理されます。トランスポート・レベルとメッセージ・レベルのインバウンド・リクエストに対するクライアント指定のカスタム認証資格証明もサポートされています。カスタム認証資格証明は、トークン、またはユーザー名とパスワードのトークンの組合せになります。
Oracle Service Busでは、以下の認証をサポートしています。
HTTPヘッダー、SOAPヘッダー(SOAPベースのプロキシ・サービスの場合)、またはペイロード(非SOAPプロキシ・サービスの場合)でプロキシ・サービスに渡されるカスタム・トークン。
SOAPヘッダー(SOAPベースのプロキシ・サービスの場合)またはペイロード(非SOAPプロキシ・サービスの場合)で渡されるユーザー名およびパスワード・トークン。
カスタム認証メカニズムは、単独で使用するか、またはWebサービスのメッセージ・レベル・セキュリティと組み合せて使用できます。
カスタム・セキュリティ資格証明の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のカスタム認証の構成に関する項を参照してください。
Oracle Service Busセキュリティに関するFAQ
『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』のセキュリティ構成に関する項
『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のOracle Service Busのプロキシ・サービスとビジネス・サービスでのWS-Policyの使用に関する項
『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』の本番環境でのOracle Service Busの保護に関する項