この章では次の項について説明します。
次の項では、Fusion Middleware ControlおよびWebLogic Scripting Tool(WLST)を使用してWebサービスに添付されたポリシーを表示する方法について説明します。
Webサービスに添付されたポリシーを表示する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・ポートを表示するWebサービスのプラス記号(+)をクリックします。
ポートの名前をクリックし、特定のWebサービスの「Webサービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
図8-1に示すように、ポートに添付されているポリシーのリストが表示されます。
注意: この図は、Oracle InfrastructureのWebサービス・エンドポイントの画面を示しています。WebLogic JEEの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
サブジェクトは、ポリシーを関連付けられるエンティティです。サブジェクトには、1つ以上のポリシーを添付できます。
ポリシーが実行される順序は、サブジェクトにポリシーが添付される順序や、添付されたポリシーのリストの順序では決定されません。クライアントとWebサービス間でメッセージが受け渡される際に、ポリシー・インターセプタ・チェーン内のインターセプタの順序でポリシーが実行される順序が決定されます。
詳細は、「ポリシー実行の仕組み」を参照してください。
注意: ポリシー添付は、クラスタ内のADF、WebCenter、およびWebLogic JEE Webサービスに対して自動的には同期化されません。クラスタ内のADF、WebCenter、およびWebLogic JEE Webサービスを使用する場合は、ポリシーをクラスタの各インスタンスに添付または解除する必要があります。この問題はSOAコンポジット・アプリケーションには適用されません。 |
単一のWebサービスにポリシーを添付するには、次の手順に従ってください。複数のWebサービスに同時にポリシーを添付するには、「複数のサブジェクトへのポリシーの添付(一括添付)」を参照してください。
注意: Fusion Middleware Controlを使用したWebLogic JEE Webサービスへのポリシー添付の場合は、次の点に注意してください。
|
Webサービスにポリシーを添付する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・ポートを表示するWebサービスのプラス記号(+)をクリックします。
ポートの名前をクリックし、特定のWebサービスの「Webサービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
すでにポートに添付されているポリシーのリストが表示されます。たとえば、図8-1のポリシーを検討します。
「アタッチ/デタッチ」をクリックします。
「使用可能なポリシー」リストからポリシーを選択し、「添付」をクリックします。図8-2を参照してください。
ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。図8-3を参照してください。ポリシーの詳細を確認し終わったら、「OK」をクリックします。
ポリシーの選択と添付を続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「OK」をクリックします。
「Webサービス・エンドポイント」ページの「ポリシー」タブに、添付されたポリシーが表示されます。
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットまたはWebLogic JEE 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つ以上のポリシーを添付できます。
注意: 一括添付メカニズムでは、添付するポリシーの検証は実行されません。一括添付メカニズムでは、サポートされていない構成(複数の認証ポリシー)を作成したり、同じポリシーを複数回添付したりできます。 ポリシー添付は、クラスタ内のADF、WebCenter、およびWebLogic JEE Webサービスに対して自動的には同期化されません。クラスタ内のADF、WebCenter、およびWebLogic JEE Webサービスを使用する場合は、ポリシーをクラスタの各インスタンスに添付または解除する必要があります。この問題はSOAコンポジット・アプリケーションには適用されません。 |
アプリケーション内の複数のWebサービスにポリシーを添付する手順
ナビゲータ・ペインで「WebLogicドメイン」を開き、ポリシーの添付を行うドメインを表示します。
ドメインと、ポリシーを添付するサーバーのインスタンスを選択します。サーバーは、管理サーバーまたは管理対象サーバーのいずれかになります。
Fusion Middleware Controlを使用して、「WebLogicサーバー」→「Webサービス」をクリックします。
「Webサービスのサマリー」ページで「ポリシーの添付」をクリックします。
図8-4に示すように、「ポリシー・サブジェクトの選択」ページで、ポリシーを添付するアプリケーションを1つ以上選択します。
「検索」コントロールを使用して、特定のポリシー・サブジェクト・タイプ、アプリケーション名、またはポリシーを添付するWebサービスのタイプを検索します。有効なポリシー・サブジェクト・タイプとして、Webサービス・エンドポイント、Webサービス・クライアント、Webサービス接続、SOAコンポーネント、SOAサービス、SOA参照、非同期コールバック・クライアント、WLS Webサービス・エンドポイントがあります。非同期コールバック・クライアントの詳細は、Oracle Fusion Middleware概要 for Oracle Infrastructure Webサービスの非同期Webサービスの開発に関する項を参照してください。
たとえば、Webサービス・クライアントのポリシー・サブジェクト・タイプを検索する場合、使用可能なWebサービス・クライアント(存在する場合)のみが表示されます。
複数のアプリケーションを選択するには、[Ctrl]キーを押しながらアプリケーションをクリックします。
「次へ」をクリックします。
図8-5に示すように、「ポリシーの選択」ページで、選択したアプリケーションに添付するポリシーを1つ以上選択します。「ポリシーの選択」ページには、前の手順で選択したすべてのサブジェクトに適用できるポリシーのみが表示されます。
注意: Fusion Middleware Controlを使用してWebLogic JEE Webサービス・エンドポイントに添付できるのはセキュリティ・ポリシーのみです。非セキュリティ・ポリシーをWebLogic Webサービス・エンドポイントに添付しようとした場合、そのアクションは無視されます。 |
複数のポリシーを選択するには、[Ctrl]キーを押しながら添付するポリシーをクリックします。
「次へ」をクリックします。
図8-6に示すように、「サマリー」ページに、選択したアプリケーションと、それらのアプリケーションに添付するポリシーが表示されます。
変更を行うには「戻る」をクリックし、一括添付を完了するには「添付」をクリックします。
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットまたはWebLogic JEE Webサービス・アプリケーションでは再起動する必要はありません。
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
ポリシー内のアサーションのタイプおよび数が有効であれば、ポリシーは内部的に一貫性があり有効です。ただし、ポリシー・サブジェクトに複数のポリシーが添付されている場合は、ポリシーの組合せも有効であることが必要です。具体的には、次の内容を満たしている必要があります。
1つのポリシー・サブジェクトに添付されているMTOMポリシーが1つのみであること。
1つのポリシー・サブジェクトに添付されている信頼できるメッセージング・ポリシーが1つのみであること。
1つのポリシー・サブジェクトに添付されているWS-Addressingポリシーが1つのみであること。
1つのポリシー・サブジェクトに添付されている管理ポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプが認証のセキュリティ・ポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプがメッセージ保護のセキュリティ・ポリシーが1つのみであること。
1つのサブジェクトに添付されている、サブタイプが認可のセキュリティ・ポリシーが1つのみであること。
注意: ポリシー・サブジェクトに添付されるセキュリティ・ポリシーは1つまたは2つです。セキュリティ・ポリシーに含めることができるのは、認証またはメッセージ保護のサブタイプ・カテゴリに属するアサーションか、両方のサブタイプ・カテゴリに属するアサーションです。2つ目のセキュリティ・ポリシーには、認可サブタイプに属するアサーションが含まれます。 |
認証ポリシーおよび認可ポリシーの両方がポリシー・サブジェクトに添付されている場合は、認証ポリシーが認可ポリシーより先行していること。
ポリシーに特定のトランスポート・プロトコル(HTTPまたはHTTPSなど)が必要な場合は、Webサービスで指定のトランスポート・プロトコルが使用されていることを確認すること。
一括添付機能を使用する場合は、ポリシー・サブジェクト検証を使用して、複数のポリシー・サブジェクトの妥当性を確認することはできません。この機能を使用してサブジェクトにポリシーを添付した後に、各サブジェクトを個別に検証する必要があります。
注意: ポリシー・サブジェクト検証では、ポリシーのXMLスキーマは検証されません。そのため、ポリシー・ファイルを手動で編集する場合は、別のツールを使用してXMLが有効であることを確認する必要があります。 |
ポリシー・サブジェクト検証を確認する手順
ナビゲータ・ペインで、「アプリケーションのデプロイ」フォルダのプラス記号(+)をクリックしてファーム内のアプリケーションを表示し、アプリケーションを選択します。
「アプリケーションのデプロイ」ホームページが表示されます。
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」→「Webサービス」をクリックします。
これにより、アプリケーションの「Webサービスのサマリー」ページが表示されます。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・ポートを表示するWebサービスのプラス記号(+)をクリックします。
ポート名をクリックして「Webサービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
「検証」をクリックします。
検証エラーがある場合は、エラーを説明するダイアログ・ボックスが表示されます。エラーを修正して、ポリシー・サブジェクト検証を再度実行します。
この項では、SOA参照、ADF Data Control(DC)および非同期のWebサービス・コールバック・クライアントなどのWebサービス・クライアントに、ポリシーを添付する方法について説明します。
WLSTポリシーを使用してWebサービス・クライアントにポリシーを添付する場合は、どのWebサービス・クライアント・タイプでも手順は同じです。引数の設定により、ポリシーを添付するクライアントのタイプを指定します。
注意: WebLogic JEE 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 DCのWebサービス・クライアントの開発に関する詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のFusion Web ApplicationでのOracle ADFモデルの使用に関する項を参照してください。
ADF DCのWebサービス・クライアントにポリシーを添付する手順
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」を開きます。
ターゲット・アプリケーションを選択します。
「アプリケーションのデプロイ」メニューから、「ADF」→ADF接続の構成を選択します。
ADF接続の構成ページで、「Webサービス接続」リストから1行を選択し、「Webサービスの構成」リストを使用してWebサービス・クライアントを構成します。
「Webサービス・クライアント」ページで、「ポリシー」タブを選択します。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、非同期のWebサービス・コールバック・クライアントにポリシーを添付する方法について説明します。非同期Webサービスおよび非同期コールバック・クライアントの開発に関する詳細は、Oracle Fusion Middleware概要 for Oracle Infrastructure Webサービスの非同期Webサービスの開発に関する項を参照してください。
非同期コールバック・クライアントにポリシーを添付する手順
「Webサービス・エンドポイントの詳細の表示」の説明に従って、非同期Webサービスのエンドポイントに移動します。
エンドポイント・ページの右上角のコールバック・クライアントをクリックします。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」の部分で、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、SOA参照、ADF WebサービスDC、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またはWebCenterクライアントの場合は、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-7に示すように、「ポリシー」ページの「セキュリティ構成の詳細」セクションで値を入力できます。
Webサービス・クライアント・ポリシーでは、次のプロパティのみをオーバーライドできます。
user.roles.include(オプションで、設定は任意です。)
csf-key(ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。)
saml.issuer.name(オプションで、設定は任意です。)
saml.assertion.filename(オプションで、設定は任意です。)
service.principal.name(ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。)
keystore.recipient.alias(ポリシーの「構成」ページで設定するか、オーバーライドできます。サービス・アイデンティティ証明拡張の使用機能が優先されます。クライアントがkeystore.recipient.aliasプロパティをオーバーライドすると、WSDLでパブリッシュされた証明書ではなく常にオーバーライドが使用されます。)
keystore.sig.csf.key(オプションで、設定は任意です。)
keystore.enc.csf.key(オプションで、設定は任意です。)
注意: keystore.enc.csf.keyプロパティは、クライアントの証明書をreplyToヘッダーに付けます。WSS11ポリシーでは、keystore.enc.csf.keyは非同期クライアントのみに使用されます。 WSS10ポリシーでは、keystore.enc.csf.keyは同期クライアントと非同期クライアントの両方に使用されます。 |
注意: この項で説明する手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
事前定義済またはカスタムのWebサービス・ポリシーでサーバー側の構成プロパティの値を指定して、Webサービスにポリシーを添付するたびにその値を使用するか、または添付ごとのベースでその値をオーバーライドできます。
たとえば、構成プロパティとしてIPアドレスを指定し、そのIPアドレスをWebサービスから検証します。
サーバー側の構成プロパティ値のスコープは、指定されたポリシーに限定されます。つまり、サーバー側の構成プロパティの名前が同じ(たとえばP1)2つのポリシーを、同じWebサービス・エンドポイントに添付し、その2つのP1プロパティに異なる値を指定することができます。
オーバーライドできるサーバー側のプロパティには、事前定義済ポリシーとユーザー定義ポリシーの2つのタイプがあります。
事前定義済ポリシーに含まれるサーバー側の設定プロパティにより、たとえば署名キー・パスワードを格納するために使用されるCSFキーなど、特定のドメイン単位の構成設定をポリシーからオーバーライドできます。
ユーザー定義のプロパティでは、使用環境で意味を持つプロパティを追加できます。ユーザー定義のサーバー側プロパティを、事前定義済ポリシーまたはカスタム・ポリシーに追加できます。
Oracle WSMのこのリリースには、表8-1に示す、メッセージ保護ポリシーのサーバー側オーバーライド・プロパティが含まれています。
これらのプロパティを設定(またはオーバーライド)すると、「メッセージ保護に関するキーストアの設定」で説明するように、添付されたWebサービスで、メッセージ保護に関するキーストアの設定の一部として構成されたキーストア・パスワードのかわりに新しい値が使用されます
これらのプロパティを設定せずにデフォルトの空白のままにすると、「メッセージ保護に関するキーストアの設定」で説明するように、メッセージ保護に関するキーストアの設定の一部として構成された値が使用されます。
表8-1 メッセージ保護ポリシーのサーバー側の構成プロパティ
プロパティ名 | デフォルト値 | 説明 |
---|---|---|
keystore.sig.csf.key |
空白 |
署名キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで署名キーを指定できます。 (WSS10メッセージ保護ポリシーにのみ適用可能) |
keystore.sig.csf.key |
空白 |
暗号化キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで暗号化キーを指定できます。 (WSS11メッセージ保護同期ポリシーにのみ適用可能) |
デフォルトでは、keystore.sig.csf.keyおよびkeystore.enc.csf.keyプロパティは空白です。値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
ポリシーの構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からメッセージ保護ポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、キーストア内のキーに基づいてkeystore.sig.csf.keyおよびkeystore.enc.csf.keyプロパティを変更します。図8-8を参照してください。
変更内容を検証します。
「保存」をクリックします。
サーバー側の構成プロパティを含むメッセージ保護ポリシーを添付した後で、既存の値をオーバーライドできます。Fusion Middleware Controlでこれを行うには、ポリシーページの「セキュリティ構成の詳細」セクションを使用します。WLSTでこれを行うには、「WLSTを使用してポリシーの添付時の構成プロパティのオーバーライド」で説明されているように、setWebServicePolicyOverride
コマンドを使用します。
Fusion Middleware Controlを使用してこれを行うには、サーバー側の構成プロパティを含む添付されたポリシーを選択します。図8-9に示すように、ページの「セキュリティ構成の詳細」部分が表示されます。
プロパティは添付単位でオーバーライドされます。
たとえば、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 WSMのこのリリースには、表8-2で示す、oracle/binding_permission_authorization_policyポリシーのサーバー側オーバーライド・プロパティが含まれています。これらのプロパティを使用して、異なるアクションとリソースを設定できます。
これらのプロパティを設定(またはオーバーライド)すると、「認証権限の決定方法」で説明するように、添付されたWebサービスで、構成されたアクションとリソースのかわりに新しい値が使用されます。
表8-2 認可ポリシーのサーバー側の構成プロパティ
プロパティ名 | デフォルト値 | 説明 |
---|---|---|
action |
* |
このポリシーを実行する操作を指定します。 |
resource |
* |
Webサービス名(Webサービスの名前空間 + サービス名)を指定します。 |
デフォルトでは、actionおよびresourceプロパティの値は*です。別の値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からoracle/binding_permission_authorization_policyポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、使用環境に基づいてactionまたはresourceプロパティを変更します。
変更内容を検証します。
「保存」をクリックします。
oracle/binding_permission_authorization_policyポリシーを添付した後で、Fusion Middleware Controlを使用してポリシーページの「セキュリティ構成の詳細」セクションで既存の値をオーバーライドできます。WLSTでこれを行うには、「WLSTを使用してポリシーの添付時の構成プロパティのオーバーライド」で説明されているように、setWebServicePolicyOverride
コマンドを使用します。
Fusion Middleware Controlを使用してこれを行うには、添付されたoracle/binding_permission_authorization_policyポリシーを選択します。ページの「セキュリティ構成の詳細」部分が表示されます。
注意: この項で説明する手順は、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サービス・ポリシー」ページで、「ポリシー」表からプロパティを削除するポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
削除するユーザー定義の構成プロパティを選択して、「削除」をクリックします。
ポリシーを検証します。
「保存」をクリックします。
ユーザー定義の構成プロパティを持つポリシーを添付する場合は、Fusion Middleware Controlを使用してポリシーページの「セキュリティ構成の詳細」セクションで既存の値をオーバーライドできます。WLSTでこれを行うには、「WLSTを使用してポリシーの添付時の構成プロパティのオーバーライド」で説明されているように、setWebServicePolicyOverride
コマンドを使用します。
Fusion Middleware Controlを使用してこれを行うには、必要に応じて「単一のサブジェクトへのポリシーの添付」、「複数のサブジェクトへのポリシーの添付(一括添付)」、または「Webサービス・クライアントへのポリシーの添付」の説明に従って、ポリシーを添付します。
それから、ユーザー定義のプロパティを含む添付されたポリシーを選択します。図8-11に示すように、ページの「セキュリティ構成の詳細」部分が表示されます。
注意: この手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
オーバーライド可能なプロパティを持つポリシーを添付する場合は、setWebServicePolicyOverride
コマンドを使用して既存の値をオーバーライドできます。これを実行するには、次の手順に従ってください。
「WLSTを使用したWebサービスへのポリシーの添付」の説明に従って、サービスにポリシーを添付します。
setWebServicePolicyOverride
コマンドを使用して、ポリシー・プロパティをオーバーライドします。
setWebServicePolicyOverride(application,moduleOrCompName,moduleType, serviceName,portName,policyURI,properties)
表8-1および表8-2にリストされているプロパティと、「ユーザー定義のクライアント側またはサーバー側のオーバーライド・プロパティの構成」に記載されているユーザー定義のプロパティをオーバーライドできます。
たとえば、oracle/wss_username_token_service_policy 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コマンドに関する項を参照してください。