この章では次の項について説明します。
次の項では、Fusion Middleware ControlおよびWebLogic Scripting Tool (WLST)を使用してWebサービスに添付されたポリシーを表示する方法について説明します。
Webサービスに添付されたポリシーを表示する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・エンドポイントを表示するWebサービスのプラス記号(+)をクリックします。
エンドポイントの名前をクリックし、特定のWebサービスの「Webサービス・エンドポイント」ページに移動します。
「OWSMポリシー」タブをクリックします。
図8-1に、グローバルに添付されたポリシーおよび直接添付されたポリシーの両方を含むOracle Infrastructure Webサービスのエンドポイントの画面表示を示します。エンドポイントの有効なポリシーのみが表示されます。エンドポイントで有効なポリシーの詳細は、「有効なポリシー・セットの算定」を参照してください。
図8-1 Oracle Infrastructure Webサービス・エンドポイントに添付されたポリシー

図8-2にWebLogic Java EEエンドポイントの画面表示を示します。エンドポイントに直接添付されているポリシーのみが表示されます。グローバルに添付されているポリシーは表示されません。
図8-2 WebLogic Java EE Webサービス・エンドポイントに添付されたポリシー

Webサービスに添付されたポリシーを表示するには、次の手順に従ってください。
|
注意: この手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
「WebサービスのカスタムWLSTコマンドへのアクセス」の説明に従って、アプリケーションがデプロイされるWebLogic Serverの実行中のインスタンスに接続します。
「アプリケーションのWebサービスの表示」の説明に従って、WLSTコマンドlistWebServicesを使用して、アプリケーションのWebサービスのリストを表示します。
listWebServicePortsコマンドを使用して、Webサービスのポート名とエンドポイントURLを表示します。
listWebServicePorts(application,moduleOrCompName,moduleType,serviceName)
たとえば、WsdlConcreteServiceのポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServicePorts("/wls-domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService") WsdlConcretePort http://host.us.oracle.com:7001/jaxwsejb/WsdlAbstract
listWebServicePoliciesコマンドを使用して、Webサービス・ポートに添付されたポリシーを表示します。
listWebServicePolicies(application,moduleOrCompName,moduleType,serviceName,subjectName)
たとえば、WsdlConcretePortポートに添付されたポリシーとポリシーのオーバーライド設定を表示するには、次のようにします。
wls:/wls_domain/serverConfig> listWebServicePolicies("/wls_domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort") WsdlConcretePort : addressing : oracle/wsaddr_policy , enabled=true management : oracle/log_policy , enabled=true security : oracle/wss_username_token_service_policy, enabled=true Attached policy or policies are valid; endpoint is secure.
サブジェクトは、ポリシーを関連付けられるエンティティです。サブジェクトには、1つ以上のポリシーを添付できます。
ポリシーが実行される順序は、サブジェクトにポリシーが添付される順序や、添付されたポリシーのリストの順序では決定されません。クライアントとWebサービス間でメッセージが受け渡される際に、ポリシー・インターセプタ・チェーン内のインターセプタの順序でポリシーが実行される順序が決定されます。
詳細は、「ポリシー実行の仕組み」を参照してください。
|
注意: クラスタ内のSOA、ADF、WebCenterの各Webサービスでは、ポリシー添付は自動的に同期化されません。クラスタ内のSOA、ADF、WebCenterの各Webサービスを使用する場合は、クラスタの各インスタンスにポリシーを添付または解除(あるいはその両方)する必要があります。この問題は、WebLogic Java EE WebサービスおよびSOAコンポジット・サービスには適用されません。 |
単一のWebサービス・エンドポイントにポリシーを添付するには、次の手順に従ってください。複数のWebサービスに同時にポリシーを添付するには、「複数のサブジェクトへのポリシーの添付(一括添付)」を参照してください。
|
注意: Fusion Middleware Controlを使用したWebLogic Java EE Webサービスへのポリシー添付の場合は、次の点に注意してください。
|
Webサービスにポリシーを添付する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・エンドポイントを表示するWebサービスのプラス記号(+)をクリックします。
エンドポイントの名前をクリックし、特定のWebサービスの「Webサービス・エンドポイント」ページに移動します。
「OWSMポリシー」タブをクリックします。
すでにエンドポイントにグローバルにおよび直接添付されているポリシーが図8-1に表示されます。
「アタッチ/デタッチ」をクリックします。
「使用可能なポリシー」リストからポリシーを選択し、「添付」をクリックします。図8-3を参照してください。
ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。図8-4を参照してください。ポリシーの詳細を確認し終わったら、「OK」をクリックします。
ポリシーの選択と添付を続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「OK」をクリックします。
「Webサービス・エンドポイント」ページの「OWSMポリシー」タブに、添付されたポリシーが表示されます。
|
注意: ポリシー・セットを使用してグローバルに添付されているポリシーと同じカテゴリのアサーションを含むポリシーを直接添付する場合、グローバルに添付されたポリシーは直接添付されたポリシーにより上書きされます。この場合、グローバルに添付されたポリシーは無効になり、エンドポイントに添付されているポリシーのリストには表示されません。有効なポリシーの詳細は、「ポリシーの有効なセットの算定」を参照してください。 |
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットまたはWebLogic Java EE Webサービス・アプリケーションでは再起動する必要はありません。
|
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
WLSTを使用して単一のWebサービスに単一のポリシーまたは複数のポリシーを添付(または解除)するには、次の手順に従ってください。
|
注意: この手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
「Webサービスに添付されたポリシーの表示」の「WLSTの使用」の説明に従って、現在ポートに添付されているポリシーのリストを表示します。
「WLSTを使用した使用可能なポリシーのリストの表示」の説明に従って、使用可能なポリシーのリストを表示します。
ポリシーを添付するには、次のいずれかを実行します。
attachWebServicePolicyコマンドを使用して、Webサービス・ポートに単一のポリシーを添付します。policyURI引数を使用して、添付するポリシーを指定します。指定したポリシーがすでに添付されているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
attachWebServicePolicy(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURI, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_service_policyをWsdlConcreteServiceのWsdlConcretePortに添付するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWebServicePolicy("/wls_domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort", "oracle/wss_username_token_service_policy")
attachWebServicePoliciesコマンドを使用して、Webサービス・ポートに複数のポリシーを添付します。policyURIs引数を使用して、添付するポリシーを指定します。このコマンドで指定したポリシーのいずれかがすでに添付されている場合は、このコマンドでその添付済ポリシーが有効になり(無効な場合)、その他のポリシーは添付されます。
attachWebServicePolicies(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURIs, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_service_policyとoracle/wsrm10_policyをWsdlConcreteServiceのWsdlConcretePortに添付するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWebServicePolicies("/wls_domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort", ["oracle/wss_username_token_service_policy","oracle/wsrm10_policy"]) Please restart application to uptake the policy changes.
|
注意: wsm-pmアプリケーションがWebLogic Serverにインストールされており、使用可能は場合は、policyURIsはOracle WSM Policy Manager APIにより検証されます。ポリシーの検証が失敗した場合、メッセージが表示されてコマンドは実行されません。wsm-pmアプリケーションがインストールされていないか使用可能でない場合は、これらのコマンドは実行されません。 ポリシーの検証の詳細は、「ポリシー・サブジェクトの検証」を参照してください。 |
ポリシーを解除するには、次のいずれかを実行します。
detachWebServicePolicyコマンドを使用して、Webサービス・ポートから単一のポリシーを解除します。policyURI引数を使用して、解除するポリシーを指定します。
detachWebServicePolicy(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURI, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_service_policyをWsdlConcreteServiceのWsdlConcretePortから解除するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServicePolicy("/wls_domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort", "oracle/wss_username_token_service_policy")
detachWebServicePoliciesコマンドを使用して、Webサービス・ポートから複数のポリシーを解除します。policyURIs引数を使用して、解除するポリシーを指定します。
detachWebServicePolicies(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURIs, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_service_policyとoracle/wsrm10_policyをWsdlConcreteServiceのWsdlConcretePortから解除するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServicePolicies("/wls_domain/AdminServer/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort", ["oracle/wss_username_token_service_policy","oracle/wsrm10_policy"]) Please restart application to uptake the policy changes.
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットでは再起動する必要はありません。
|
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。
「アプリケーション」ページから、1つ以上のWebサービスに1つ以上のポリシーを添付できます。
|
注意: 一括添付メカニズムでは、添付するポリシーの検証は実行されません。一括添付メカニズムでは、サポートされていない構成(複数の認証ポリシー)を作成したり、同じポリシーを複数回添付したりできます。 クラスタ内のSOA、ADF、WebCenterの各Webサービスでは、ポリシー添付は自動的に同期化されません。クラスタ内のSOA、ADF、WebCenterの各Webサービスを使用する場合は、クラスタの各インスタンスにポリシーを添付または解除(あるいはその両方)する必要があります。この問題は、WebLogic Java EE WebサービスおよびSOAコンポジット・サービスには適用されません。 |
アプリケーション内の複数のWebサービスにポリシーを添付する手順
ナビゲータ・ペインで「WebLogicドメイン」を開き、ポリシーの添付を行うドメインを表示します。
ドメインと、ポリシーを添付するサーバーのインスタンスを選択します。サーバーは、管理サーバーまたは管理対象サーバーのいずれかになります。
Fusion Middleware Controlを使用して、「WebLogicサーバー」→「Webサービス」をクリックします。
「Webサービスのサマリー」ページで「ポリシーの添付」をクリックします。
図8-5に示すように、「ポリシー・サブジェクトの選択」ページで、ポリシーを添付するアプリケーションを1つ以上選択します。
「検索」コントロールを使用して、特定のポリシー・サブジェクト・タイプ、アプリケーション名、またはポリシーを添付するWebサービスのタイプを検索します。有効なポリシー・サブジェクト・タイプとして、Webサービス・エンドポイント、Webサービス・クライアント、Webサービス接続、SOAコンポーネント、SOAサービス、SOA参照、非同期コールバック・クライアント、WLS Webサービス・エンドポイントがあります。非同期コールバック・クライアントの詳細は、Oracle Fusion Middleware概要 for Oracle Infrastructure Webサービスの非同期Webサービスの開発に関する項を参照してください。
たとえば、Webサービス・クライアントのポリシー・サブジェクト・タイプを検索する場合、使用可能なWebサービス・クライアント(存在する場合)のみが表示されます。
複数のアプリケーションを選択するには、[Ctrl]キーを押しながらアプリケーションをクリックします。
「次へ」をクリックします。
図8-6に示すように、「ポリシーの選択」ページで、選択したアプリケーションに添付するポリシーを1つ以上選択します。「ポリシーの選択」ページには、前の手順で選択したすべてのサブジェクトに適用できるポリシーのみが表示されます。
|
注意: Fusion Middleware Controlを使用してWebLogic Java EE Webサービス・エンドポイントに添付できるのはセキュリティ・ポリシーのみです。非セキュリティ・ポリシーをWebLogic Webサービス・エンドポイントに添付しようとした場合、そのアクションは無視されます。 |
複数のポリシーを選択するには、[Ctrl]キーを押しながら添付するポリシーをクリックします。
「次へ」をクリックします。
図8-7に示すように、「サマリー」ページに、選択したアプリケーションと、それらのアプリケーションに添付するポリシーが表示されます。
変更を行うには「戻る」をクリックし、一括添付を完了するには「添付」をクリックします。
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットまたはWebLogic Java EE Webサービス・アプリケーションでは再起動する必要はありません。
|
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
ポリシー内のアサーションのタイプおよび数が有効であれば、ポリシーは内部的に一貫性があり有効です。ただし、ポリシー・サブジェクトに複数のポリシーが添付されている場合は、ポリシーの組合せも有効であることが必要です。具体的には、次の内容を満たしている必要があります。
|
注意: ポリシーを表示すると、セキュリティなどの主要なカテゴリのみが表示されます。(認証などの)サブタイプを表示するには、ポリシーのベースとなるアサーション・テンプレートの「アサーション詳細」セクションを参照してください。 |
1つのポリシー・サブジェクトに添付されているMTOMポリシーが1つのみであること。
1つのポリシー・サブジェクトに添付されている信頼できるメッセージング・ポリシーが1つのみであること。
1つのポリシー・サブジェクトに添付されているWS-Addressingポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプが認証のセキュリティ・ポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプがsts-configであるセキュリティ・ポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプが認可のセキュリティ・ポリシーが1つのみであること。
|
注意: ポリシー・サブジェクトに添付されるセキュリティ・ポリシーは1つまたは2つです。セキュリティ・ポリシーに含めることができるのは、認証またはメッセージ保護のサブタイプ・カテゴリに属するアサーションか、両方のサブタイプ・カテゴリに属するアサーションです。2つ目のセキュリティ・ポリシーには、認可サブタイプに属するアサーションが含まれます。 |
認証ポリシーおよび認可ポリシーの両方がポリシー・サブジェクトに添付されている場合は、認証ポリシーが認可ポリシーより先行していること。
ポリシーに特定のトランスポート・プロトコル(HTTPまたはHTTPSなど)が必要な場合は、Webサービスで指定のトランスポート・プロトコルが使用されていることを確認すること(確認はランタイムに実施されます)。
ランタイムでは、自動的にSTS-Trust構成ポリシーを最初に適用し、認証ポリシーを最後に適用します。
一括添付機能を使用する場合は、ポリシー・サブジェクト検証を使用して、複数のポリシー・サブジェクトの妥当性を確認することはできません。この機能を使用してサブジェクトにポリシーを添付した後に、各サブジェクトを個別に検証する必要があります。
|
注意: ポリシー・サブジェクト検証では、ポリシーのXMLスキーマは検証されません。そのため、ポリシー・ファイルを手動で編集する場合は、別のツールを使用してXMLが有効であることを確認する必要があります。 |
ポリシー・サブジェクト検証を確認する手順
ナビゲータ・ペインで、「アプリケーションのデプロイ」フォルダのプラス記号(+)をクリックしてファーム内のアプリケーションを表示し、アプリケーションを選択します。
「アプリケーションのデプロイ」ホームページが表示されます。
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」→「Webサービス」をクリックします。
これにより、アプリケーションの「Webサービスのサマリー」ページが表示されます。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・ポートを表示するWebサービスのプラス記号(+)をクリックします。
ポート名をクリックして「Webサービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
「検証」をクリックします。
検証エラーがある場合は、エラーを説明するダイアログ・ボックスが表示されます。エラーを修正して、ポリシー・サブジェクト検証を再度実行します。
この項では、SOA参照、ADF Data Control (DC)および非同期のWebサービス・コールバック・クライアントなどのWebサービス・クライアントに、ポリシーを添付する方法について説明します。
WLSTポリシーを使用してWebサービス・クライアントにポリシーを添付する場合は、どのWebサービス・クライアント・タイプでも手順は同じです。引数の設定により、ポリシーを添付するクライアントのタイプを指定します。
|
注意: WebLogic Java EE Webサービス・クライアントへのOracle WSMポリシーの添付はサポートされていません。 |
Fusion Middleware Controlでは、Webサービス・クライアントにポリシーを添付する手順は、どのWebサービス・クライアント・タイプでも同じです。ただし、次の項で説明するように、Webサービス・クライアントに移動する方法は、アプリケーション・タイプによって異なります。
次の手順では、SOA参照にポリシーを添付する方法について説明します。SOA参照の開発に関する詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。
SOA参照にポリシーを添付する手順
「SOA参照の表示」の説明に従って、SOA参照を表示します。
「ポリシー」タブを選択します。
このページの「直接アタッチされたポリシー」セクションで、「添付」または「解除」をクリックします。
ページの「使用可能なポリシー」のセクションで、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、ADF DC Webサービス・クライアント、ADF JAX-WS Indirection Proxy、WebCenterクライアントなどの接続ベースのWebサービスにポリシーを添付する方法について説明します。
ADF DCのWebサービス・クライアントの開発に関する詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion Web ApplicationでのOracle ADFモデルの使用」を参照してください。
接続ベースのWebサービス・クライアントにポリシーを添付するには、次の手順を実行します。
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」を開きます。
ターゲット・アプリケーションを選択します。
「アプリケーションのデプロイ」メニューから、「ADF」→ADF接続の構成を選択します。
ADF接続の構成ページで、「Webサービス接続」リストから1行を選択し、「Webサービスの構成」リストを使用してWebサービス・クライアントを構成します。
「Webサービス・クライアント」ページで、「OWSMポリシー」タブを選択します。
このページの「直接アタッチされたポリシー」セクションで、「添付」または「解除」をクリックします。
ページの「使用可能なポリシー」セクションで、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、非同期のWebサービス・コールバック・クライアントにポリシーを添付する方法について説明します。非同期Webサービスおよび非同期コールバック・クライアントの開発に関する詳細は、Oracle Fusion Middleware概要 for Oracle Infrastructure Webサービスの非同期Webサービスの開発に関する項を参照してください。
非同期コールバック・クライアントにポリシーを添付する手順
「Webサービス・エンドポイントの詳細の表示」の説明に従って、非同期Webサービスのエンドポイントに移動します。
エンドポイント・ページの右上角のコールバック・クライアントをクリックします。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」部分で、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、SOA参照、接続ベースのWebサービス・クライアント(ADF DC Webサービス・クライアント、ADF JAX-WS Indirection Proxy、WebCenterクライアントなど)および非同期Webサービス・コールバック・クライアントにポリシーを添付する方法について説明します。どのクライアント・タイプでも手順は同じです。ただし、引数の設定は、ポリシーを添付または解除するクライアントのタイプによって異なります。
「Webサービス・クライアントの表示」の「WLSTの使用」の説明に従って、Webサービス・クライアントを表示します。
listWebServiceClientPortsコマンドを使用して、Webサービス・クライアントのポート名とエンドポイントURLを表示します。
listWebServiceClientPorts(application,moduleOrCompName,moduleType,serviceRefName)
たとえば、サービス参照clientのポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServiceClientPorts('/base_domain/AdminServer/application1#V2.0', 'test1','wsconn','client') HelloWorld_pt
「WLSTを使用した使用可能なポリシーのリストの表示」の説明に従って、使用可能なポリシーのリストを表示します。
使用可能なクライアント・ポリシーのみを表示するには、subject引数にclientを設定します。たとえば、次のようにします。
listAvailableWebServicePolicies("","client")
ポリシーを添付するには、次のいずれかを実行します。
attachWebServiceClientPolicyコマンドを使用して、Webサービス・クライアント・ポートに単一のポリシーを添付します。
attachWebServiceClientPolicy(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURI, [subjectType=None]
次のように引数を設定します。
SOA参照の場合は、SOAコンポジットの名前を指定するにはmoduleOrCompName引数を使用し、soaを指定するにはmoduleType引数を使用し、SOA参照の名前を指定するにはserviceRefName引数を使用します。
ADF DC Webサービス・クライアント、ADF JAX-WS Indirection Proxy、WebCenterクライアントなどの接続ベースのWebサービス・クライアントの場合は、application引数を使用してクライアント・アプリケーションの名前を指定し、moduleType引数を使用してwsconnを指定し、serviceRefName引数を使用してサービス参照名を指定します。
非同期Webサービス・コールバック・クライアントの場合は、moduleType引数を使用してwebを指定します。クライアント・アプリケーションの名前またはSOAコンポジットの名前を指定するには、それぞれapplication引数とmoduleOrCompName引数を使用します。
すべてのクライアント・タイプで、portInfoName引数を使用してポートの名前を指定します。
policyURI引数を使用して、添付するポリシーを指定します。指定したポリシーがすでに添付されているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
たとえば、クライアント・ポリシーoracle/wss_username_token_client_policyをclientサービスのHelloWorld_ptに添付するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWebServiceClientPolicy("/wls_domain/AdminServer/application1#2.0", "test1","wsconn","client","HelloWorld_pt","oracle/wss_username_token_client_policy")
attachWebServiceClientPoliciesコマンドを使用して、Webサービス・クライアント・ポートに複数のポリシーを添付します。上記の単一クライアント・ポリシーの添付の手順に従って引数を設定しますが、添付する複数のポリシーを指定するには、policyURIs引数を使用します。このコマンドで指定したポリシーのいずれかがすでに添付されている場合は、このコマンドでその添付済ポリシーが有効になり(無効な場合)、その他のポリシーは添付されます。
attachWebServiceClientPolicies(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURIs, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_client_policyとoracle/wsrm10_policyをclientサービスのHelloWorld_ptに添付するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWebServiceClientPolicies("/wls_domain/AdminServer/application1#2.0", "test1","wsconn","client","HelloWorld_pt", ["oracle/wss_username_token_client_policy","oracle/wsrm10_policy"]) Please restart application to uptake the policy changes.
|
注意: wsm-pmアプリケーションがWebLogic Serverにインストールされており、使用可能は場合は、policyURIsはOracle WSM Policy Manager APIにより検証されます。ポリシーの検証が失敗した場合、メッセージが表示されてコマンドは実行されません。wsm-pmアプリケーションがインストールされていないか使用可能でない場合は、これらのコマンドは実行されません。 ポリシーの検証の詳細は、「ポリシー・サブジェクトの検証」を参照してください。 |
ポリシーを解除するには、次のいずれかを実行します。
detachWebServiceClientPolicyコマンドを使用して、Webサービス・ポートから単一のポリシーを解除します。
detachWebServiceClientPolicy(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURI, [subjectType=None]
上記のステップ4の説明に従って、引数を設定します。
たとえば、クライアント・ポリシーoracle/wss_username_token_client_policyをclientサービスのHelloWorld_ptから解除するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServiceClientPolicy("/wls_domain/AdminServer/application1#2.0", "test1","wsconn","client","HelloWorld_pt","oracle/wss_username_token_client_policy")
detachWebServiceClientPoliciesコマンドを使用して、Webサービス・ポートから複数のポリシーを解除します。上記の単一クライアント・ポリシーの解除の手順に従って引数を設定しますが、解除する複数のポリシーを指定するには、policyURIs引数を使用します。
detachWebServiceClientPolicies(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURIs, [subjectType=None]]
たとえば、ポリシーoracle/wss_username_token_client_policyとoracle/wsrm10_policyをclientサービスのHelloWorld_ptから解除するには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServiceClientPolicies("/wls_domain/AdminServer/application1#2.0", "test1","wsconn","client","HelloWorld_pt", ["oracle/wss_username_token_client_policy","oracle/wsrm10_policy"]) Please restart application to uptake the policy changes.
ADF DCおよびWebCenterクライアント・アプリケーションの場合は、Webサービス・クライアント・アプリケーションを再起動します。SOAコンポジットでは再起動する必要はありません。
WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。
ポリシー構成のオーバーライド機能を使用すると、ポリシー添付のWebサービス・クライアント構成情報をグローバルに設定するかわりに、またはそれに加えて、特定の構成情報をクライアントごとに指定できます。構成情報のターゲット指定により、管理する個別ポリシーの数を制限できます。
1つのポリシーを定義して、構成値のデフォルト値を指定できます。構成がほとんど変わらない複数のポリシーを作成するのではなく、同じ一般ポリシーを使用し、要件に一致するように特定の値をオーバーライドできます。
たとえば、oracle/wss_http_token_client_policyポリシーには、csf-key プロパティがあり、デフォルト値はbasic.credentialsです。この値は、ユーザー名/パスワードにマッピングされているキーを表しています。このポリシーを複数のWebサービス・クライアントに添付するときに同じキー値を常に使用する可能性があります。この場合、oracle/wss_http_token_client_policyポリシーの「構成」ページでキー値を指定して、すべてのインスタンスに適用できます。
ただし、クライアントごとにキーの値を上書きすることもできます。上書きできるプロパティを含むクライアント・ポリシーに添付した後、ポリシーを選択して、図8-8に示すように、「OWSMポリシー」ページの「セキュリティ構成の詳細」セクションのプロパティの値を指定します。
Webサービス・クライアント・ポリシーでは、次の表に定義されているプロパティのみをオーバーライドできます。
表8-1 Webサービス・クライアント・ポリシーのオーバーライド可能なプロパティ
| プロパティ | 注意 |
|---|---|
|
|
オプションで、設定は任意です。 |
|
|
注意: J2EEアプリケーションのクライアント・アイデンティティを伝搬するためには、 |
|
|
ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。 |
|
|
オプションで、設定は任意です。 注意: WSS11ポリシーでは、非同期クライアントのみで |
|
|
「構成」ページで設定するか、オーバーライドできます。「サービス・アイデンティティ証明拡張の使用」の説明のとおり、サービス・アイデンティティ証明拡張の使用機能が優先されます。証明書がWSDLでパブリッシュされた場合、クライアントがオーバーライドしたプロパティ値は無視されます。 |
|
|
オプションで、設定は任意です。 |
|
|
クライアントのキータブ・ファイルの場所。 注意: J2EEアプリケーションのクライアント・アイデンティティを伝搬するためには、 |
|
|
オプションで、設定は任意です。 |
|
|
オプションで、設定は任意です。 |
|
|
オプションで、設定は任意です。 |
|
|
オプションで、設定は任意です。デフォルト値はtrueです。 |
|
|
オプションで、設定は任意です。 |
|
|
ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。 保護の必要のあるWebサービスのプリンシパル名。 |
|
|
オプションで、設定は任意です。 注意: Oracle WSMが外部から提供されるアイデンティティを受け入れる元のアプリケーションに
|
|
|
オプションで、設定は任意です。 |
|
|
STS構成ポリシーに基づいて、 |
|
|
STS構成ポリシーに基づいて、 |
|
|
ポリシーの 「構成」ページで設定するか、オーバーライドする必要があります。 |
|
|
オプションで、設定は任意です。 |
|
|
オプションで、設定は任意です。 |
|
注意: この項で説明する手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
事前定義済またはカスタムのWebサービス・ポリシーでサーバー側の構成プロパティの値を指定して、Webサービスにポリシーを添付するたびにその値を使用するか、または添付ごとのベースでその値をオーバーライドできます。
たとえば、構成プロパティとしてIPアドレスを指定し、そのIPアドレスをWebサービスから検証します。
サーバー側の構成プロパティ値のスコープは、指定されたポリシーに限定されます。つまり、サーバー側の構成プロパティの名前が同じ(たとえばP1)2つのポリシーを、同じWebサービス・エンドポイントに添付し、その2つのP1プロパティに異なる値を指定することができます。
オーバーライドできるサーバー側のプロパティには、事前定義済ポリシーに含まれるプロパティとユーザー定義ポリシーに含まれるプロパティの2つのタイプがあります。
事前定義済ポリシーに含まれるサーバー側の設定プロパティにより、たとえば署名キー・パスワードを格納するために使用されるCSFキーなど、特定のドメイン単位の構成設定をポリシーからオーバーライドできます。
ユーザー定義のプロパティでは、使用環境で意味を持つプロパティを追加できます。ユーザー定義のサーバー側プロパティを、事前定義済ポリシーまたはカスタム・ポリシーに追加できます。
Oracle WSMのこのリリースには、表8-2に示す、メッセージ保護ポリシーのサーバー側オーバーライド・プロパティが含まれています。
これらのプロパティを設定(またはオーバーライド)すると、「メッセージ保護に関するキーストアの設定」で説明するように、添付されたWebサービスで、メッセージ保護に関するキーストアの設定の一部として構成されたキーストア・パスワードのかわりに新しい値が使用されます
これらのプロパティを設定せずにデフォルトの空白のままにすると、「メッセージ保護に関するキーストアの設定」で説明するように、メッセージ保護に関するキーストアの設定の一部として構成された値が使用されます。
表8-2 メッセージ保護ポリシーのサーバー側の構成プロパティ
| プロパティ名 | デフォルト値 | 説明 |
|---|---|---|
|
|
空白 |
署名キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで署名キーを指定できます。 (WSS10メッセージ保護ポリシーにのみ適用可能) |
|
|
空白 |
暗号化キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで暗号化キーを指定できます。 (WSS11メッセージ保護同期ポリシーにのみ適用可能) |
|
|
True |
Bearerトークンを署名しないようにするには(クライアント・ポリシーおよびサービス・ポリシーの両方で)falseに設定します。 デフォルト(true)では、bearerはドメイン署名鍵を使用して署名されます。これは、Bearerクライアント・ポリシーの |
デフォルトでは、keystore.sig.csf.keyおよびkeystore.enc.csf.keyプロパティは空白です。値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
ポリシーの構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からメッセージ保護ポリシーを選択して、「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、キーストア内のキーに基づいてkeystore.sig.csf.keyおよびkeystore.enc.csf.keyプロパティを変更します。図8-9を参照してください。
変更内容を検証します。
「保存」をクリックします。
Oracle WSMのこのリリースには、表8-3で示す、oracle/binding_permission_authorization_policyポリシーのサーバー側オーバーライド・プロパティが含まれています。これらのプロパティを使用して、異なるアクションとリソースを設定できます。
これらのプロパティを設定(またはオーバーライド)すると、「認証権限の決定方法」で説明するように、添付されたWebサービスで、構成されたアクションとリソースのかわりに新しい値が使用されます。
表8-3 認可ポリシーのサーバー側の構成プロパティ
| プロパティ名 | デフォルト値 | 説明 |
|---|---|---|
|
action |
* |
このポリシーを実行する操作を指定します。 |
|
resource |
* |
Webサービス名(Webサービスの名前空間 + サービス名)を指定します。 |
デフォルトでは、actionおよびresourceプロパティの値は*です。別の値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からoracle/binding_permission_authorization_policyポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、使用環境に基づいてactionまたはresourceプロパティを変更します。
変更内容を検証します。
「保存」をクリックします。
|
注意: この項で説明する手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
新規構成プロパティの追加機能を使用して、使用環境で意味を持つ1つ以上の構成プロパティを追加できます。特に、1つ以上のユーザー定義のサーバー側またはクライアント側プロパティを、事前定義済ポリシーまたはカスタム・ポリシーに追加できます。それから、ユーザー定義のプロパティをそのまま使用するか、ポリシーに添付するときにそれをオーバーライドできます。
どちらの場合でも、ポリシーをWebサービスまたはクライアントに添付するときに、プロパティをオーバーライドする前にそのプロパティがポリシーに存在している必要があります。つまり、ポリシーにすでに存在するプロパティのみオーバーライドできます。
そのため、通常はユーザーが提供するプロパティをデフォルト値を含めて事前定義済またはカスタムのポリシーに追加し、それから添付単位でそれをオーバーライドします。
required、optional、またはconstantタイプのユーザー定義のプロパティを追加できますが、constantタイプのプロパティはオーバーライドできません。
事前定義済の構成プロパティと同様に、ポリシーのユーザー定義の構成プロパティのスコープは、クライアントとWebサービスで異なります。次の内容を考慮します。
クライアント側の構成プロパティ値のスコープは、そのクライアントです。同一クライアントに添付される複数のポリシーが同じプロパティを使用できます。
サーバー側の構成プロパティ値のスコープは、指定されたポリシーに限定されます。つまり、サーバー側の構成プロパティの名前が同じ(たとえばP1)2つのポリシーを、同じWebサービス・エンドポイントに添付し、その2つのP1プロパティに異なる値を指定することができます。
ユーザー定義の構成プロパティを追加するには、事前定義済またはカスタムのポリシーを編集します。
ユーザー定義の構成プロパティを追加する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを追加するポリシーを選択して、「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
「追加」をクリックします。図8-10に示すように、新規構成プロパティの追加ダイアログ・ボックスが表示されます。
次の情報を入力して、「OK」をクリックします。
「プロパティ・セット」は、このプロパティを含めるグループ(セット)の名前です。これは必須フィールドです。
「名前」は、プロパティの名前です。名前はこのポリシーに対して一意である必要があります。これは必須フィールドです。
「説明」は、プロパティの説明です。
「値」は、プロパティの現在の文字列値です。これは必須フィールドです。
「デフォルト」は、プロパティが他で設定されていない場合のプロパティのデフォルトの文字列値です。
「コンテンツ・タイプ」は、Constant、Optional、Requiredのいずれかです。タイプがOptionalとRequiredのプロパティのみオーバーライドできます。
ポリシーを検証します。
「保存」をクリックします。
ユーザー定義の構成プロパティを変更する必要がある場合は、これを編集できます。
ユーザー定義の構成プロパティを編集する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを編集するポリシーを選択して、「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
編集するユーザー定義の構成プロパティを選択して、「編集」をクリックします。
必要な変更を行います。
ポリシーを検証します。
「保存」をクリックします。
ユーザー定義の構成プロパティが必要なくなった場合は、これを削除できます。
ユーザー定義の構成プロパティを削除する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを削除するポリシーを選択して、「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
削除するユーザー定義の構成プロパティを選択して、「削除」をクリックします。
ポリシーを検証します。
「保存」をクリックします。
必要に応じて「単一のサブジェクトへのポリシーの添付」、「複数のサブジェクトへのポリシーの添付(一括添付)」、または「Webサービス・クライアントへのポリシーの添付」の説明に従って、ポリシーを添付します。
ユーザー定義構成プロパティを含むポリシーを添付する場合は、次のように既存の値をオーバーライドできます。
Fusion Middleware Controlを使用してクライアント・ポリシーのユーザー定義構成プロパティをオーバーライドするには、「オーバーライド可能なクライアント・ポリシーの添付」を参照してください。
Fusion Middleware Controlを使用してサービス・ポリシーのユーザー定義構成プロパティをオーバーライドするには、「サービス・ポリシーの添付時の構成プロパティのオーバーライド」を参照してください。
WLSTを使用してクライアント・ポリシーまたはサービス・ポリシーのユーザー定義構成プロパティをオーバーライドするには、「WLSTを使用してポリシーの添付時の構成プロパティのオーバーライド」の説明のようにsetWebServicePolicyOverrideコマンドを使用します。
サーバー側でオーバーライド可能な構成プロパティを含むポリシーを添付したら、既存の値をオーバーライドできます。WLSTでは、「WLSTを使用してポリシーの添付時の構成プロパティのオーバーライド」の説明のようにsetWebServicePolicyOverrideコマンドを使用して実行します。
Fusion Middleware Controlを使用して構成プロパティをオーバーライドするには、次の手順を実行します。
オーバーライド可能な構成プロパティを含む添付されたポリシーを選択します。
図8-11に示すように、ポリシー構成のオーバーライドボタンが表示されます。
|
注意: 選択されたポリシーにオーバーライド可能な構成プロパティが含まれる場合、ポリシー構成のオーバーライドボタンが表示されます。 |
ポリシー構成のオーバーライドを選択します。
図8-12に示すように、「セキュリティ構成の詳細」ウィンドウが表示されます。この図に、oracle/wss10_message_protection_service_policyのオーバーライド可能なプロパティを示します。
プロパティの「値」フィールドのオーバーライド値を入力し、「適用」をクリックします。
プロパティは添付単位でオーバーライドされます。
たとえば、oracle/wss10_message_protection_service_policyのkeystore.sig.csf.keyプロパティの値を変更しておらず、まだ空白のままであると仮定します。WebサービスAにoracle/wss10_message_protection_service_policyを添付し、keystore.sig.csf.keyプロパティに「sigkey」をオーバーライドした場合、keystore.sig.csf.keyプロパティが値「sigkey」を持つのは、WebサービスAに添付されたoracle/wss10_message_protection_service_policyポリシーだけです。
他のすべてのポリシーでは、「メッセージ保護に関するキーストアの設定」で説明するように、keystore.sig.csf.keyは、メッセージ保護に関するキーストアの設定の一部として構成された値になります。
|
注意: この手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
オーバーライド可能なプロパティを持つポリシーを添付する場合は、setWebServicePolicyOverrideコマンドを使用して既存の値をオーバーライドできます。これを実行するには、次の手順に従ってください。
「WLSTを使用したWebサービスへのポリシーの添付」の説明に従って、サービスにポリシーを添付します。
setWebServicePolicyOverrideコマンドを使用して、ポリシー・プロパティをオーバーライドします。
setWebServicePolicyOverride(application,moduleOrCompName,moduleType, serviceName,portName,policyURI,properties)
表8-2および表8-3にリストされているプロパティと、「ユーザー定義のクライアント側またはサーバー側のオーバーライド・プロパティの構成」に記載されているユーザー定義のプロパティをオーバーライドできます。
たとえば、oracle/wss_username_token_service_policyポリシーのROLEプロパティをオーバーライドするには、次のコマンドを使用します。
wls:/wls-domain/serverConfig>setWebServicePolicyOverride ('/wls_domain/AdminServer/Jaxwsejb30ws','jaxwsejb', 'web','WsdlConcreteService','WsdlConcretePort', "oracle/wss_username_token_service_policy",[("ROLE","ADMIN")])
|
注意: 指定したポリシーがポートに添付されていない場合は、エラーメッセージが表示されるか例外が返されます。
|
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットでは再起動する必要はありません。
|
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。