ヘッダーをスキップ
Oracle® Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド
11g リリース1 (11.1.1.7)
B56247-07
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

9 ポリシー・セットの作成および管理

ポリシー・セットを使用すると、ある範囲に含まれる同じタイプのエンドポイントに対して、ポリシーをグローバルにアタッチできます。この章では、Oracle Enterprise Manager Fusion Middleware Controlおよびコマンドライン・インタフェースWebLogic Scripting Tool (WLST)を使用して、ポリシー・セットを管理および作成する方法について説明します。ポリシー・サブジェクトにポリシーを直接添付する場合の詳細は、第8章「Webサービスへのポリシーの添付」を参照してください。

この章では次の項について説明します。


注意:

この章の手順は、Oracle Infrastructure Web Servicesにのみ適用されます。

この章に記載されているWLSTコマンドのヘルプを表示するには、サーバーの実行中のインスタンスに接続し、「help('wsmManage')」と入力します。


ポリシー・セットを使用したグローバル・ポリシー・アタッチメントについて

エンドポイントにポリシーを直接アタッチすることに加えて、デプロイメントの状態に関係なく、同タイプの一連のエンドポイントにポリシーをグローバルにアタッチすることを可能にするポリシー・セットを作成できます。Fusion Middleware ControlおよびWebLogic Scripting Tool(WLST)の両方を使用して、ポリシー・セットを作成および管理できます。この章では、両方の方法について説明します。WLSTコマンドの参照情報は、『WebLogic Scripting Toolコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項で提供されています。

ポリシー・セットを使用してポリシーをグローバルにアタッチすることによって、開発者、アセンブラまたはデプロイヤがアタッチするポリシーを明示的に指定しなかった状況において、管理者は、すべてのサブジェクトが確実に保護されるようにできます。たとえば、開発者が注釈内にポリシーを指定しなかった場合、またはデプロイメント・ディスクリプタにポリシー参照を含めなかった場合、デプロイヤはポリシーをアタッチする必要があり、このようにしないと、潜在的なセキュリティ・リスクが発生します。タイプ別のサブジェクトのセットに対してポリシーをグローバルにアタッチすることによって、管理者はデプロイメントに関係なく(かつデプロイメント前に)、すべてのサブジェクトがデフォルトで保護されるようにできます。たとえば、管理者はあるドメイン内のすべてのWebサービス・エンドポイントに対してセキュリティ・ポリシーをアタッチするポリシー・セットを定義できます。この場合、ドメインに追加されるすべての新規サービスには、ポリシー・セットに定義されたセキュリティ構成が自動的に継承されます。詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。

また、ポリシー・セットを使用してグローバルにアタッチされたポリシーにより、次のことが可能になります。

Fusion Middlewareインストールに含まれるいかなる動作も強制しない事前定義済ポリシーを使用して、特定のエンドポイントまたはエンドポイントの範囲に対して、グローバルにアタッチされたポリシーを無効にできます。特定のエンドポイントに対して、または下位のスコープで、こうしたポリシーのいずれかをアタッチすると、上位のスコープでグローバルにアタッチされたポリシーの動作が無効になります。詳細は、「グローバルにアタッチされたポリシーの無効化」を参照してください。

ポリシー・セット定義は、別個のXMLドキュメントとして、Oracle WSMリポジトリの/policysets/globalディレクトリに保存されます。

サブジェクト・タイプおよびリソース・スコープ

ポリシー・セットをアタッチできるポリシー・サブジェクトには、SOAコンポーネント、SOAサービス・エンドポイント、SOA参照、Webサービス・エンドポイント、Webサービス・クライアント、Webサービス・コネクションおよび非同期コールバック・クライアントなどが含まれます。ポリシー・セットは、次のスコープでアタッチできます。

  • ドメイン - ドメイン内の指定されたタイプのすべてのポリシー・サブジェクト

  • アプリケーションまたはパーティション: アプリケーションまたはSOAパーティション内の指定されたタイプのすべてのポリシー・サブジェクト

  • アプリケーション・モジュールまたはSOAコンポジット: アプリケーション・モジュールまたはSOAコンポジット内の指定されたタイプのすべてのポリシー・サブジェクト

  • サービスまたは参照: SOAサービスまたは参照内の指定されたタイプのすべてのポリシー・サブジェクト

  • ポートまたはコンポーネント: ポートまたはSOAコンポーネント内の指定されたタイプのすべてのポリシー・サブジェクト

詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

グローバル・ポリシー・アタッチメントの一般的な用途

次に、ポリシーのグローバルなアタッチが役立つ一般的なシナリオをいくつか示します。

  • 指定タイプのすべてのサブジェクトについて、それぞれデフォルトの構成を使用して、同じポリシー・セットにより保護する必要がある場合。たとえば、(SAMLまたはユーザー名トークンを使用して)認証およびWSS11メッセージ保護によりドメイン内のすべてのサービスを保護する必要があります。ドメイン内のすべてのサービスに適切なポリシーをアタッチするためにポリシー・セットを作成できます。

  • サブジェクトのサブセットを同じポリシー・セットにより保護する必要がありますが、こうしたポリシーがドメイン全体のデフォルトとは異なる場合。たとえば、(SAMLまたはユーザー名トークンを使用して)認証によりすべてのサービスを保護する必要がありますが、一般元帳アプリケーションではより強力なWSS11メッセージ保護も必要です。このような場合、すべてのサービスに認証ポリシーをアタッチする1つのポリシー・セットと、一般元帳アプリケーションにより強力なメッセージ保護ポリシーをアタッチする第2のポリシー・セットを作成します。

  • 現セットのグローバル・ポリシー・アタッチメントがまだ適用されていないカテゴリのポリシーによって単一のサブジェクトを保護する必要があり、さらに両方のポリシーを適用する必要がある場合。たとえば、機密性の高い財務に基づくサービス・エンドポイントでは、必要な認証およびメッセージ保護に加えて、クライアントがアクセスするための権限を必要とします。このような場合は、財務に基づくサービス・エンドポイントに認可ポリシーを直接アタッチします。ダイレクト・アタッチメントとグローバルにアタッチされたポリシーを組み合せることで、両方のポリシーが強制されます。

  • アプリケーションが設計時のポリシー・アタッチメントによりデプロイされており、グローバル・ポリシー・アタッチメントを使用するように変換する必要がある場合。このアタッチメントを移行するために、migrateAttachments WLSTコマンドを使用できます。詳細は、「グローバル・ポリシー・アタッチメントへのダイレクト・ポリシー・アタッチメントの移行」を参照してください。

「ポリシー・セット・サマリー」ページへの移動

ポリシー・セットは、「ポリシー・セット・サマリー」ページからドメイン・レベルで管理できます。このページでは、ポリシー・セットを表示、作成、コピー、編集および削除できます。

「ポリシー・セット・サマリー」ページに移動するには:

  1. ナビゲータ・ペインで「WebLogicドメイン」を開きます。

  2. ポリシー・セットを管理するドメインを選択します。

  3. 「WebLogicドメイン」メニューから、「Webサービス」「ポリシー・セット」の順に選択します。

    図9-1に示すように、「ポリシー・セット・サマリー」ページが表示されます。

    図9-1 「ポリシー・セット・サマリー」ページ

    図9-1の説明は次にあります。
    「図9-1 「ポリシー・セット・サマリー」ページ」の説明

WLSTを使用したポリシー・セットのリストの表示

リポジトリ内のポリシー・セットのリストを表示するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. リポジトリ内のポリシー・セットのリストを表示するために、listPolicySetsコマンドを使用します。

    listPolicySets ([type=None])
    

    特定のタイプのポリシー・サブジェクト・リソース・タイプに適用されるポリシー・セットのみを含めるように表示を制限できます。サブジェクトのタイプを指定するには、表9-1「ポリシー・サブジェクト・リソース・タイプ」で指定された略語を使用する必要があります。

    たとえば、Webサービス・エンドポイントに適用されるポリシー・セットのリストを表示するには、次のコマンドを使用します。

    wls:/jrfserver_domain/serverConfig>listPolicySets('ws-service')
     Global Policy Sets in Repository:
      app-only-web-service-policies
      all-domains-default-web-service-policies
    

このWLSTコマンドについての詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

ポリシー・セットの構成の表示

次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)のいずれかを使用してポリシー・セットを表示する方法について説明します。

Fusion Middleware Controlの使用

ポリシー・セットを表示するには:

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページで、表からポリシー・セットを選択し、「表示」をクリックします。

  3. ポリシー・セットを参照し終わったら、「ポリシー・セットに戻る」をクリックします。

    図9-2 ポリシー・セットの表示

    図9-2の説明が続きます。
    「図9-2 ポリシー・セットの表示」の説明

WLSTの使用

リポジトリ内の特定のポリシー・セットの構成を表示するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. 指定のポリシー・セットの構成を表示するために、displayPolicySetコマンドを使用します。

    displayPolicySet ([name=None])
    

    リポジトリ・セッションの外側でこのコマンドを実行した場合、name引数を使用してポリシー・セットの構成を表示できます。ポリシー・セットが存在しない場合、エラー・メッセージが表示されます。

    リポジトリ・セッションでポリシー・セットを作成または変更している場合は、name引数を指定する必要はありません。現在のポリシー・セットがデフォルトで使用されます。ポリシー・セットを変更した場合は、変更後のバージョンが表示されます。それ以外の場合は、リポジトリの最新バージョンが表示されます。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>displayPolicySet('int-only-web-service-policies')
    
     Policy Set Details:
    -------------------
    Name:                int-only-web-services-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("*")
    Constraint:          !HTTPHeader("VIRTUAL_HOST_TYPE","external")
    Description:         Policies for non-external client requests
    Enabled:             true
    Policy Reference:    security : oracle/wss_saml_or_username_token_service_policy, enabled=true
                         reference.priority=1
                         management : oracle/log_policy, enabled=true
    

このWLSTコマンドについての詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

WLSTを使用したリポジトリ変更セッションの管理

ポリシー・セットの作成、変更および削除を行うためにWLSTを使用する場合、リポジトリ・セッションのコンテキストでコマンドを実行する必要があります。各リポジトリ・セッションは、単一のポリシー・セットにのみ適用されます。

リポジトリを変更するセッションを作成するには、beginRepositorySessionコマンドを使用します。ポリシー・セットの作成、変更または削除のための必要なコマンドを入力した後、commitRepositorySessionコマンドを使用してリポジトリへのセッション・コンテンツの書込みを行います。

現在のセッションのコンテンツを示すには、describeRepositorySessionコマンドを使用します。

リポジトリへのコンテンツの書込みを行わないでリポジトリ・セッションを終了するには、abortRepositorySessionコマンドを使用します。

これらのコマンドの例は、以降の項で示します。詳細は、『WebLogic Scripting Toolコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。

ポリシー・セットの作成

次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)のいずれかを使用してポリシー・セットを作成する方法について説明します。

Fusion Middleware Controlの使用

ポリシー・セットを作成するには、次のコマンドを実行します。

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページで、「作成」をクリックします。

    ポリシー・セットを作成するウィザードの最初のページが表示されます。

  3. 図9-3に示すように、「一般情報の入力」ページで、ポリシー・セットの名前を入力します。

    図9-3 「一般情報の入力」ページ

    図9-3の説明が続きます
    「図9-3 「一般情報の入力」ページ」の説明

  4. ポリシー・セットを有効にする場合は、「有効」チェック・ボックスを選択します。

  5. 「リソース・タイプ」フィールドで、ポリシーをアタッチするポリシー・サブジェクトのタイプを選択します。次のページで、ポリシー・セットを適用するリソース・スコープを定義します。選択できるポリシー・サブジェクトのタイプは次のとおりです。

    • 非同期コールバック・クライアント

    • RESTリソース

    • SOAコンポーネント

    • SOA参照

    • SOAサービス

    • Webサービス・クライアント

    • Webサービス接続

    • Webサービス・エンドポイント

  6. 必要に応じて、ポリシー・セットの説明を追加し、「次へ」をクリックします。

  7. 「リソース・スコープの入力」ページで、前の手順で選択したリソース・タイプのスコープを定義する少なくとも1つのパターン文字列を入力します。次のリソース・スコープがサポートされます。

    • ドメイン

    • サーバー・インスタンス


      注意:

      信頼できない結果が発生する可能性があるため、サーバー・インスタンス・スコープの使用はお薦めできません。


    • SOAパーティション

    • アプリケーション

    • アプリケーション・モジュール

    • SOAコンポジット

    • SOAサービス

    • SOA参照

    • SOAコンポーネント

    • ポート


    注意:

    リソース・スコープを指定するには、このページで少なくとも1つの「パターン」フィールドにパターン文字列を入力する必要があります。


    使用可能なリソース・スコープのリストは、前のページで選択したリソース・タイプによって決定します。たとえば、Webサービス・エンドポイントを選択した場合、使用可能なリソース・スコープは、ドメイン名、サーバー・インスタンス名、アプリケーション名、アプリケーション・モジュール名、SOAサービスまたはWebサービスのエンドポイント/名前/ポート名です。SOAサービス・リソース・タイプでは、使用可能なリソース・スコープは、ドメイン名、サーバー・インスタンス名、SOAパーティション名、SOAコンポジット名、SOAサービスまたはWebサービス・エンドポイント名/ポート名です。

    たとえば、ドメイン内のすべてのWebサービス・エンドポイントにポリシーをアタッチするには、そのドメインの名前のみを示すパターン文字列を入力します。他のフィールドに記入する必要はありません。より詳細なスコープ、たとえばアプリケーション・レベルまたはアプリケーション・モジュール・レベルでポリシーをアタッチするには、「パターン」フィールドにアプリケーションまたはモジュールの名前を示すパターン文字列を入力します。該当位置で任意の数の文字に一致するワイルドカード文字としてアスタリスク(*)を文字列内の任意の場所で使用できます。また、文字列内で複数のワイルドカードを指定できます。ドメインに対してアスタリスクのワイルドカードのみを使用した場合、そのスコープ・レベルによりエンタープライズ内のすべてのドメインが影響を受けることに注意してください。

    ドメイン名やアプリケーションなど、複数のリソース・スコープのパターン文字列を指定した場合、フィルタリング条件はANDで結合されます(例: Domain("myDomain*") AND Application("*myApp*"))。リソース・タイプとスコープの指定の詳細、および複数のリソース・スコープを指定する例は、「リソースのタイプおよびスコープの定義」を参照してください。

    図9-4 「リソース・スコープの入力」ページ

    図9-4の説明が続きます
    「図9-4 「リソース・スコープの入力」ページ」の説明

  8. 「次へ」をクリックします。

  9. 「制約の入力」ページで、必要に応じて、ポリシー・セットが関連するコンテキストを決定するためにポリシー・セットに適用される制約を入力します。たとえば、セキュリティ保護されていない公衆回線でメッセージが送信される可能性があるため、外部クライアントと通信する場合に、サービスでメッセージ保護を使用するように指定できます。ただし、信頼できるネットワークで内部クライアントと通信するときは、メッセージ保護を要求しない場合もあります。

    制約を指定するには、このページの「制約式詳細」セクションで「有効」チェック・ボックスを選択し、「HTTPヘッダー名」フィールドおよび「HTTPヘッダー値」フィールドでヘッダーの名前および値を指定したうえで、必要に応じて制約を反転する「!(NOT)」演算子を選択し、「制約の更新」をクリックします。次に「次へ」をクリックします。

    制約の指定の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。

  10. 「ポリシー参照の追加」ページで、「使用可能なポリシー」リストからポリシーを選択し、「アタッチ」をクリックします。

    ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。ポリシーの詳細を確認し終わったら、「OK」をクリックします。

  11. ポリシーの選択と添付を続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。

    図9-5 「ポリシー参照の追加」ページ

    図9-5の説明が続きます
    「図9-5 「ポリシー参照の追加」ページ」の説明

  12. 「次へ」をクリックし、「ポリシー・セット・サマリー」ページを表示します。

  13. ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。

    検証が失敗した場合でも、ポリシー・セットは依然として保存されていますが、無効モードになることに注意してください。

    図9-6 ポリシー・セットの作成ウィザードの「ポリシー・セット・サマリー」ページ

    図9-6の説明が続きます
    「図9-6 ポリシー・セットの作成ウィザードの「ポリシー・セット・サマリー」ページ」の説明

WLSTの使用

WLSTを使用してポリシー・セットを作成するには、次の手順に従います。

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    リポジトリを変更するセッションを作成するために、beginRepositorySessionコマンドを使用します。すべての作成、変更または削除のコマンドは、セッションのコンテキストで実行する必要があります。セッションは、単一のドキュメントにのみ作用できます。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  3. 新しい空のポリシー・セットを作成するためにcreatePolicySetコマンドを使用します。nametypeおよびattachTo引数が必要です。

    createPolicySet(name, type, attachTo, [description=None], [enable='true'])
    

    この場合:

    • nameは、新しい空のポリシー・セットの名前を表します。

    • typeは、新しいポリシー・セットが適用されるポリシー・サブジェクトのタイプを表します。

    • attachToは、ポリシー・セットをアタッチするリソースのスコープを表します。この引数では、サポートされた形式で有効なリソース・スコープを定義するサポートされた式を使用する必要があります。詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

      リソース・スコープの正確なドメイン名を入力する必要はありません。例に示しているように、ワイルドカードを使用できます。詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

    • descriptionは、ポリシー・セットの説明を提供するオプションの引数を表します。

    • enableは、ポリシー・セットが有効か無効かを指定します。この引数はオプションです。

    たとえば、必要な引数のみを使用して、ドメイン内のすべてのサービスに対するポリシー・セットを作成できます。

    wls:/jrfserver_domain/serverConfig> createPolicySet('all-domains-default-web-service-policies', 'ws-service', 'Domain("*")')
    
    Description defaulted to "Global policy attachments for Web Service Endpoint resources."The policy set was created successfully in the session.
    

    コマンドラインで説明が指定されなかったのでデフォルトの説明が提示されたことに注意してください。

    このコマンドの引数の詳細は、『WebLogic Scripting Toolコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。

  4. setPolicySetDescriptionコマンドを使用して説明を指定します。

    setPolicySetDescription(description)
    

    たとえば、「Default policies for web services in any domain」という説明を設定するには、次のコマンドを使用します。

    wls:/jrfserver_domain/serverConfig> setPolicySetDescription('Default policies for web services in any domain')
    
    Description updated.
    
  5. 現在のポリシー・セットにポリシーをアタッチするには、attachPolicySetPolicyコマンドを使用します。uri引数を使用して指定したURIによって識別されるポリシーは、ポリシー・セット内の指定したエンドポイントにアタッチされます。必要なすべてのポリシーをポリシー・セットにアタッチするために、必要に応じてこのコマンドを繰り返すことができます。

    attachPolicySetPolicy(uri)
    

    たとえば、ポリシー・セット内の指定したサブジェクトにポリシー「'oracle/wss11_saml_or_username_token_with_message_protection_service_policy'」をアタッチするには、次のコマンドを入力します。

    wls:/jrfserver_domain/serverConfig>attachPolicySetPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy')
    
    Policy reference added.
    
  6. 必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。

  7. 必要に応じて、displayPolicySetコマンドを使用して、現在のリポジトリ・セッション中のポリシー・セットの構成を表示します。

    displayPolicySet(name=None)
    

    リポジトリ・セッション内でこのコマンドを実行する場合、name引数を指定する必要はないことに注意してください。現在のポリシー・セットがデフォルトで使用されます。ポリシー・セットを変更した場合は、変更後のバージョンが表示されます。それ以外の場合は、リポジトリの最新バージョンが表示されます。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>displayPolicySet() 
    
    Policy Set Details:
    -------------------
    Name:                all-domains-default-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("*")
    Description:         Default policies for web services in any domain
    Enabled:             true
    Policy Reference:    security : oracle/wss11_saml_or_username_token_with_message_protection_service_policy, enabled=true
    
  8. validatePolicySetコマンドを使用してポリシー・セットを検証します。

    validatePolicySet(name=None)
    

    このコマンドは、名前を指定しない場合、現在のセッション中に作成または変更されるポリシー・セットを検証します。また、リポジトリ・セッションの外側でこのコマンドを実行できることに注意してください。この場合、name引数が必要です。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> validatePolicySet()
     
    The policy set all-domains-default-web-service-policies is valid.
    
  9. commitRepositorySessionコマンドを使用して、リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行います。

    wls:/jrfserver_domain/serverConfig> commitRepositorySession()
    
    The policy set all-domains-default-web-service-policies is valid.
    Creating policy set all-domains-default-web-service-policies in repository.
     
    Repository session committed successfully.
    

    また、セッション中にリポジトリに加えたすべての変更を破棄するabortRepositorySessionコマンドを使用することにより、すべての変更を取り消すことができます。

WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

既存のポリシー・セットからのポリシー・セットの作成

新しいポリシー・セットのベースとして既存のポリシー・セットを使用できます。次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)のいずれかを使用して既存のポリシー・セットから新しいポリシー・セットを作成する方法について説明します。

既存のポリシー・セットからポリシー・セットを作成すると、すべての値とアタッチメントが新規のポリシー・セットにコピーされることに注意してください。新規のポリシー・セットのリソース・スコープとポリシー・アタッチメントは変更できますが、適用されるリソースのタイプは変更できません。

Fusion Middleware Controlの使用

既存のポリシー・セットを使用してポリシー・セットを作成するには:

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページで、コピーするポリシー・セットを選択し、「類似作成」をクリックします。

  3. 「一般情報の入力」ページで、ポリシー・セットの新しい名前および説明を入力します。

    次の事項に注意してください。

    • ベース・ポリシー・セット名に「_Copy」を追加したデフォルトの新しいポリシー・セット名が作成されます。たとえば、ベース・ポリシー・セットの名前がall-domains-default-web-service-policiesである場合、表示されるコピーの名前はall-domains-default-web-service-policies_Copyになります。

    • 「リソース・タイプ」フィールドは読取り専用です。ポリシー・セットのクローンを作成する場合、スコープを変更することはできますが、ポリシー・セットをアタッチするリソースのタイプは変更できません。

  4. 「有効」チェック・ボックスを選択するか、その選択を解除して、ポリシー・セットを有効または無効にします。

  5. 「次へ」をクリックします。

  6. 「リソース・スコープの入力」ページで、必要に応じてスコープを変更し、「次へ」をクリックします。


    注意:

    リソース・スコープを指定するには、このページで少なくとも1つの「パターン」フィールドにパターン文字列を指定する必要があります。


  7. 「制約の入力」ページで、必要に応じて制約を指定するか、または既存の制約を変更します。「制約の更新」をクリックし、「次へ」をクリックします。

    詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。

  8. 「ポリシー参照の追加」ページで、必要に応じてポリシー・アタッチメントを変更します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。

  9. 「次へ」をクリックし、「ポリシー・セット・サマリー」ページを表示します。

  10. ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。

WLSTの使用

既存のポリシー・セットからポリシー・セットを作成するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  3. clonePolicySetコマンドにより、既存のポリシー・セットを使用してポリシー・セットを作成します。

    clonePolicySet(name, source, [attachTo=None,] [description=None], [enable='true'])
    

    この場合:

    • nameは、新しいクローンのポリシー・セットの名前を表します。

    • sourceは、クローンを作成するポリシー・セットの名前を指定します。

    • attachToは、ポリシー・セットをアタッチするリソースのスコープを表します。この引数を指定する場合、サポートされた形式で有効なリソース・スコープを定義するサポートされた式を使用する必要があります。リソース・スコープに正確な名前を入力する必要はありません。次の例に示すように、ワイルドカードを使用できます。詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

      この引数を指定しない場合、リソース・スコープの識別のためにソース・ポリシー・セットで使用されている式が保持されます。また、手順5に従って、attachPolicySetコマンドを使用してリソース・スコープを変更することもできます。

    • descriptionは、クローンのポリシー・セットの説明を提供するオプションの引数を表します。

    • enableは、ポリシー・セットが有効か無効かを指定します。この引数はオプションです。

    たとえば、ポリシー・セットのクローンを作成するには、次のようにします。

    wls:/jrfServer_domain/serverConfig>clonePolicySet
    ('app-only-web-service-policies','all-domains-default-web-service-policies',
     None, 'Default policies for application jaxws-sut')
    
    The policy set was cloned successfully in the session.
    

    この例では、attachTo引数が指定されていないことに注意してください。

    このコマンドの引数の詳細は、『WebLogic Scripting Toolコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。

  4. 必要に応じて、displayPolicySetコマンドを使用してポリシー・セットの構成を表示します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> displayPolicySet()
     
    Policy Set Details:
    -------------------
    Name:                app-only-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("jrfServer_domain")
    Description:         Default policies for application jaxws-sut
    Enabled:             true
    Policy Reference:    security : oracle/wss11_saml_or_username_token_with_message_protection_service_policy, enabled=true
    
  5. アタッチメントのリソース・スコープを変更するには、attachPolicySetコマンドを使用します。

    attachPolicySet(expression)
    

    この場合:

    • expressionは、ポリシー・セットで定義されたリソース・タイプに有効であるリソース・スコープをサポートされた形式で定義するサポートされた式です。たとえばSOAリソース・タイプでは、アプリケーションとなるリソース・スコープを定義できません。SOAリソース・タイプでサポートされるリソース・スコープは、ドメイン、サーバーおよびコンポジットです。


      注意:

      信頼できない結果が発生する可能性があるため、サーバー・スコープの使用はお薦めできません。


      詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

    たとえば、jaxws-sutという名前のアプリケーションにのみポリシー・セット内のポリシーをアタッチするには、次のコマンドを入力します。

    wls:/jrfServer_domain/serverConfig> attachPolicySet('Application("jaxws-sut")')
     
    Scope of resources updated.
    
  6. 必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。

  7. 必要に応じて、displayPolicySetコマンドを使用してクローンのポリシー・セットの構成を表示します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>displayPolicySet() 
    
    Policy Set Details:
    -------------------
    Name:                app-only-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Application("jaxws-sut")
    Description:         Default policies for application jaxws-sut
    Enabled:             true
    Policy Reference:    security : oracle/wss11_saml_or_username_token_with_message_protection_service_policy, enabled=true
    
  8. commitRepositorySessionコマンドを使用して、リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行います。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>commitRepositorySession()
    The policy set app-only-web-service-policies is valid.
    Creating policy set app-only-web-service-policies in repository.
     
    Repository session committed successfully.
    

    また、セッション中にリポジトリに加えたすべての変更を破棄するabortRepositorySessionコマンドを使用することにより、すべての変更を取り消すことができます。

WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

ポリシー・セットの編集

次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)のいずれかを使用して既存のポリシー・セットを編集する方法について説明します。

Fusion Middleware Controlの使用

既存のポリシー・セットを編集するには:

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページで、編集するポリシー・セットを選択し、「編集」をクリックします。

  3. 「一般情報の入力」ページで、「有効」チェック・ボックスを選択するか、その選択を解除して、ポリシー・セットを有効または無効にします。また、ポリシー・セットの説明を編集できます。

    「名前」フィールドおよび「リソース・タイプ」フィールドが読取り専用であることに注意してください。

  4. 「次へ」をクリックします。

  5. 「リソース・スコープの入力」ページで、必要に応じてスコープを変更し、「次へ」をクリックします。

  6. 「制約の入力」ページで、必要に応じて制約を指定するか、または既存の制約を変更します。「制約の更新」をクリックし、「次へ」をクリックします。

    制約の指定の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。

  7. 「ポリシー参照の追加」ページで、必要に応じてポリシー・アタッチメントを変更します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。

  8. 「次へ」をクリックし、「ポリシー・セット・サマリー」ページを表示します。

  9. ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。

WLSTの使用

ポリシー・セットを編集するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  3. modifyPolicySetコマンドを使用して、編集する既存のポリシー・セットを選択します。

    modifyPolicySet(name)
    

    名前付きポリシー・セットの最新バージョンが現在のセッションにロードされます。たとえば、ポリシーを追加するためにポリシー・セットを編集するには、次のコマンドを使用します。

    wls:/jrfServer_domain/serverConfig> modifyPolicySet('all-domains-default-web-service-policies')
     
    The policy set is ready for modification in the session.
    
  4. 必要応じて、ポリシー・セットを編集します。たとえば、次のようにします。

    • ポリシー・セットにポリシーを追加するには、attachPolicySetPolicyコマンドを使用して、uri引数で指定するURIによりポリシーを識別します。

      attachPolicySetPolicy(uri)
      

      oracle/wss_saml_or_username_token_service_policyポリシーおよびoracle/log_policyポリシーをポリシー・セットに追加するには、次のコマンドを入力します。

      wls:/jrfServer_domain/serverConfig> attachPolicySetPolicy('oracle/wss_saml_or_username_token_service_policy')
      
      Policy reference added.
      
      wls:/jrfServer_domain/serverConfig>attachPolicySetPolicy('oracle/log_policy')
      
      Policy reference added.
      
    • ポリシー・セットからポリシーを削除するには、detachPolicySetPolicyコマンドを使用して、uri引数で指定するURIによりポリシーを識別します。

      detachPolicySetPolicy(uri)
      

      ポリシー・セットからoracle/wss11_saml_or_username_token_with_message_protection_service_policyを削除するには、次のように入力します。

      wls:/jrfServer_domain/serverConfig> detachPolicySetPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy')
      
      Policy reference removed.
      
    • ポリシー・セット内でポリシー・アタッチメントを有効または無効にするには、enablePolicySetPolicyコマンドを使用して、uri引数で指定するURIによりポリシーを識別します。

      enablePolicySetPolicy(uri,[enable=true])
      

      デフォルトはtrueです。

      oracle/log_policyを無効にするには、次のように入力します。

      wls:/jrfServer_domain/serverConfig> enablePolicySetPolicy('oracle/log_policy',false)
      
      Policy reference disabled.
      
  5. 必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。

  6. ValidatePolicySetコマンドを使用してポリシー・セットを検証します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> validatePolicySet()
     
    The policy set app-only-web-service-policies is valid.
    
  7. 必要に応じて、displayPolicySetコマンドを使用して、変更後のポリシー・セットを表示します。

    wls:/jrfServer_domain/serverConfig>displayPolicySet()
    
    Policy Set Details:
    -------------------
    Name:                all-domains-default-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("*")
    Description:         Default policies for web services in any domain
    Enabled:             true
    Policy Reference:    security : oracle/wss_saml_or_username_token_service_policy, enabled=true
                         management : oracle/log_policy, enabled=false
    
  8. リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行うために、commitRepositorySessionコマンドを使用します。

    wls:/jrfServer_domain/serverConfig> commitRepositorySession()
     
    The policy set all-domains-default-web-service-policies is valid.
    Updating policy set all-domains-default-web-service-policies in repository.
     
    Repository session committed successfully.
    

    また、セッション中にリポジトリに加えたすべての変更を破棄するabortRepositorySessionコマンドを使用することにより、すべての変更を取り消すことができます。

WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

リソースのタイプおよびスコープの定義

リソース・タイプ(つまり、サブジェクト・タイプ)は、ポリシー・セットが適用されるエンドポイントのタイプを識別します。これは、ポリシー・セットのappliesTo属性にマッピングされます。

リソース・スコープ式は、ポリシー・セットがアタッチされるポリシー・サブジェクト・セットを識別します(0個、1個または多数個が可能です)。これは、ポリシー・セットのattachTo属性にマッピングされ、複数のポリシー・セットが存在する場合に競合の解決に使用されます。ポリシー・セットでの競合の解決に関する詳細は、「ポリシーの有効セットの計算方法」を参照してください。

リソース・セット全体でグローバルにポリシーをアタッチするには、ポリシー・セットが適用されるポリシー・サブジェクトのタイプ、およびエンタープライズのトポロジ内のリソース・スコープを指定する必要があります。

リソース・タイプ

Fusion Middleware Controlで、ポリシー・セットを作成しているときに、メニューからリソース・タイプを選択します。WLSTを使用してポリシー・セットを作成する場合、こうしたリソース・タイプに対応する特定の略語を使用する必要があります。表9-1に、Fusion Middleware Controlで選択したリソースのタイプ、WLSTで必要な略語および各リソース・タイプに有効なリソース・スコープをリストします。


注意:

サーバー・インスタンス・スコープを使用すると信頼できない結果が発生する可能性があるため、特にクラスタを含む複数サーバーにターゲット指定されたアプリケーションではお薦めしません。


表9-1 ポリシー・サブジェクトのリソース・タイプ

Fusion Middleware Control
WLST 有効なリソース・スコープ

非同期コールバック・クライアント

ws-callback

  • ドメイン

  • アプリケーション

  • アプリケーション・モジュール

  • Webサービス・エンドポイント

  • ポート

RESTリソース

rest-resource

  • ドメイン

  • アプリケーション

  • モジュール

  • サービス

注意: サーバー・インスタンスは、RESTfulリソースの有効なリソース・スコープではありません。

SOAコンポーネント

sca-component

  • ドメイン

  • SOAパーティション

  • SOAコンポジット

  • SOAコンポーネント

SOA参照

sca-reference

  • ドメイン

  • SOAパーティション

  • SOAコンポジット

  • SOA参照

  • ポート

SOAサービス

sca-service

  • ドメイン

  • SOAパーティション

  • SOAコンポジット

  • SOAサービス

  • ポート

Webサービス・クライアント

ws-client

  • ドメイン

  • アプリケーション

  • アプリケーション・モジュール

  • Webサービス・クライアント

  • ポート

Webサービス接続

ws-connection

  • ドメイン

  • アプリケーション

  • アプリケーション・モジュール

  • SOA参照またはWebサービス・クライアント

  • ポート

Webサービス・エンドポイント

ws-service

  • ドメイン

  • アプリケーション

  • アプリケーション・モジュール

  • Webサービス・エンドポイント

  • ポート


リソース・スコープ

Fusion Middleware Controlで、リソース・スコープに関連付けられている名前を表すパターン文字列を入力することにより、スコープを指定します。たとえば、ドメイン内のすべてのWebサービス・エンドポイントにポリシー・セットをアタッチするには、「ドメイン名」フィールドにドメインの名前を表すパターンを入力します。WLSTでリソース・スコープを指定する場合、各スコープについてサポートされる式を使用する必要があります。サポートされる式は、表9-2を参照してください。こうした式は、次の引数で必要になります。

  • createPolicySetコマンドおよびclonePolicySetコマンドのattachTo引数

  • attachPolicySetコマンドのexpression引数

Fusion Middleware ControlおよびWLSTの両方について、名前全体またはワイルドカードを使用した部分値を入力できます。該当位置で任意の数の文字に一致するワイルドカード文字としてアスタリスク(*)を文字列内の任意の場所で使用できます。また、文字列内の任意の位置で複数のワイルドカードを指定できます。たとえば、ドメイン名jrf_domainに対しては、jrf*、*rf*domain、または任意の個数の組合せを入力できます。1つのスコープについて1つのパターンのみを提供する必要があります。リソース・スコープについてパターン文字列を指定しない場合、アスタリスク(*)が想定されます。一重引用符または二重引用符を使用できます。複数の値を指定した場合、ポリシー・サブジェクトにアタッチすることが考慮されているポリシー・セットにすべての式が一致する必要があります。

次に、リソース・スコープについてサポートされる式のリストを示します。

表9-2 リソース・スコープについてサポートされる式

サポートされる式 説明

Domain("expression")

この値は、デプロイされた管理ドメインに基づくポリシー・サブジェクトに一致します。

Server("expression")

この値は、デプロイされたサーバー・インスタンスに基づくポリシー・サブジェクトに一致します。

注意: このスコープを使用すると信頼できない結果が発生する可能性があるため、特にクラスタを含む複数サーバーにターゲット指定されたアプリケーションではお薦めしません。

Application("expression")

この値は、配置されたアプリケーションの名前に基づくポリシー・サブジェクトに一致します。

Partition('expression")

この値は、配置されたパーティションの名前に基づくポリシー・サブジェクトに一致します。

Module("expression")

この値は、配置されたアプリケーション・モジュールの名前に基づくポリシー・サブジェクトに一致します。

Composite("expression")

この値は、配置されたSOAコンポジットの名前に基づくポリシー・サブジェクトに一致します。

注意: コンポジットの場合、式ではコンポジットの名前のみを使用すべきです。次に例を示します。

Composite("*Basic_SOA_Client*")

式には、SOAパーティションまたはコンポジット・リビジョン番号を含めないでください。

Reference("expression")

この値は、配置された参照の名前に基づくポリシー・サブジェクトに一致します。

Service("expression")

この値は、配置されたサービスの名前に基づくポリシー・サブジェクトに一致します。

注意: Webサービス・エンドポイントおよびWebサービス・クライアントのリソース・タイプ(ws-serviceおよびws-client)では、式にネームスペースおよびサービス名を含める必要があります。次に例を示します。

Service("{http://mynamespace/}myService")

PS5の前にアセンブルされたアプリケーションでは、listWebServices出力またはサービス名が表示されるFusion Middleware Controlにネームスペースが表示されません。この場合、「Webサービスのネームスペースの決定」の説明に従ってネームスペースを決定できます。

Component("expression")

この値は、配置されたコンポーネントの名前に基づくポリシー・サブジェクトに一致します。

Port("expression")

この値は、配置されたポートの名前に基づくポリシー・サブジェクトに一致します。


Webサービスのネームスペースの決定

PS5の前にアセンブルされたアプリケーションでは、WLSTコマンドの出力またはサービス名が表示されるFusion Middleware Controlにネームスペースが表示されません。Webサービス・エンドポイントおよびWebサービス・クライアントのリソース・タイプ(ws-serviceおよびws-client)のリソース・スコープとしてサービスを指定するには、サービス名にネームスペースを含める必要があります。WebサービスのWSDLドキュメントからサービスのネームスペースを決定できます。これを行うには、次の手順を実行します。

  1. 「WebサービスWSDLドキュメントの表示」の説明に従って、Webサービス・エンドポイントのWSDLドキュメントを表示します。

  2. WSDLドキュメントで、サービスのターゲット・ネームスペースを含むwsdl:definitions要素を特定します。

    たとえば、TestService WSDLで、次のようにします。:

    http://host:7001/jaxws-service/TestService?WSDL
    

    次のwsdl:definitions要素が含まれます。

    <wsdl:definitions name="TestService"targetNamespace="http://service.jaxws.wsm.oracle/">
    

完全なサービス名を指定するには、ネームスペースとサービス名を組み合せます。前記の例では、完全なサービス名は次のようになります。

{http://service.jaxws.wsm.oracle/}TestService

次の例では、様々なリソース・タイプおよびスコープを使用してポリシー・セットを作成する方法を示しています。

例9-1では、非同期コールバック・クライアント(ws-callback)リソース・タイプのポリシー・セットを作成しています。この例では、ポリシー・セットが特定のアプリケーション・スコープにアタッチされ、フィルタ条件(Domain AND Application)を満たすすべてのサービスに適用されます。

例9-1 非同期コールバック・クライアント・リソース・タイプのポリシー・セット

beginRepositorySession()
createPolicySet('Async callback client', 'ws-callback',
 'Domain('FinancialDomain') and Application('Expense*')',
'Global policy for asynchronous callback client', true)
attachPolicySetPolicy('oracle/wss10_saml_token_client_policy')
validatePolicySet()
commitRepositorySession()
displayPolicySet('Async callback client')

例9-2では、Webサービス接続(ws-connection)リソース・タイプのweb_connection_cost_serviceという名前のポリシー・セットを作成しています。この例では、ポリシー・セットが特定のアプリケーション・モジュール・スコープにアタッチされ、フィルタ条件(Domain AND Application AND Module)を満たすすべてのサービスに適用されます。

例9-2 Webサービス接続リソース・タイプのポリシー・セット

beginRepositorySession()
createPolicySet('web_connection_cost_service', 'ws-connection',
 'Domain("SCMDomain") and and Application("ScmCst*") and Module("*Costs")', enable=true)
attachPolicySetPolicy('oracle/wss10_saml_token_client_policy')
validatePolicySet()
commitRepositorySession()
displayPolicySet('web_connection_cost_service')

ポリシー・セットの検証

ポリシー・セットの検証では、ポリシー・セットが「ポリシー・サブジェクトの検証」に記載されたルールに準拠するかどうかの検証に加えて、次のチェックも実行されます。


注意:

ポリシー・アタッチメント間に競合が存在しないことを確認するために、Fusion Middleware ControlおよびWLSTコマンドを使用して、Webサービス・エンドポイントに有効でセキュアな構成が含まれるかどうかを判断できます。詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。

トラブルシューティングの詳細は、「WLSTを使用したポリシー・アタッチメントの問題の診断」を参照してください。


グローバルにアタッチされたポリシーの構成プロパティのオーバーライド

ポリシー・セットで参照されたポリシーにオーバーライド可能プロパティが含まれる場合、Fusion Middleware ControlまたはWLSTのいずれかを使用して、該当ポリシー・セットのプロパティの既存値をオーバーライドできます。

Fusion Middleware Controlの使用

ポリシー・セットで参照されたポリシーの構成プロパティをオーバーライドするには:

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページから、オーバーライドを構成するポリシーを含むポリシー・セットを選択します。

    オーバーライド可能プロパティを含むポリシーをポリシー・セットで参照している場合、図9-7に示すように、「ポリシー構成のオーバーライド」ボタンが表示されます。

    図9-7 ポリシー・セットの「ポリシー構成のオーバーライド」ボタン

    図9-7の説明が続きます
    「図9-7 ポリシー・セットの「ポリシー構成のオーバーライド」ボタン」の説明"

  3. 「ポリシー構成のオーバーライド」を選択します。

    図9-8に示すように、「ポリシー構成のオーバーライド」ページが表示されます。

    図9-8 ポリシー・セットの「ポリシー構成のオーバーライド」ページ

    図9-8の説明は次にあります。
    「図9-8 ポリシー・セットの「ポリシー構成のオーバーライド」ページ」の説明

  4. 「ポリシー参照」表で、構成プロパティをオーバーライドするポリシーを選択します。ポリシーにオーバーライド可能プロパティが含まれる場合、「ポリシー構成のオーバーライド」ボタンが表示されます。

  5. 「ポリシー構成のオーバーライド」を選択します。「セキュリティ構成の詳細」ページに、選択したポリシーでオーバーライドできる構成プロパティのリストが表示されます。

    図9-9に、oracle/wss11_saml_or_username_token_with_message_protection_service_policyのオーバーライド可能プロパティを示します。

    図9-9 ポリシー・セットの「セキュリティ構成の詳細」ページ

    図9-9の説明が続きます。
    「図9-9 ポリシー・セットの「セキュリティ構成の詳細」ページ」の説明

  6. プロパティの「値」フィールドにオーバーライド値を入力し、「適用」をクリックします。

    ポリシー・セットが適用されるすべてのエンドポイントで、プロパティがオーバーライドされます。

構成オーバーライドおよびオーバーライドできるプロパティの詳細は、次の項を参照してください。

WLSTの使用

setPolicySetPolicyOverrideコマンドを使用して、ポリシー・セットで参照されているポリシー内の構成オーバーライドを指定できます。このコマンドは、リポジトリ・セッションのコンテキストでポリシー・セットの作成または変更中にのみ使用できます。次の手順は、既存のポリシー・セットの編集中に構成のオーバーライドを指定する方法ですが、新しいポリシー・セットを作成するか、既存のポリシー・セットからポリシー・セットを作成するときにリポジトリ・セッションでこのコマンドを使用することもできます。

  1. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  2. modifyPolicySetコマンドを使用して、編集する既存のポリシー・セットを選択します。

    modifyPolicySet(name)
    

    名前付きポリシー・セットの最新バージョンが現在のセッションにロードされます。たとえば、次のコマンドを入力します。

    wls:/jrfServer_domain/serverConfig> modifyPolicySet('all-domains-default-web-service-policies')
     
    The policy set is ready for modification in the session.
    
  3. 必要に応じて、displayPolicySetコマンドを使用してポリシー・セットの構成を表示します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>displayPolicySet() 
    
    Policy Set Details:
    -------------------
    Name:                all-domains-default-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("*")
    Description:         Default policies for web services in any domain
    Enabled:             true
    Policy Reference:    security : oracle/wss_saml_or_username_token_service_policy, enabled=true
                         management : oracle/log_policy, enabled=false
    
  4. setPolicySetPolicyOverrideコマンドを使用して、構成オーバーライドを指定します。

    たとえば、reference.priorityプロパティの構成オーバーライドを指定するには、次のコマンドを入力します。

    wls:/jrfserver_domain/serverConfig>setPolicySetPolicyOverride('oracle/wss_saml_or_username_token_service_policy',
    'reference.priority','1')
    
    The configuration override property "reference.priority" having value "1" has
    been added to the reference to policy with URI "oracle/wss_saml_or_username_token_service_policy".
    
  5. 必要に応じて、ポリシー・セットの構成を表示します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig>displayPolicySet() 
    
    Policy Set Details:
    -------------------
    Name:                all-domains-default-web-service-policies
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("*")
    Description:         Default policies for web services in any domain
    Enabled:             true
    Policy Reference:    security : oracle/wss_saml_or_username_token_service_policy, enabled=true
                         reference.priority=1
                         management : oracle/log_policy, enabled=false
    

    reference.priority構成オーバーライドが出力に表示されるようになったことに注意してください(前記の例の太字の部分)。

  6. ValidatePolicySetコマンドを使用してポリシー・セットを検証します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> validatePolicySet()
     
    The policy set all-domains-default-web-service-policies is valid.
    
  7. リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行うために、commitRepositorySessionコマンドを使用します。

    wls:/jrfServer_domain/serverConfig> commitRepositorySession()
     
    The policy set all-domains-default-web-service-policies is valid.
    Updating policy set all-domains-default-web-service-policies in repository.
     
    Repository session committed successfully.
    

ポリシー・セットの実行時制約の指定

アプリケーションは、外部および内部の両方のクライアントに同じサービスを公開する環境にデプロイできます。こうした環境では多くの場合、クライアントの場所に基づいて様々なセキュリティ動作を強制することが適切です。

たとえば、Webサービスをホストする単一のFusion Middlewareサーバー(WebLogic Server)から構成される環境では、2つの別個のネットワークからのHTTPリクエストをリスニングするために、フロント・エンドでOracle HTTP Serverが構成されます。この一方のネットワークはすべてのプライベート内部リクエストを転送するために使用され、他方のネットワークはすべての外部リクエストを転送するために使用されます。外部ネットワークによるアクセスは、ファイアウォールを経由します。内部ネットワークに対する物理アクセスは高度に制限されるので、このネットワークからのリクエストはすでに保護されています。したがって、認証および認可を強制することのみが必要です。メッセージ保護を強制しないことによって、サーバー上の負荷が軽減され、パフォーマンスが向上します。しかし、外部ネットワークからのすべてのリクエストは、誰でもアクセスできる可能性があるので、保護されていないものとみなされます。この場合、認証と認可に加えて、メッセージ保護(機密保護と整合性)を強制する必要があります。こうしたリクエストのパフォーマンスは低下しますが、それに代わる結果(データ・リーク、リプレイ攻撃など)はさらに悪いために、容認できるものとみなされます。

管理者は、外部ネットワークに対してポリシー・セットの適切な適用を確実に行うために、ポリシー・セットが評価される制約式を指定する必要があります。この式の値は、ポリシー・セットが関連する実行時のコンテキストを示します。

制約式では、有効なヘッダー名および値を指定する必要があります。このリリースでは、次の式が動作することが確認されています。


注意:

実行時制約関数HTTPHeaderは、Oracle HTTP Serverがフロント・エンドで構成されており、なおかつOracle HTTP Server管理者がリクエストにカスタムVIRTUAL_HOST_TYPEヘッダーを追加している場合にのみ、その使用が認定されています。リクエストへのヘッダーの追加に関する詳細は、「リクエスト・オリジンを指定するためのOracle HTTP Serverの構成」を参照してください。この手順ではoracle/whitelist_authorization_policyを引用していますが、これは実行時制約のリクエスト・オリジンの指定にも該当します。


制約を指定する場合は、次のルールが適用されます。

図9-10は、3つの異なるポリシー・セットで制約を使用して決定された外部および非外部のリクエストに対して有効なポリシーを示しています。

図9-10 実行時制約を含むポリシー・セットに対して有効なポリシー計算

図9-10の説明が続きます
「図9-10 実行時制約を含むポリシー・セットに対して有効なポリシー計算」の説明

Fusion Middleware Controlの使用

ポリシー・セット・ウィザードを使用してポリシー・セットの作成、編集またはクローンの作成を行う場合に、実行時制約を指定できます。ポリシー・セットのスコープを指定した後、「制約の入力」ページが表示されます。指定の制約を含むポリシー・セットを編集しているか、またはそのクローンを作成している場合、 図9-11に示すように、ポリシー・セットで現在構成されている制約が表示されます。新しいポリシー・セットを作成している場合は、これらのフィールドは空白になります。

図9-11 ポリシー・セット・ウィザードでの制約ページの入力

図9-11の説明が続きます
「図9-11 ポリシー・セット・ウィザードでの制約ページの入力」の説明

制約を指定するには:

  1. ページ上の「制約式詳細」セクションで、「有効」チェック・ボックスを選択して制約を有効にします。

  2. 必要に応じて、制約を反転するために「! (NOT)演算子」を選択します。

  3. 「HTTPヘッダー名」フィールドおよび「HTTPヘッダー値」フィールドにそれぞれ、HTTPHeader制約関数のヘッダー名およびヘッダー値を入力します。制約が有効である場合、「HTTPヘッダー名」フィールドが必要です。

    たとえば、図9-11に示すように、外部クライアントにのみ適用される制約を指定するには、「HTTPヘッダー名」フィールドに「VIRTUAL_HOST_TYPE」と入力し、「HTTPヘッダー値」フィールドに「External」と入力します。

  4. 「制約の更新」をクリックします。

    制約式が「制約」フィールドに表示されます(例: HTTPHeader('VIRTUAL_HOST_TYPE','External')など)。

WLSTの使用

setPolicySetConstraintコマンドを使用して、ポリシー・セット内の制約を指定できます。このコマンドは、リポジトリ・セッションのコンテキストでポリシー・セットの作成または変更中にのみ使用できます。

次の手順は、新しいポリシー・セットの作成中に実行時制約を指定する方法ですが、既存のポリシー・セットを編集するか、既存のポリシー・セットから新しいポリシー・セットを作成するときにリポジトリ・セッションでsetPolicySetConstraintコマンドを使用することもできます。

  1. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  2. 新しいポリシー・セットを作成するためにcreatePolicySetコマンドを使用します。

    たとえばこのために、ドメイン・スコープで外部クライアントに認証およびメッセージ保護を提供するポリシー・セットを作成するには、次のようにします。

    wls:/jrfServer_domain/serverConfig>createPolicySet('domainExternal',
    'ws-service','Domain("*")','Authentication and message protection at domain scope for external clients')
    
    The policy set was created successfully in the session.
    

    WLSTを使用したポリシー・セットの作成の詳細は、「ポリシー・セットの作成」「WLSTの使用」を参照してください。

  3. attachPolicySetPolicyコマンドを使用して、現在のポリシー・セットにポリシーをアタッチします。

    たとえば、ポリシー・セットで指定されたサブジェクトにポリシー'oracle/wss10_message_protection_service_policy'をアタッチするには、次のコマンドを入力します。

    wls:/jrfServer_domain/serverConfig>attachPolicySetPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy
    
    Policy reference added.
    
  4. setPolicySetConstraint(constraint)コマンドを使用して、実行時制約を指定します。constraint引数では、サポートされた形式で有効な実行時制約を定義するサポートされた式を使用する必要があります。このリリースでは、次の式が動作することが確認されています。

    • HTTPHeader("VIRTUAL_HOST_TYPE","External")

    • !HTTPHeader("VIRTUAL_HOST_TYPE","External")

    たとえば、外部クライアントにのみ適用される制約を指定するには、次のコマンドを入力します。

    wls:/jrfServer_domain/serverConfig>setPolicySetConstraint('HTTPHeader("VIRTUAL_HOST_TYPE","External")')
    
    Constraint updated.
    
  5. 必要に応じて、displayPolicySetコマンドを使用して、現在のリポジトリ・セッション中のポリシー・セットの構成を表示します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig>displayPolicySet() 
    
    Policy Set Details:
    -------------------
    Name:                domainExternal
    Type of Resources:   Web Service Endpoint
    Scope of Resources:  Domain("em_domain")
    Constraint:          HTTPHeader("VIRTUAL_HOST_TYPE","External")
    Description:         Authentication and message protection at domain scope for external clients
    Enabled:             true
    Policy Reference:    security : oracle/wss11_saml_or_username_token_with_message_protection_service_policy, enabled=true
    
  6. commitRepositorySessionコマンドを使用して、リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行います。

    wls:/jrfServer_domain/serverConfig> commitRepositorySession()
    
    The policy set domainMsgExternal is valid.
    Creating policy set domainMsgExternal in repository.
    Repository session committed successfully.
    

グローバルにアタッチされたポリシーの無効化

特定のエンドポイントに対してグローバルにアタッチされたポリシーを無効にする場合のために、いかなる動作も強制しない事前定義済ポリシーがFusion Middlewareインストールに含まれています。無効にするポリシーと同じカテゴリのアサーションを含むこうした事前定義済ポリシーのいずれかをアタッチすることによって、グローバルにまたは外部からアタッチされたポリシーを無効にできます。エンドポイントに直接、またはグローバルに、アプリケーションやモジュール・レベルなどの下位のスコープで、動作無効ポリシーをアタッチできます。デフォルトでは、直接アタッチされたポリシーは、グローバルにアタッチされたポリシーよりも優先され、下位のスコープでグローバルにアタッチされたポリシーは、上位のスコープでグローバルにアタッチされたポリシーよりも優先されます。詳細は、「ポリシーの有効セットの計算方法」を参照してください。

たとえば、ドメイン内のすべてのサービス・エンドポイントに認証ポリシーがグローバルにアタッチされている場合、エンドポイントに直接oracle/no_authentication_service_policyをアタッチすることにより、特定のWebサービス・エンドポイントについて認証ポリシーを無効にできます。また、ドメイン内のアプリケーションについてのみ認証ポリシーを無効にするために、アプリケーション内のサービス・エンドポイントにのみoracle/no_authentication_service_policyをアタッチするポリシー・セットを作成できます。


注意:

無効にしているグローバルにアタッチされたポリシーに他のアサーションが含まれる場合、それらのアサーションもまた無効になります。たとえば、無効にするグローバル・ポリシーがoracle/wss10_saml_token_with_message_protection_client_policyであり、下位スコープで(または直接)エンドポイントに動作無効のoracle/no_authentication_service_policyをアタッチした場合、グローバルにアタッチされたポリシーの認証およびメッセージ保護のアサーションがともに無効になります。


エンドポイントへの直接的なポリシーのアタッチに関する詳細は、「単一のサブジェクトへのポリシーの添付」を参照してください。動作無効ポリシーの詳細は、「動作無効ポリシー」を参照してください。


注意:

こうした動作無効ポリシーは削除しないでください。これらのポリシーは、いずれも同じno_behaviorアサーションを使用します。アサーション・テンプレートは提供されていないので、これらのポリシーを削除した場合、手動で再作成する方法はありません。誤って削除した場合、リストアする唯一の方法はリポジトリを再構築することです。詳細は、「Oracle WSMリポジトリの再構築」を参照してください。


ポリシー・セットの有効化および無効化

次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)のいずれかを使用してポリシー・セットを有効または無効にする方法について説明します。

Fusion Middleware Controlの使用

Fusion Middleware Controlを使用してポリシー・セットを有効または無効にするには、「ポリシー・セットの編集」の説明に従ってポリシー・セットを編集します。ポリシー・セットが無効な場合にそれを有効にするには、「有効」チェック・ボックスを選択します。ポリシー・セットを無効にするには、「有効」チェック・ボックスの選択を解除します。

残る手順では「次へ」をクリックし、「保存」をクリックして更新されたポリシー・セットを保存します。

図9-12 ポリシー・セットの有効化および無効化

図9-12の説明が続きます
「図9-12 ポリシー・セットの有効化および無効化」の説明

WLSTの使用

ポリシー・セットを有効または無効にするには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  3. modifyPolicySetコマンドを使用して、変更するポリシー・セットを指定します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> modifyPolicySet('all-domains-default-web-service-policies')
     
    The policy set is ready for modification in the session.
    
  4. enablePolicySetコマンドを使用して、ポリシー・セットを有効または無効にします。

    enablePolicySet([enable=true])
    

    ポリシー・セットが無効な場合に、ポリシー・セットを有効にするために、enable引数をtrueに設定します。デフォルトはtrueです。ポリシー・セットを無効にするには、enable引数をfalseに設定します。

    たとえば、ポリシー・セットを無効にするには、次のようにします。

    wls:/jrfServer_domain/serverConfig> enablePolicySet(false)
     
    Policy set disabled.
    
  5. ValidatePolicySetコマンドを使用してポリシー・セットを検証します。

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> validatePolicySet()
     
    The policy set app-only-web-service-policies is valid.
    
  6. リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行うために、commitRepositorySessionコマンドを使用します。

    wls:/jrfServer_domain/serverConfig> commitRepositorySession()
     
    The policy set all-domains-default-web-service-policies is valid.
    Updating policy set all-domains-default-web-service-policies in repository.
     
    Repository session committed successfully.
    

    また、セッション中にリポジトリに加えたすべての変更を破棄するabortRepositorySessionコマンドを使用することにより、すべての変更を取り消すことができます。

WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

ポリシー・セットの削除

次の項では、Fusion Middleware Controlまたはコマンドライン・インタフェースWebLogic Scripting Tool (WLST)を使用してポリシー・セットを削除する方法について説明します。

Fusion Middleware Controlの使用

ポリシー・セットを削除するには:

  1. 「「ポリシー・セット・サマリー」ページへの移動」の説明に従って、「ポリシー・セット・サマリー」ページに移動します。

  2. 「ポリシー・セット・サマリー」ページで、表からポリシー・セットを選択し、「削除」をクリックします。

  3. 削除の確認を要求するダイアログ・ボックスが表示されます。「OK」をクリックします。

WLSTの使用

リポジトリ内のポリシー・セットを削除するために、次のコマンドを使用できます。

  • deletePolicySet—リポジトリ・セッションのコンテキスト内で個別のポリシー・セットを削除します。

  • deleteAllPolicySets—リポジトリ内で選択したポリシー・セットまたはすべてのポリシー・セットを削除します。このコマンドは、リポジトリ・セッションの内部または外部で使用できます。

リポジトリ・セッション内で個別のポリシー・セットを削除するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. beginRepositorySessionコマンドを使用してリポジトリ・セッションを開始します。

    たとえば、次のようにします。

    wls:/jrfserver_domain/serverConfig> beginRepositorySession()
    
    Repository session begun.
    
  3. 必要に応じて、listPolicySetsコマンドを使用してリポジトリ内のポリシー・セットをリストします。

    wls:/jrfServer_domain/serverConfig> listPolicySets()
     
    Global Policy Sets in Repository:
      app-only-web-service-policies
      all-domains-default-web-service-policies
    
  4. deletePolicySetコマンドを使用して目的のポリシー・セットを削除します。

    deletePolicySet (name)
    

    たとえば、次のようにします。

    wls:/jrfServer_domain/serverConfig> deletePolicySet('app-only-web-service-policies')
     
    The policy set was deleted successfully in the session.
    
  5. リポジトリに対して、現在のリポジトリ・セッションのコンテンツの書込みを行うために、commitRepositorySessionコマンドを使用します。

    wls:/jrfServer_domain/serverConfig> commitRepositorySession()
     
    Deleting policy set app-only-web-service-policies from repository.
     
    Repository session committed successfully.
    

    また、セッション中にリポジトリに加えたすべての変更を破棄するabortRepositorySessionコマンドを使用することにより、すべての変更を取り消すことができます。

リポジトリ内のすべてのポリシー・セットまたは選択したポリシー・セットを削除するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. 必要に応じて、listPolicySetsコマンドを使用してリポジトリ内のポリシー・セットをリストします。

    wls:/jrfServer_domain/serverConfig> listPolicySets()
     
    Global Policy Sets in Repository:
      all-domains-default-web-service-policies
      ws-1
      ws-2
    
  3. deleteAllPolicySets()コマンドを使用して目的のポリシー・セットを削除します。(force引数を使用して)すべてのポリシー・セットの削除を強制するか、削除する個別のポリシー・セットを選択するプロンプトを表示するかを指定できます。このコマンドのデフォルトはpromptモードです。

    deleteAllPolicySets(mode)
    

    たとえば、削除するポリシー・セットを指定するには、次のようにします。

    wls:/jrfServer_domain/serverConfig> deleteAllPolicySets()
    
    Starting Operation deleteAllPolicySets ...
    Policy Set Name: ws-2
    Select "ws-2" for deletion (yes/no/cancel)? yes
    Policy Set Name: all-domains-default-web-service-policies
    Select "all-domains-default-web-service-policies" for deletion (yes/no/cancel)? no
    Policy Set Name: ws-1
    Select "ws-1" for deletion (yes/no/cancel)? yes
    
    All the selected policy sets were deleted successfully from repository.
    
    deleteAllPolicySets Operation Completed. 
    

    すべてのポリシー・セットの削除を強制するには:

    wls:/jrfServer_domain/serverConfig> deleteAllPolicySets('force')
     
    Starting Operation deleteAllPolicySets ...
     
     
    All policy sets were deleted successfully from repository.
     
    deleteAllPolicySets Operation Completed. 
    

WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。

グローバル・ポリシー・アタッチメントへのダイレクト・ポリシー・アタッチメントの移行

ダイレクト(ローカル)ポリシー・アタッチメントを外部グローバル・ポリシー・アタッチメントに移行するために(両者が同じである場合)、migrateAttachments WLSTコマンドを使用できます。同じポリシー・アタッチメントを移行することにより、メンテナンスする必要のある物理的なアタッチメントの数が減少し、管理性が向上します。ダイレクト・ポリシー・アタッチメントのURIがグローバル・ポリシー・アタッチメントによって提供されるURIと同じであり、構成オーバーライドがない場合は、両者は同じです。次の移行はできません。


注意:

スコープのないオーバーライドを含むダイレクト・アタッチメントは移行されますが、スコープのあるオーバーライドを含むアタッチメントは移行されません。これは、たとえいくつかのポリシーがグローバルにアタッチされていても、migrateAttachmentsコマンドを実行した後、すべてのサブジェクトでポリシーの強制が同じまま留まるためです。


ポリシー・アタッチメントを移行するには:

  1. 「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。

  2. migrateAttachmentsコマンドを使用してアタッチメントを移行します。移行を強制するか(force)、各移行の前に確認のためのプロンプトを表示するか(prompt)、または実行される移行を単純にリストするか(preview)を指定できます。モードが指定されていない場合、デフォルトはpromptです。

    migrateAttachments(mode=None)
    

    たとえば、考えられる各アタッチメントの移行について確認のためのプロンプトをデフォルトで表示するには、次のコマンドを入力します。出力には、jaxws-sutアプリケーションについて移行可能な同じグローバル・ポリシー・アタッチメントとダイレクト・ポリシー・アタッチメントがあることに注意してください。

    wls:/jrfServer_domain/serverConfig> migrateAttachments()
     
    --------------------------------------------------------------------------------
    Application Path:    /jrfServer_domain/jrfServer/jaxws-sut-no-policy
    Web Service Name:    TestService
    Module Type:         web
    Module Name:         jaxws-service
    Port:                TestPort
     
    --------------------------------------------------------------------------------
    Application Path:    /jrfServer_domain/jrfServer/jaxws-sut
    Web Service Name:    TestService
    Module Type:         web
    Module Name:         jaxws-sut-service
    Port:                TestPort
    Policy Reference:    management : oracle/log_policy, enabled=true
                         security : oracle/wss_username_token_service_policy, enabled=true
                         (global) /policysets/global/migrate_example : oracle/wss_username_token_service_policy
     
    Migrate "oracle/wss_username_token_service_policy" (yes/no/cancel)? yes
    "oracle/wss_username_token_service_policy" was migrated successfully.
    

    このコマンドの引数の詳細は、『WebLogic Scripting Toolコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。

ポリシー・アタッチメントの優先度の指定

インストールで提供されている事前定義済ポリシーには構成のオーバーライド(reference.priority)が含まれており、これによって管理者はポリシー・アタッチメントを使用するプリファレンスを指示できます。デフォルトでは、他の値が指定されていない場合、アタッチされたポリシーは0reference.priorityを持ちます。

たとえば管理者は、ドメインのスコープでグローバルにポリシーをアタッチし、1以上のリファレンス優先度を指定することによって、ダイレクト・アタッチメントを変更する必要なく、直接アタッチされたポリシーよりも優先させることができます。管理者が特定のダイレクト・アタッチメントを例外にする場合は、そのアタッチメントのリファレンス優先度を指定し、グローバル・ポリシー・アタッチメント以上の優先度に昇格させることができます。reference.priorityについて最大の整数値を持つポリシー・アタッチメントは、それが直接または外部からアタッチされたかどうか、またはそのスコープにかかわりなく、有効なポリシー計算で優先されます。

reference.priorityには、次の値を指定できます。

詳細は、次の各項を参照してください。

エンドポイントのセキュア・ステータスの決定

グローバル・ポリシー・アタッチメントでは、開発者、アセンブラまたはデプロイヤがアタッチするポリシーを明示的に指定しなくても、すべてのサブジェクトが保護される「デフォルトでセキュア」の方針に準拠する機能を提供しています。つまり、管理者はポリシー・セットを使用することによって、ポリシーが明示的にアタッチされていない場合でも、1つ以上のポリシーが自動的に適用されることを確認できます。

管理者は、WLSTおよびFusion Middleware Controlの両方を使用して、ドメイン内のすべてのサブジェクトが保護されているかどうか、およびエンドポイント構成が有効であるかどうかを判断できます。

次の事項に注意してください。

「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接添付されたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。

Fusion Middleware Controlを使用することにより、構成が有効であるかどうか、「Webサービス・エンドポイント」ページでエンドポイントが保護されているかどうかを確認できます。図9-13に、セキュアなエンドポイントを含む有効な構成を示します。

図9-13 有効でセキュアなエンドポイント構成を含む「Webサービス・エンドポイント」ページ

図9-13の説明が続きます
「図9-13 有効でセキュアなエンドポイント構成を含む「Webサービス・エンドポイント」ページ」の説明

WLSTを使用することで、WLSTコマンドlistWebServicesおよびlistWebServiceClientsにより、エンドポイントとそのセキュア・ステータスのリストを生成できます。例9-3に示すように、detail引数をtrueに設定した場合、こうしたコマンドからの出力には、ドメイン内のすべてのアプリケーションおよびコンポジットに対するエンドポイントおよびポリシーの詳細、エンドポイントのセキュア・ステータス、構成のオーバーライドおよび制約が含まれます(エンドポイントに有効な構成がある場合)。

例9-3 有効でセキュアなエンドポイント構成を含むlistWebServicesOutput

wls:/jrfServer_domain/serverConfig> listWebServices(detail='true')

/jrfServer_domain/jrfServer_admin/jaxws-sut :
        moduleName=jaxws-sut-service, moduleType=web, serviceName={http://namespace/}TestService
        enableTestPage: true
        enableWSDL: true
 
                TestPort        http://host.example.com:9315/jaxws-sut-service/TestService
                enable: true
                enableREST: false
                enableSOAP: true
                maxRequestSize: -1
                loggingLevel: NULL
                management : oracle/log_policy, enabled=true
                security : oracle/wss_username_token_service_policy , enabled=true , effective=false
                Constraint: No Constraint
                        (global) security : oracle/wss_saml_or_username_token_service_policy, enabled=true
                                /policysets/global/all-domains-default-web-service-policies : Domain("*")
                                        reference.priority=1
                Constraint: HTTPHeader('VIRTUAL_HOST_TYPE','external')
                        (global) security : oracle/wss10_message_protection_service_policy, enabled=true
                                /policysets/global/domainExternal : Domain("*")
                Attached policy or policies are valid; endpoint is secure.

これらのWLSTコマンドの使用に関する詳細は、「WLSTを使用したドメインのWebサービスの表示」を参照してください。

ポリシーの有効セットの計算方法

Oracle WSMでは、ポリシーに含まれるアサーションのカテゴリに基づいてサブジェクトにアタッチ可能なポリシーの数が制限されます。ほとんどの場合、同じアサーション・カテゴリを含む複数のポリシーをアタッチすることは禁止されます。たとえば、認証アサーションを含む2つのポリシーを1つのポリシー・サブジェクトにアタッチすることはできませんが、認証アサーションを含む1つのポリシーと認可アサーションを含む1つのポリシーを同じサブジェクトにアタッチすることはできます。同じアサーション・カテゴリを含む複数のポリシーがサブジェクトにアタッチされており、アサーションが競合する場合、構成は無効であると判断されます。サブジェクトにアタッチできるポリシーの数および組合せに関する詳細は、「ポリシー・サブジェクトの検証」を参照してください。

ポリシーのアタッチメントを直接および外部(グローバル)の両方でサポートするために、サブジェクトに対して有効なポリシー・セットの決定で、各ポリシー内のアサーションのカテゴリが考慮されます。直接アタッチされたポリシーは、ポートまたはコンポーネントのスコープでアタッチされることに注意してください。デフォルトでは、指定のカテゴリのアサーションを含むポートまたはコンポーネントのスコープ(直接アタッチされたポリシーなど)でアタッチされたポリシーがサブジェクトにある場合、次のようにreference.priority構成オーバーライドが設定されていなければ、上位のスコープで外部ポリシー・セットによって参照されている同じカテゴリの競合アサーションを含むポリシーは、サブジェクトに対して有効なポリシー・セットから除外されます。このプロセスは、各サブジェクト・スコープで繰り返されます。狭い/下位のスコープが広い/上位のスコープよりも優先されます。スコープによって決定されるポリシー・アタッチメントの降順の優先順位は次のとおりです。

たとえば、モジュール・スコープでアタッチされたかまたは直接アタッチされたポリシーと同じカテゴリの競合アサーションがアプリケーション・スコープでのポリシー・アタッチメントに含まれる場合、そのポリシー・アタッチメントはサブジェクトに対して有効なポリシー・セットから除外されます。 リソース・スコープの詳細は、「リソースのタイプおよびスコープの定義」を参照してください。

管理者は、reference.priority構成オーバーライドを使用することによって、スコープによって決定されたデフォルトの優先度をオーバーライドし、使用されるポリシー・アタッチメントのプリファレンスを指定できます。最も高い優先度を持つポリシー・アタッチメントがそのスコープにかかわらず優先されます。

reference.priorityオーバーライドを使用する場合は、次のルールが適用されます。

ポリシー・セットに実行時制約が適用される場合、次のルールが該当します。

実行時制約の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。

ポリシー計算の有効セットでは、各ポリシー・アタッチメントのステータスが考慮されます。ポリシー、ポリシー・セット内のポリシー参照またはポリシー・セットが無効である場合、サブジェクトに対する有効なポリシー・セットから削除されます。

no reference.priorityオーバーライドを指定した場合、グローバルにアタッチされたポリシーは、下位のスコープ(たとえば、ダイレクト・アタッチメントによるポートまたはコンポーネントのスコープ)で同じカテゴリのアサーションを含むポリシーをアタッチすることによりオーバーライドできます。この特別な例として、特定のサブジェクトに対して、どのような動作も強制しない同じカテゴリのアサーションを含むポリシーをアタッチすることにより、グローバルにアタッチされたポリシーを実質的に無効にできます。どのような動作も強制しないポリシーの詳細は、「動作無効ポリシー」を参照してください。

次の例では、有効なポリシー計算の結果を示しています。


注意:

グローバル・ポリシー・アタッチメントが有効になるまでにかかる時間は、Oracle WSMポリシー・アクセッサおよびポリシー・キャッシュ・プロパティ設定によって決定されます。デフォルトでは、この遅延は最大で11分です。この遅延量を削減するために、次のキャッシュ・プロパティ設定をチューニングできます。

  • ポリシー・アクセッサ

    cache.refresh.initial、デフォルトは600000ミリ秒(10分)

    cache.refresh.repeat、デフォルトは600000ミリ秒(10分)

  • ポリシー・キャッシュ

    cache.tolerance、デフォルトは60000ミリ秒(1分)

これらのプロパティの調整の詳細は、「プラットフォーム・ポリシー・プロパティの構成」を参照してください。