ヘッダーをスキップ
Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド
11gリリース1(11.1.1)
B56247-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

3 Oracle WSMのポリシー・フレームワークについて

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

Oracle WSMのポリシー・フレームワークの概要

Oracle Web Services Manager(WSM)には、組織全体で一貫してWebサービスを管理および保護するためのポリシー・フレームワークが備わっています。Oracle WSMは、開発者が設計時に使用することも、システム管理者が本番環境で使用することも可能です。

ポリシー・フレームワークは、WS-Policy標準を使用して作成されています。Oracle WSMのポリシー強制ポイント(PEP)は、次の図のように、認証および認可にOracle Platform Security Service(OPSS)ログイン・モジュールとOracle WebLogic Server認証プロバイダを活用します。

図3-1 OPSSおよびOracle WebLogic Serverセキュリティを活用するOracle WSMのポリシー・フレームワーク

図3-1の説明が続きます
「図3-1 OPSSおよびOracle WebLogic Serverセキュリティを活用するOracle WSMのポリシー・フレームワーク」の説明

開発者は、Oracle JDeveloperからOracle WSMのポリシー・フレームワークを使用できます。詳細は、Oracle JDeveloperのオンライン・ヘルプのアプリケーションの設計と開発に関する項にあるWebサービスでの開発に関する項目を参照してください。

システム管理者は、Oracle Enterprise Manager Fusion Middleware Controlを使用して、Oracle WSMで次のことを実行できます。

管理者は、Oracle Enterprise Manager Fusion Middleware ControlからOracle WSMのすべての機能にアクセスできます。セキュリティ・タスクと管理タスクの詳細は、第II部「基本管理」および第III部「高度な管理」を参照してください。

次に、Oracle WSMを使用して実行できる特定タスクの例を示します。

図3-2に、Oracle WSMアーキテクチャの主なコンポーネントを示します。

図3-2 Oracle WSMアーキテクチャのコンポーネント

図3-2の説明が続きます
「図3-2 Oracle WSMアーキテクチャのコンポーネント」の説明

表3-1に、前述の図に示されているOracle WSMのコンポーネントを説明します。

表3-1 Oracle WSMアーキテクチャのコンポーネント

Oracle WSMのコンポーネント 説明

Oracle Enterprise Manager Fusion Middleware Control


管理者がOracle WSMの機能にアクセスして、Webサービスを管理、保護および監視できるようにします。

Oracle WSM Policy Manager

メタデータ・ストアの事前定義済ポリシーおよびカスタム・ポリシーを含め、ポリシーの読取り/書込みを行います。

Oracle WSM Agent

ポリシー・インターセプタ・パイプラインによるポリシーの強制を管理します。

ポリシー・インターセプタ

信頼できるメッセージング、管理、アドレッシング、セキュリティおよびMessage Transmission Optimization Mechanism(MTOM)を含むポリシーを実行します。詳細は、「ポリシー実行の仕組み」を参照してください。

メタデータ・ストア(MDS)

ポリシーを格納します。ポリシーは、開発でサポートされているファイルシステムにファイルとして格納することも、本番環境でサポートされているOracle Fusion Middlewareデータベースに格納することもできます。

Oracle Fusion Middlewareデータベース

MDSにデータベース・サポートを提供します。


ポリシーについて

ポリシーでは、メッセージを保護する必要性と保護する方法、メッセージを確実に送信する必要性と確実に送信する方法など、Webサービスの機能および要件を記述します。

Oracle Fusion Middleware 11gリリース1(11.1.1)では、次のタイプのポリシーがサポートされています。

ポリシーは、ポリシーの一元的な作成と管理を可能にする、Oracle WSMエンタープライズ・ポリシー・フレームワークの一部です。

ポリシー・アサーションを使用したポリシーの作成

ポリシーは、1つ以上のポリシー・アサーションで構成されています。ポリシー・アサーションは、リクエスト操作とレスポンス操作のための特定のアクションを実行するポリシーの最小単位です。ポリシーなどのアサーションは、信頼できるメッセージング、管理、WS-Addressing、セキュリティおよびMTOMのいずれかのカテゴリに属します。

ポリシー・アサーションは、パイプライン内で連鎖しています。ポリシー内のアサーションは、リクエスト・メッセージおよびレスポンス・メッセージで実行され、どちらのタイプのメッセージでも同じアサーションのセットが実行されます。アサーションは、パイプライン内での順序で実行されます。

図3-3に、一般的な実行フローを示します。リクエスト・メッセージの場合、アサーション1が最初に実行され、アサーション2およびアサーションnがそれに続きます。レスポンス・メッセージで同じアサーションが実行されることもありますが(レスポンスが戻される場合)、レスポンス・メッセージで実行されるアクションはリクエスト・メッセージとは異なっており、アサーションが逆の順序で実行されます。図3-3のレスポンス・メッセージの場合、アサーションnが最初に実行され、アサーション2、アサーション1がそれに続きます。

図3-3 アサーションを含むポリシー

図3-3の説明が続きます
「図3-3 アサーションを含むポリシー」の説明

たとえば、図3-4では、ポリシーに2つのアサーションが含まれています。

  1. wss11-username-with-certificates: wss11_username_token_with_message_protection_service_templateを使用して作成されており、WS-Security UsernameToken SOAPヘッダーの資格証明に基づき、ユーザーを認証します。

  2. binding-authorization: binding_authorization_templateを使用して作成されており、SOAPバインディング・レベルの認証されたサブジェクトに基づき、リクエストに対して簡単なロールベースの認可を行います。

図3-4 アサーションが2つ含まれるサンプルのポリシー

図3-4の説明が続きます
「図3-4 アサーションが2つ含まれるサンプルのポリシー」の説明

リクエスト・メッセージがWebサービスに送信されると、表示されている順序でアサーションが実行されます。レスポンス・メッセージがクライアントに返されると、同じアサーションが実行されますが、順序は逆です。リクエスト・メッセージに対するアサーションの動作は、レスポンス・メッセージの動作とは異なります。インスタンスによっては、レスポンスで何も発生しない場合があります。たとえば前述の例では、認可アサーションはリクエストの一部としてのみ実行されます。

サブジェクトへのポリシーの添付

ポリシー・サブジェクトは、ポリシーを添付するターゲット・リソースです。ポリシー・サブジェクトには、Webサービス・エンドポイント、Webサービス・クライアント、SOAサービス・エンドポイント、SOAクライアントおよびSOAコンポーネントが含まれます。異なるリソースのタイプ(WebサービスまたはSOAコンポーネントなど)には異なるポリシーがあります。

ポリシー・サブジェクトに1つ以上のポリシーを個別に添付、または一括添付できます。ポリシーをポリシー・サブジェクトに添付すると、ポリシーがすぐに有効化されます。

クライアント側のポリシーによってメッセージが変更される場合(たとえばメッセージの暗号化)、Webサービス側にも対応するポリシー(たとえばポリシーの復号化)が存在する必要があります。存在しない場合、メッセージ・リクエストが失敗します。

ポリシー実行の仕組み

サービス・コンシューマ(クライアントとも呼ばれる)からサービス・プロバイダ(Webサービスとも呼ばれる)にリクエストが行われると、リクエストは1つ以上のポリシー・インターセプタによりインターセプトされます。これらのインターセプタにより、クライアントおよびWebサービスに添付されたポリシーが実行されます。インターセプタには、連携してポリシー・インターセプタ・チェーンを形成する5つのタイプ(信頼できるメッセージング、管理、WS-Addressing、セキュリティおよびMTOM)があります。各インターセプタは、同じタイプのポリシーを実行します。セキュリティ・インターセプタはセキュリティ・ポリシーを、MTOMインターセプタはMTOMポリシーをインターセプトして実行します。

クライアントまたはWebサービスに添付されたポリシーは、図3-5に示されるように、ポリシー・インターセプタ・パイプラインによって特定の順序で実行されます。

図3-5 クライアントおよびWebサービス間のメッセージで動作するポリシー・インターセプタ

図3-5の説明が続きます
「図3-5 クライアントおよびWebサービス間のメッセージで動作するポリシー・インターセプタ」の説明

前述の図に示されているように、クライアントまたはWebサービスによりメッセージが開始されると、クライアントの場合のリクエスト・メッセージであってもWebサービスの場合のレスポンス・メッセージであっても、ポリシーは、信頼できるメッセージング、管理、アドレッシング、セキュリティ、MTOMの順序でインターセプトされます。クライアントまたはWebサービスがメッセージを受信する(Webサービスの場合はリクエスト・メッセージ、クライアントの場合はレスポンス・メッセージ)と、ポリシーは、MTOM、セキュリティ、アドレッシング、管理、信頼できるメッセージングの順序で実行されます。

メッセージには、1つ以上のポリシーが添付されている場合があります。すべてのメッセージに各タイプのポリシーが含まれるわけではありません。メッセージに含まれるのが、セキュリティ・ポリシーとMTOMポリシーの場合もあります。この場合、セキュリティ・インターセプタはセキュリティ・ポリシーを実行し、MTOMインターセプタはMTOMポリシーを実行します。この例では、その他のインターセプタはメッセージの処理に関わりません。

次に、クライアントとWebサービス間のメッセージで、ポリシー・インターセプタがどのように動作するかを説明します。(図3-5を参照。)

  1. クライアントがWebサービスにリクエスト・メッセージを送信します。

  2. ポリシー・インターセプタが、クライアントに添付されたポリシーをインターセプトおよび実行します。クライアント・ポリシーが正常に実行されると、リクエスト・メッセージがWebサービスに送信されます。

  3. リクエスト・メッセージがポリシー・インターセプタによりインターセプトされ、Webサービスに添付されたサービス・ポリシーが実行されます。

  4. サービス・ポリシーが正常に実行されたら、リクエスト・メッセージがWebサービスに渡されます。Webサービスによりリクエスト・メッセージが実行され、レスポンス・メッセージが戻されます。

  5. レスポンス・メッセージがポリシー・インターセプタによりインターセプトされ、Webサービスに添付されたサービス・ポリシーが実行されます。サービス・ポリシーが正常に実行されたら、レスポンス・メッセージがクライアントに送信されます。

  6. レスポンス・メッセージがポリシー・インターセプタによりインターセプトされ、クライアントに添付されたクライアント・ポリシーが実行されます。

  7. クライアント・ポリシーが正常に実行されたら、レスポンス・メッセージがクライアントに渡されます。

Oracle WSMの事前定義済ポリシーとアサーション・テンプレート

Oracle Fusion Middlewareをインストールすると自動的に使用可能になる、一連の事前定義済ポリシーとアサーション・テンプレートがあります。事前定義済ポリシーは、顧客のデプロイで使用される一般的なベスト・プラクティス・ポリシーのパターンに基づいています。

これらの事前定義済ポリシーは、Webサービスやクライアントにすぐに添付できます。事前定義済ポリシーを構成することも、事前定義済ポリシーのいずれかをコピーして新しいポリシーを作成することもできます。

事前定義済ポリシーは、事前定義済アサーション・テンプレートに基づくアサーションを使用して作成されています。必要に応じて、新しいアサーション・テンプレートを作成できます。

事前定義済ポリシーおよびアサーション・テンプレートの詳細は、次の項を参照してください。


注意:

WS-SecurityPolicyは、(WS-Security 1.0および1.1の両方をサポートする)WS-Security仕様で説明されているいくつかのセキュリティ・トークン・タイプに、WS-SecurityPolicyポリシーを設定する方法の例を説明するシナリオを定義します。Oracle WSMの事前定義済ポリシーでは、最も一般的な顧客のユース・ケースを表すWS-SecurityPolicyシナリオのサブセットがサポートされています。

クライアント・セキュリティ・ポリシー構成の上書き

複数のクライアントで同じポリシーを使用することもできます。各クライアントのポリシー構成要件(ユーザー名やパスワードなど)は異なる場合があります。

Oracle WSMポリシー構成のオーバーライド機能により、ユーザーは各クライアントに新しいポリシーを作成しなくても、クライアントごとに構成を更新できます。この方法では、デフォルトの構成値を定義し、実行時の要件に基づいてその値をカスタマイズするクライアント・ポリシーを作成できます。たとえば、クライアントごとに情報が異なる場合があることから、クライアント・ポリシーを構成するときにユーザー名とパスワードを指定することもできます。

クライアント・セキュリティ・ポリシー構成のオーバーライドの詳細は、「オーバーライド可能なクライアント・ポリシーの添付」を参照してください。

「カスタム・アサーションの作成」で説明されているように、カスタム・アサーションの作成時に構成プロパティをオーバーライド可能にするかどうかを定義できます。

ポリシーの推奨ネーミング規則

ディレクトリ、ポリシーおよびアサーション・テンプレートの名前に使用できる文字は次のとおりです。


注意:

名前の先頭に、ハイフンまたは空白を使用することはできません。

一目で何をするポリシーかがわかるように、ポリシー名には可能なかぎり情報を含めることをお薦めします。たとえば、Oracle Fusion Middleware 11gリリース1(11.1.1)に提供されている事前定義済セキュリティ・ポリシーの1つは、oracle/wss10_username_token_with_message_protection_service_policyという名前です。図3-6で、この事前定義済ポリシー名の各部分を確認します。

図3-6 ポリシー名の各部分の確認

図3-6の説明が続きます
「図3-6 ポリシー名の各部分の確認」の説明

事前定義済ポリシーに名前を付ける際には、次の表記規則が使用されます。ポリシー名の各部分は、アンダースコア文字(_)で区切られます。

どのような表記規則を適用する場合でも、ポリシー名の付け方を十分に検討することをお薦めします。これにより、エンタープライズが成長して新しいポリシーを作成する場合に、ポリシーの追跡が簡単になります。

作成するポリシーは、事前定義済ポリシーが存在するoracleディレクトリとは別のディレクトリに保存することをお薦めします。ポリシーは、ルート・レベル、oracle以外のディレクトリ、またはサブディレクトリで管理できます。たとえば、次のいずれも有効です。