この章では次の項について説明します。
次の項では、Fusion Middleware ControlおよびWebLogic Scripting Tool(WLST)を使用してWebサービスに添付されたポリシーを表示する方法について説明します。
Webサービスに添付されたポリシーを表示する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・エンドポイントを表示するWebサービスのプラス記号(+)をクリックします。
特定のWebサービスについては、エンドポイントの名前をクリックして「Webサービス・エンドポイント」ページへ移動します。
「OWSMポリシー」タブをクリックします。
図 8-1は、グローバルに、および直接ポリシーが添付されている、「Oracle Infrastructure Web Serviceエンドポイント」の画面を示しています。出力には、エンドポイントで有効であるグローバルに添付されたポリシー、すべての直接添付されたポリシー、およびエンドポイントに有効な構成があり、セキュアであるかどうかが示されます。ポリシー・セット名の上にマウスを重ねるか、ポリシー・セット名の前にある赤色のドットをクリックすると、実行時制約が表示されます(構成されている場合)。実行時制約の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接添付されたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。エンドポイントで有効なポリシーの詳細は、「ポリシーの有効セットの計算方法」を参照してください。
図 8-1 Oracle Infrastructure Webサービス・エンドポイントに添付されたポリシー
図 8-2は、WebLogic Java EEエンドポイントの画面を示しています。エンドポイントに直接添付されたポリシーのみが表示されます。グローバルに添付されたポリシーは利用できません。
図 8-2 WebLogic Java EE Webサービス・エンドポイントに添付されたポリシー
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.example.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.
次の項では、単一サブジェクトへのポリシーの添付方法、複数サブジェクトへの添付方法(一括添付)、およびポリシーが添付された後にサブジェクトを検証する方法について説明します。
注意: WebLogic Java EE Webサービス・ポリシー添付:
|
サブジェクトは、ポリシーを関連付けられるエンティティです。サブジェクトには、1つ以上のポリシーを添付できます。
ポリシーが実行される順序は、サブジェクトにポリシーが添付される順序や、添付されたポリシーのリストの順序では決定されません。クライアントとWebサービス間でメッセージが受け渡される際に、ポリシー・インターセプタ・チェーン内のインターセプタの順序でポリシーが実行される順序が決定されます。
詳細は、「ポリシー実行の仕組み」を参照してください。
注意: ポリシー添付は、クラスタ内のSOA、ADFおよびWebCenter Webサービスで自動的に同期がとられません。クラスタでSOA、ADFおよびWebCenterサービスを使用する場合、クラスタ内の各インスタンスにポリシーをアタッチあるいはデタッチする必要があります。この問題はWebLogic Java EE WebサービスおよびSOAコンポジット・サービスには適用されません。 |
単一のWebサービス・エンドポイントにポリシーを添付するには、次の手順に従ってください。複数のWebサービスに同時にポリシーを添付するには、「複数のサブジェクトへのポリシーの添付(一括添付)」を参照してください。
Webサービスにポリシーを添付する手順
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・エンドポイントを表示するWebサービスのプラス記号(+)をクリックします。
特定のWebサービスについては、エンドポイントの名前をクリックして「Webサービス・エンドポイント」ページへ移動します。
「OWSMポリシー」タブをクリックします。
エンドポイントにグローバルに添付されたポリシーおよび直接添付されたポリシーのみが、図 8-1に示すように表示されます。
「アタッチ/デタッチ」をクリックします。
「使用可能なポリシー」リストからポリシーを選択し、「添付」をクリックします。図8-3を参照してください。
ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。詳細は、図8-4を参照してください。ポリシーの詳細を確認し終わったら、「OK」をクリックします。
ポリシーの選択と添付を続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「OK」をクリックします。
図8-1に示すように、「Webサービス・エンドポイント」ページの「OWSMポリシー」タブに、添付されたポリシーが表示されます。
注意: 出力には、エンドポイントで有効であるグローバルに添付されたポリシー、すべての直接添付されたポリシー、およびエンドポイントに有効な構成があり、セキュアであるかどうかが示されます。「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接添付されたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。エンドポイントで有効なポリシーの詳細は、「ポリシーの有効セットの計算方法」を参照してください。 |
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットまたはWebLogic Java EE Webサービス・アプリケーションでは再起動する必要はありません。
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
WLSTを使用して単一の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サービスを使用する場合、クラスタ内の各インスタンスにポリシーをアタッチあるいはデタッチする必要があります。この問題は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 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つのみであること。
サブタイプがsts-configである1つのセキュリティ・ポリシーのみをサブジェクトに添付できます。
認証ポリシーおよび認可ポリシーの両方がポリシー・サブジェクトに添付されている場合は、認証ポリシーが認可ポリシーより先行していること。
ポリシー・サブジェクトに添付されるセキュリティ・ポリシーは1つ以上です。たとえば、セキュリティ・ポリシーに含めることができるのは、認証またはメッセージ保護のサブタイプ・カテゴリに属するアサーションか、両方のサブタイプ・カテゴリに属するアサーションです。2つ目のセキュリティ・ポリシーには、認可サブタイプに属するアサーションが含まれます。
サブジェクトに添付されるポリシーが、構成のオーバーライドを含む互いの正確な複製である場合、ポリシーの添付は複製として見なされ、構成は有効です。
ポリシーに特定のトランスポート・プロトコル(HTTPまたはHTTPSなど)が必要な場合は、Webサービスで指定のトランスポート・プロトコルが使用されていることを確認すること。(チェックは実行時に行われます。)
実行時には、自動的にSTS-Trust構成ポリシーがまず実行され、認可ポリシーが最後に実行されます。
一括添付機能を使用する場合は、ポリシー・サブジェクト検証を使用して、複数のポリシー・サブジェクトの妥当性を確認することはできません。この機能を使用してサブジェクトにポリシーを添付した後に、各サブジェクトを個別に検証する必要があります。
注意: ポリシー・サブジェクト検証では、ポリシーのXMLスキーマは検証されません。そのため、ポリシー・ファイルを手動で編集する場合は、別のツールを使用してXMLが有効であることを確認する必要があります。 |
ポリシー・サブジェクト検証を確認する手順
ナビゲータ・ペインで、「アプリケーションのデプロイ」フォルダのプラス記号(+)をクリックしてファーム内のアプリケーションを表示し、アプリケーションを選択します。
「アプリケーションのデプロイ」ホームページが表示されます。
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」→「Webサービス」をクリックします。
これにより、アプリケーションの「Webサービスのサマリー」ページが表示されます。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・ポートを表示するWebサービスのプラス記号(+)をクリックします。
ポート名をクリックして「Webサービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
「検証」をクリックします。
検証エラーがある場合は、エラーを説明するダイアログ・ボックスが表示されます。エラーを修正して、ポリシー・サブジェクト検証を再度実行します。
この項では、SOA参照、接続ベースのWebサービス・クライアント(ADF DC Webサービス・クライアント、ADF JAX-WS Indirection ProxyまたはWebCenterクライアントなど)、非同期Webサービス・コールバック・クライアントおよびJava EE Webサービス・クライアントにポリシーを添付する方法について説明します。
WLSTポリシーを使用してWebサービス・クライアントにポリシーを添付する場合は、どのWebサービス・クライアント・タイプでも手順は同じです。引数の設定により、ポリシーを添付するクライアントのタイプを指定します。詳細は、「WLSTを使用したWebサービス・クライアントへのポリシーの添付」を参照してください。
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でのADFモデルの使用に関する項を参照してください。
接続ベースのWebサービス・クライアントへのポリシーを添付するには:
Fusion Middleware Controlを使用して、「アプリケーションのデプロイ」を開きます。
ターゲット・アプリケーションを選択します。
「アプリケーションのデプロイ」メニューから、「ADF」→ADF接続の構成を選択します。
ADF接続の構成ページで、「Webサービス接続」リストから1行を選択し、「Webサービスの構成」リストを使用してWebサービス・クライアントを構成します。
「Webサービス・クライアント」ページで、「OWSMポリシー」タブを選択します。
ページの「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、非同期のWebサービス・コールバック・クライアントにポリシーを添付する方法について説明します。非同期Webサービスおよび非同期コールバック・クライアントの開発の詳細は、Oracle Infrastructure Webサービス開発者ガイドの非同期Webサービスの開発に関する項を参照してください。
非同期コールバック・クライアントにポリシーを添付する手順
「Webサービス・エンドポイントの詳細の表示」の説明に従って、非同期Webサービスのエンドポイントに移動します。
エンドポイント・ページの右上角のコールバック・クライアントをクリックします。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」の部分で、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーを添付するには、「アタッチ」をクリックします。
「OK」をクリックします。
この項では、WebLogic Java EE Webサービス・クライアントにポリシーを添付する方法について説明します。
注意: WebLogic Java EE Webサービス・クライアント・ポリシー添付:
|
Java EE Webサービス・クライアントへポリシーを添付するには:
「アプリケーションの「Webサービスのサマリー」ページへの移動」で説明されているように、Java EE Webサービスのホームページに移動します。
「Java EE Webサービス・クライアント」タブを選択して、アプリケーション内でクライアントを表示します。
図8-8に示すように、「構成」タブを選択して、ポリシーを添付できる利用可能なクライアント・ポートを表示します。
注意: ポートがランタイム・クライアント・インスタンスに関連付けられている場合は、「+」ノードをクリックしてポート名を展開して、関連付けられているインスタンスを表示します。また、ポートがクライアント・アプリケーションで定義されているが、ランタイム・クライアント・インスタンスに正しく関連付けられていない場合に、そのポートにポリシーをアタッチできます。 最新のポリシーが常に強制されるように、WebLogic Java EE Webサービス・クライアントの開発時には、推奨ベスト・プラクティスに従うことが重要です。つまり、処理が完了したらクライアント・インスタンスを明示的に閉じる必要があります。クライアント・インスタンスが閉じられていないと、リポジトリ内のポリシーに対するすべての変更がクライアント上で強制されません。ベスト・プラクティスの詳細は、Oracle WebLogic Server JAX-WS Webサービスの高機能プログラミングのWebサービス・クライアントを開発するためのロードマップに関する項を参照してください。 |
クライアント・ポートの名前をクリックして、「Java EE Webサービス・クライアント・ポート」ページへ移動します。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、添付するポリシーを1つ以上選択します。「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認し、「OK」をクリックします。
次に示すように、添付されたポリシーは、「Java EE Webサービス・クライアント・ポート」ページに表示されます
オプションで、添付されたポリシーの構成オーバーライドを指定します。これを行うには、次の手順を実行します。
ページの「OWSMポリシー」セクションでオーバーライドを構成する必要があるポリシーを選択します。
オーバーライドできるプロパティは、ページの「セキュリティ構成の詳細」セクションに表示されます。
「現在値」フィールドにオーバーライド値を入力し、「適用」をクリックします。
オーバーライドの構成の詳細は、「オーバーライド可能なクライアント・ポリシーの添付」を参照してください。
この項では、SOA参照、接続ベースのWebサービス・クライアント(ADF DC Webサービス・クライアント、ADF JAX-WS Indirection ProxyまたはWebCenterクライアントなど)、Java EE Webサービス・クライアントおよび非同期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サービス・クライアントに対してポリシーを有効化または無効化するには、次の手順を実行します。
「Webサービス・クライアントの表示」の「WLSTの使用」の説明に従って、Webサービス・クライアントを表示します。
「WLSTを使用したWebサービスへのポリシーの添付」で説明するように、listWebServiceClientPorts
を使用して、Webサービス・クライアントのポート名とエンドポイントURLを表示します。
enableWebServiceClientPolicy
コマンドを使用して、Webサービス・クライアントにすでに添付されているポリシーを有効化または無効化します。コマンドをtrue
に設定すると、ポリシーが有効になります。false
に設定すると、ポリシーが無効になります。
enableWebServiceClientPolicy(application,moduleOrCompName,moduleType, serviceRefName,portInfoName,policyURI,[enable],[subjectType=None] )
次の例は、モジュールWssUsernameClient
のポートJRFWssUsernamePort
のクライアント・ポリシーoracle/wss_username_token_client_policy
を有効化します。Webサービスは、ドメインsoainfra
内のサーバーsoa1
のアプリケーションjwsclient_1#1.1.0
の一部です。
wls:/wls-domain/serverConfig>enableWebServiceClientPolicy ('/soainfra/soa1/jwsclient_1#1.1.0','WssUsernameClient','wsconn', 'WssUsernameClient','JRFWssUsernamePort', "oracle/wss_username_token_client_policy",true)
RESTfulサーブレットとして公開されているADFビジネス・コンポーネントなどのサーブレット・アプリケーションを保護するために、表8-1にリストされている事前定義済セキュリティ・ポリシーの1つ以上を添付できます。これらのポリシーの詳細と、それらを手動で構成する方法については、付録B「事前定義済ポリシー」を参照してください。
注意:
このリリースでは、サーブレット・アプリケーション用のクライアント側のポリシー・サポートはありません。 |
表8-1 サーブレット・アプリケーションでサポートされている事前定義済ポリシー
事前定義済ポリシー | 詳細 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サーブレット・アプリケーションの場合、着信リクエストをインターセプトおよび処理するためにOracle WSMサーブレット・フィルタが使用されます。
個々のポリシーを直接サブジェクトに添付する、または次の項で説明するように、ポリシー・セットを使用してタイプ別にサブジェクトのセットにポリシーをグローバルに添付することにより、ポリシー・サブジェクト(この場合、サーブレット)にポリシーを添付できます。
サーブレット・アプリケーションにポリシーを直接添付するには、web.xml
デプロイメント・ディスクリプタ・ファイルを変更して、Oracle WSMサーブレット・フィルタを定義し、保護するためにサーブレットに関連付け、さらにポリシー添付メタデータを定義する必要があります。Oracle WSMサーブレット・フィルタは、1つのサーブレットにのみマップできます。複数のサーブレットを保護する必要がある場合、1対1の対応を維持しながら、複数のサーブレット・フィルタを定義する必要があります。
web.xml
デプロイメント・ディスクリプタの詳細は、Oracle WebLogic Server用のWebアプリケーション、サーブレットおよびJSPの開発のweb.xmlデプロイメント・ディスクリプタの要素に関する項を参照してください。
サーブレット・アプリケーションへのポリシーを直接添付するには:
<filter>
要素を追加することで、Oracle WSMセキュリティ・フィルタを定義し、次のサブ要素を定義します。
<filter-name>
要素を使用して、Oracle WSMサーブレット・フィルタに意味ある名前を指定します。
たとえば、次のようにします。
<filter-name>OWSM Security Filter</filter-name>
<filter-class>
要素を使用して、Oracle WSMサーブレット・フィルタを定義します。
この要素は、次のように定義する必要があります。
<filter-class> oracle.wsm.agent.handler.servlet.SecurityFilter </filter-class>
サーブレット名をパラメータとして、Oracle WSMサーブレット・フィルタ・クラスのinit()
メソッドに渡すには、<filter>
定義に<init-param>
要素を追加します。
たとえば、次のようにします。
<init-param> <param-name>servlet-name</param-name> <param-value>TestServlet</param-value> </init-param>
注意: このパラメータを省略すると、次の手順で<policySet>
要素を定義した場合でも、サーブレット・アプリケーションは保護されません。
1つ以上の<PolicyReference>
または<OverrideProperty>
要素とともに、<policySet>
要素を定義する<init-param>
を追加することにより、セキュリティ・ポリシー添付を定義します。<policySet>
要素の詳細は、付録E「ポリシー・セットのスキーマ参照」を参照してください。
注意: このコンテキストでは、<policySet>
要素はconstraint
またはstatus
属性をサポートしません。これらの属性は、グローバル・ポリシー・アタッチメントのみでサポートされます。
たとえば、次の抜粋コードでは、<policySet>
はCDATA
の形式で構成されています。
<init-param> <param-name>oracle.wsm.metadata.policySet</param-name> <param-value><![CDATA[<sca11:policySet name="policySet" appliesTo="REST-Resource()" attachTo="Service('*')" xmlns:sca11="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" xmlns:wsp15="http://www.w3.org/ns/ws-policy"> <wsp15:PolicyReference URI="oracle/multi_token_rest_service_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> <wsp15:PolicyReference URI="oracle/binding_authorization_permitall_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> </sca11:policySet>]]> </param-value> </init-param>
<filter-mapping>
要素を使用して、Oracle WSMセキュリティ・フィルタをサーブレットに関連付けます。
たとえば、次のようにします。
<filter-mapping> <filter-name>OWSM Security Filter</filter-name> <servlet-name>TestServlet</servlet-name> </filter-mapping>
<servlet>
および<servlet-mapping>
要素を使用して、サーブレットとサーブレットのマッピングを定義します。
たとえば、次のようにします。
<servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>webproj.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/testservlet</url-pattern> </servlet-mapping>
保護する必要があるサーブレットごとに、手順1~3を繰り返します。
例8-1は、サーブレット・アプリケーションにポリシーを添付するために、web.xml
ファイルを更新する方法の例を示します。
例8-1 サーブレット・アプリケーションをポリシーに添付するためのweb.xmlファイルの例
<?xml version = '1.0' encoding = 'windows-1252'?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"> <filter> <filter-name>OWSM Security Filter</filter-name> <filter-class>oracle.wsm.agent.handler.servlet.SecurityFilter</filter-class> <init-param> <param-name>servlet-name</param-name> <param-value>TestServlet</param-value> </init-param> <init-param> <param-name>oracle.wsm.metadata.policySet</param-name> <param-value><![CDATA[<sca11:policySet name="policySet" appliesTo="REST-Resource()" attachTo="Service('*')" xmlns:sca11="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy" xmlns:wsp15="http://www.w3.org/ns/ws-policy"> <wsp15:PolicyReference URI="oracle/multi_token_rest_service_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> <wsp15:PolicyReference URI="oracle/binding_authorization_permitall_policy" orawsp:category="security" orawsp:status="enabled"> </wsp15:PolicyReference> </sca11:policySet>]]> </param-value> </init-param> </filter> <filter-mapping> <filter-name>OWSM Security Filter</filter-name> <servlet-name>TestServlet</servlet-name> </filter-mapping> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>webproj.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/testservlet</url-pattern> </servlet-mapping> </web-app>
サーブレット・アプリケーションにグローバルにポリシーを添付するには、「ポリシー・セットの作成」で説明するように、WLSTを使用してポリシー・セットを作成します。
ポリシー・セットの作成時には、引数型がREST-resource
に設定されていることを確認します。グローバル・ポリシーがドメイン内のすべてのRESTfulサービスに適用されるように、Domain
式として リソース・スコープを定義することをお薦めします。
例8-2は、WLSTを使用してサーブレット・アプリケーションにグローバルにポリシーを添付する例を示します。
例8-2 WLSTを使用したサーブレット・アプリケーションへのグローバルなポリシー添付
C:\Oracle\Middleware\oracle_common\common\bin> wlst.cmd ... wls:/offline> connect("weblogic","password","t3://myAdminServer.example.com:7001") Connecting to t3://myAdminServer.example.com:7001" with userid weblogic ... Successfully connected to Admin Server "AdminServer" that belongs to domain "my_domain". Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead. wls:/my_domain/serverConfig> beginRepositorySession() Session started for modification. wls:/my_domain/serverConfig> createPolicySet('myPolicySet','REST-Resource', 'Domain("*")') Description defaulted to "Global policy attachments for REST Resource resources." The policy set was created successfully in the session. wls:/my_domain/serverConfig> attachPolicySetPolicy('oracle/http_basic_auth_over_ssl_service_policy') Policy reference "oracle/http_basic_auth_over_ssl_service_policy" added. wls:/my_domain/serverConfig> commitRepositorySession() The policy set myPolicySet is valid. Creating policy set myPolicySet in repository. Session committed successfully. wls:/my_domain/serverConfig> displayPolicySet('myPolicySet') Policy Set Details: ------------------- Display Name : mypolicyset Type of Resources: REST Resource Scope of Resources: Domain("*") Description: Global policy attachments for REST Resource resources. Enabled: true Policy Reference: URI=oracle/http_basic_auth_over_ssl_service_policy, category=security, enabled=true wls:/my_domain/serverConfig>
注意: この項で説明する手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
事前定義済またはカスタムのWebサービス・ポリシーでサーバー側の構成プロパティの値を指定して、Webサービスにポリシーを添付するたびにその値を使用するか、または添付ごとのベースでその値をオーバーライドできます。
注意: 有効なポリシー・セットが常にあるように、事前定義済ポリシーは編集しないことをお薦めします。ただし、ベースとして事前定義済ポリシーを使用して新しいポリシーを作成できます。新しいポリシーの作成の詳細は、「既存のポリシーからのWebサービス・ポリシーの作成」を参照してください。新しいポリシーを作成した後は、必要に応じてポリシーを編集し、構成プロパティを設定できます。 |
たとえば、構成プロパティとしてIPアドレスを指定し、そのIPアドレスをWebサービスから検証します。
サーバー側の構成プロパティ値のスコープは、指定されたポリシーに限定されます。つまり、サーバー側の構成プロパティの名前が同じ(たとえばP1)2つのポリシーを、同じWebサービス・エンドポイントに添付し、その2つのP1プロパティに異なる値を指定することができます。
オーバーライドできるサーバー側プロパティには次の2種類あります。
事前定義済ポリシー構成プロパティ: 事前定義済ポリシーに含まれるサーバー側の設定プロパティにより、たとえば署名キー・パスワードを格納するために使用されるCSFキーなど、特定のドメイン単位の構成設定をポリシーからオーバーライドできます。
ユーザー定義ポリシー構成プロパティ: ユーザー定義のプロパティでは、使用環境で意味を持つプロパティを追加できます。ユーザー定義のサーバー側プロパティを、事前定義済ポリシーまたはカスタム・ポリシーに追加できます。ユーザー定義構成プロパティの作成および構成の詳細は、「ユーザー定義のクライアント側またはサーバー側のオーバーライド・プロパティの構成」を参照してください。
次の項では、オーバーライドが許可されるWebサービス・ポリシーを添付する方法についてより詳しく説明します。
事前定義済Oracle WSMメッセージ保護ポリシーは、表8-2に示すサーバー側のオーバーライド・プロパティのセットを定義します。
これらのプロパティを設定(またはオーバーライド)すると、「メッセージ保護に関するキーストアの構成」で説明するように、添付されたWebサービスで、メッセージ保護に関するキーストアの設定の一部として構成されたキーストア・パスワードのかわりに新しい値が使用されます
これらのプロパティを設定せずにデフォルトの空白のままにすると、「メッセージ保護に関するキーストアの構成」で説明するように、メッセージ保護に関するキーストアの設定の一部として構成された値が使用されます。
表8-2 メッセージ保護ポリシーのサーバー側の構成プロパティ
プロパティ名 | デフォルト値 | 説明 |
---|---|---|
|
空白 |
署名キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで署名キーを指定できます。 (WSS10メッセージ保護ポリシーにのみ適用可能) KSSとともに使用する場合、資格証明ストア内の |
|
空白 |
暗号化キー・パスワードをキーストアに格納するために使用する別名とパスワード。 このプロパティにより、ドメイン・レベルのかわりに添付レベルで暗号化キーを指定できます。 (WSS10とWSS11メッセージ保護同期ポリシーに適用可能) KSSとともに使用する場合、資格証明ストア内の |
|
True |
ベアラー・トークンを未署名にするには、(クライアントおよびサービス・ポリシーの両方で)falseに設定します。 デフォルト(true)で、ベアラー・トークンはドメイン署名鍵を使用して署名されています。ベアラー・クライアント・ポリシーの |
|
空白 |
効果的なポリシー計算で、ポリシー添付の優先順位を設定するために使用します。詳細は、「ポリシー・アタッチメントの優先度の指定」を参照してください。 |
|
空白(Falseと同等) |
Webサービス・クライアントからWebサービスへアイデンティティ・コンテキストを伝播するには(クライアントおよびサービス・ポリシーの両方で)trueに設定してから、認証および認可の目的で他のコンポーネントで利用できるようにします(公開します)。 |
デフォルトでは、keystore.sig.csf.key
およびkeystore.enc.csf.key
プロパティは空白です。値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
注意: 有効なポリシー・セットが常にあるように、事前定義済ポリシーは編集しないことをお薦めします。ただし、事前定義済ポリシーから新しいポリシーを作成し、必要に応じてプロパティを構成できます。 |
ポリシーの構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からメッセージ保護ポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、キーストア内のキーに基づいてkeystore.sig.csf.key
およびkeystore.enc.csf.key
プロパティを変更します。画面の一部は、図8-10を参照してください。
変更内容を検証します。
「保存」をクリックします。
事前定義済oracle/binding_permission_authorization_policy
ポリシーは、表8-3に示すサーバー側のオーバーライド・プロパティのセットを定義します。これらのプロパティを使用して、異なるアクションとリソースを設定できます。
これらのプロパティを設定(またはオーバーライド)すると、「認証権限の決定方法」で説明するように、添付されたWebサービスで、構成されたアクションとリソースのかわりに新しい値が使用されます。
表8-3 認可ポリシーのサーバー側の構成プロパティ
プロパティ名 | デフォルト値 | 説明 |
---|---|---|
action |
* |
このポリシーを実行する操作を指定します。 |
resource |
* |
Webサービス名(Webサービスの名前空間 + サービス名)を指定します。 |
デフォルトでは、actionおよびresourceプロパティの値は*です。別の値を設定すると、ポリシーを添付するWebサービスでその値を使用したり、ポリシーを添付するときにその値をオーバーライドしたりできます。
構成プロパティの値を設定する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表から oracle/binding_permission_authorization_policy
ポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
構成プロパティを選択し、「編集」をクリックして、使用環境に基づいてaction
またはresource
プロパティを変更します。
変更内容を検証します。
「保存」をクリックします。
サーバー側のオーバーライド可能な構成プロパティを含むポリシーを添付した後で、既存の値をオーバーライドできます。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
は、メッセージ保護に関するキーストアの設定の一部として構成された値を使用します。
オーバーライド可能なプロパティを持つポリシーを添付する場合は、setWebServicePolicyOverride
コマンドを使用して既存の値をオーバーライドできます。これを実行するには、次の手順に従ってください。
「WLSTを使用したWebサービスへのポリシーの添付」の説明に従って、サービスにポリシーを添付します。
setWebServicePolicyOverride
コマンドを使用して、ポリシー・プロパティをオーバーライドします。
setWebServicePolicyOverride(application,moduleOrCompName,moduleType, serviceName,portName,policyURI,properties)
表8-2および表8-3にリストされているプロパティと、「ユーザー定義のクライアント側またはサーバー側のオーバーライド・プロパティの構成」に記載されているユーザー定義のプロパティをオーバーライドできます。
たとえば、oracle/wss10_message_protection_service_policy
ポリシーのkeystore.sig.csf.key
プロパティをオーバーライドするには、次のコマンドを使用します。
wls:/wls-domain/serverConfig>setWebServicePolicyOverride ('/wls_domain/AdminServer/Jaxwsejb30ws','jaxwsejb', 'web','WsdlConcreteService','WsdlConcretePort', "oracle/wss10_message_protection_service_policy",[("keystore.sig.csf.key","sigkey")])
注意: 指定したポリシーがポートに添付されていない場合は、エラーメッセージが表示されるか例外が返されます。
|
ADFおよびWebCenterアプリケーションの場合は、Webサービス・アプリケーションを再起動します。SOAコンポジットでは再起動する必要はありません。
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
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
ポリシーの「構成」ページでキー値を指定して、すべてのインスタンスに適用できます。
一方、このキー値をクライアントごとにオーバーライドすることもできます。
Webサービス・クライアント・ポリシーで、添付するポリシーに応じて表8-4に定義されている1つ以上のプロパティをオーバーライドできる場合があります。
オーバーライドした構成プロパティをクリアするには、空の文字列を設定します。クリアする前に、他のポリシーで同じプロパティを使用している可能性がないかを確認します。プロパティはクライアント固有ですが、同じプロパティを使用する同一クライアントに複数のポリシーが添付されている場合があります。
注意: クライアント側のセキュリティ・ポリシーを解除する場合、クライアント構成オーバーライドはポート・レベルで適用されるため、手動ですべての構成オーバーライドを削除する必要があります。そうしない場合オーバーライドは、このポートへのすべての将来のポリシー添付(グローバルと直接の両方)に対して有効であり続けます。 |
表8-4 Webサービス・クライアント・ポリシーでオーバーライド可能なプロパティ
プロパティ | 注意 |
---|---|
|
オーディエンス制限。オプションで、設定は任意です。 |
|
オプションで、設定は任意です。 |
|
注意: |
|
ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。 |
|
オプションで、設定は任意です。 |
|
オプションで、設定は任意です。 |
|
オプションで、設定は任意です。 注意: WSS11ポリシーでは、 |
|
ポリシーの「構成」ページで設定するか、オーバーライドできます。 「サービス・アイデンティティ証明拡張の使用」で説明されているように、サービス・アイデンティティ証明拡張の使用機能が優先されます。証明書がWSDLでパブリッシュされる場合には、クライアント・オーバーライド・プロパティ値は無視されます。 |
|
オプションで、設定は任意です。 |
|
クライアントのキータブ・ファイルの場所。 注意: |
|
オプションで、設定は任意です。 |
|
Webサービス・クライアントからWebサービスへアイデンティティ・コンテキストを伝播するには(クライアントおよびサービス・ポリシーの両方で)trueに設定してから、認証および認可の目的で他のコンポーネントで利用できるようにします(公開します)。 |
|
オプションで、設定は任意です。効果的なポリシー計算で、ポリシー添付の優先順位を指定するために使用されます。詳細は、「ポリシー・アタッチメントの優先度の指定」を参照してください。 |
|
オプションで、設定は任意です。 |
|
オプションで、設定は任意です。 |
|
オプションで、設定は任意です。デフォルト値はtrueです。 |
|
オプションで、設定は任意です。 |
|
ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。
|
|
オプションで、設定は任意です。 注意: Oracle WSMが外部から提供されるアイデンティティをアプリケーションから受け入れるには、そのアプリケーションが
その他すべてのSAMLおよびJWTポリシーの場合、
|
|
オプションで、設定は任意です。 |
|
STS構成ポリシーに基づいて、 |
|
STS構成ポリシーに基づいて、 |
|
ポリシーの「構成」ページで設定するか、オーバーライドする必要があります。 |
|
オプションで、設定は任意です。 |
|
オプションで、設定は任意です。 |
Fusion Middleware Controlを使用してクライアント構成プロパティをオーバーライドするには:
「Webサービス・クライアントへのポリシーの添付」で説明するように、ポリシーをWebサービス・クライアントに添付します。
オーバーライドできるプロパティを含むクライアント・ポリシーを添付した後、ポリシーを選択し、図8-13に示す「OWSMポリシー」ページの「セキュリティ構成の詳細」セクションで、プロパティの値を提供します。
注意: この手順は、Oracle Infrastructure Webサービス・クライアントにのみ適用されます。 |
オーバーライド可能なプロパティを持つポリシーを添付する場合は、setWebServiceClientStubProperties
コマンドを使用して既存の値をオーバーライドできます。
WLSTを使用してクライアント構成プロパティをオーバーライドするには:
「WLSTを使用したWebサービス・クライアントへのポリシーの添付」で説明するように、ポリシーをWebサービス・クライアントに添付します。
setWebServiceClientStubProperties
コマンドを使用して、ポリシー・プロパティをオーバーライドします。
setWebServiceClientStubProperties(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, properties)
たとえば、次のようにします。
wls:soainfra/serverConfig> setWebServiceClientStubProperties('/soa_domain/soa_server1/adf_dc_to_bc', 'ADF_BC', 'wsconn', 'AppModuleService', 'AppModuleServiceSoapHttpPort', [("csf-key","HCM_APPID")])
ADF DCおよびWebCenterクライアント・アプリケーションの場合は、Webサービス・クライアント・アプリケーションを再起動します。SOAコンポジットでは再起動する必要はありません。
注意: アプリケーションの停止から再起動まで、約30秒間(または「正常な停止のタイムアウト」に設定された時間と同じ時間)待機する必要があります。この間に、アプリケーションを停止する前にサーバーですべてのグローバル・トランザクションを完了させます。「正常な停止のタイムアウト」に設定された時間待機しない場合、アプリケーションは適切に再起動されず、アクセスできなくなります。「正常な停止のタイムアウト」時間の待機を避けるには、アプリケーションを2回再起動します。 |
WLSTコマンドおよびその引数の詳細は、WebLogic Scripting Toolコマンド・リファレンスのWebサービスのカスタムWLSTコマンドに関する項を参照してください。
注意: この項で説明する手順は、Oracle Infrastructure Webサービスにのみ適用されます。 |
新規構成プロパティの追加機能を使用して、使用環境で意味を持つ1つ以上の構成プロパティを追加できます。特に、1つ以上のユーザー定義のサーバー側またはクライアント側プロパティを、事前定義済ポリシーまたはカスタム・ポリシーに追加できます。それから、ユーザー定義のプロパティをそのまま使用するか、ポリシーに添付するときにそれをオーバーライドできます。
どちらの場合でも、ポリシーをWebサービスまたはクライアントに添付するときに、プロパティをオーバーライドする前にそのプロパティがポリシーに存在している必要があります。つまり、ポリシーにすでに存在するプロパティのみオーバーライドできます。
そのため、通常はユーザーが提供するプロパティをデフォルト値を含めて事前定義済またはカスタムのポリシーに追加し、それから添付単位でそれをオーバーライドします。
required、optional、またはconstantタイプのユーザー定義のプロパティを追加できますが、constantタイプのプロパティはオーバーライドできません。
次の項では、ユーザー定義オーバーライド・プロパティを構成する方法について説明します。
事前定義済の構成プロパティと同様に、ポリシーのユーザー定義の構成プロパティのスコープは、クライアントとWebサービスで異なります。次の内容を考慮します。
クライアント側の構成プロパティ値のスコープは、そのクライアントです。同一クライアントに添付される複数のポリシーが同じプロパティを使用できます。
サーバー側の構成プロパティ値のスコープは、指定されたポリシーに限定されます。つまり、サーバー側の構成プロパティの名前が同じ(たとえばP1)2つのポリシーを、同じWebサービス・エンドポイントに添付し、その2つのP1プロパティに異なる値を指定することができます。
ユーザー定義の構成プロパティを追加するには、事前定義済またはカスタムのポリシーを編集します。
ユーザー定義の構成プロパティを追加する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを追加するポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
「追加」をクリックします。図8-14に示すように、「新規構成プロパティの追加」ダイアログ・ボックスが表示されます。
次の情報を入力して、「OK」をクリックします。
「プロパティ・セット」は、このプロパティを含めるグループ(セット)の名前です。これは必須フィールドです。
「名前」は、プロパティの名前です。名前はこのポリシーに対して一意である必要があります。これは必須フィールドです。
「説明」は、プロパティの説明です。
「値」は、プロパティの現在の文字列値です。これは必須フィールドです。
「デフォルト」は、プロパティが他で設定されていない場合のプロパティのデフォルトの文字列値です。
「コンテンツ・タイプ」は、Constant、Optional、Requiredのいずれかです。タイプがOptionalとRequiredのプロパティのみオーバーライドできます。
ポリシーを検証します。
「保存」をクリックします。
ユーザー定義の構成プロパティを変更する必要がある場合は、これを編集できます。
ユーザー定義の構成プロパティを編集する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」ページで、「ポリシー」表からプロパティを編集するポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
編集するユーザー定義の構成プロパティを選択して、「編集」をクリックします。
必要な変更を行います。
ポリシーを検証します。
「保存」をクリックします。
ユーザー定義の構成プロパティが必要なくなった場合は、これを削除できます。
ユーザー定義の構成プロパティを削除する手順
「Fusion Middleware Controlで「Webサービス・ポリシー」ページに移動」の説明に従って、「Webサービス・ポリシー」ページに移動します。
「Webサービス・ポリシー」 ページで、「ポリシー」表からプロパティを削除するポリシーを選択して「編集」をクリックします。
「ポリシーの編集」ページで、「構成」タブをクリックします。
削除するユーザー定義の構成プロパティを選択して、「削除」をクリックします。
ポリシーを検証します。
「保存」をクリックします。
「単一のサブジェクトへのポリシーの添付」、「複数のサブジェクトへのポリシーの添付(一括添付)」または「Webサービス・クライアントへのポリシーの添付」で説明するように、必要に応じてユーザー定義ポリシーを添付します。
ユーザー定義構成プロパティを含むポリシーを添付するとき、次のように既存の値をオーバーライドできます。
Webサービス・ポリシーのユーザー定義構成プロパティをオーバーライドするには:
Fusion Middleware Controlを使用するには、「Fusion Middleware Controlを使用したサービス・ポリシーの添付時の構成プロパティのオーバーライド」を参照してください。
WLSTを使用して、「WLSTを使用したポリシーの添付時の構成プロパティのオーバーライド」で説明されているように、setWebServicePolicyOverride
コマンドを使用します。
Webサービス・クライアント・ポリシーのユーザー定義構成プロパティをオーバーライドするには:
Fusion Middleware Controlを使用するには、「オーバーライド可能なクライアント・ポリシーの添付」を参照してください。
WLSTを使用して、「WLSTを使用したオーバーライド可能なクライアント・ポリシーの添付」で説明するように、setWebServiceClientStubProperties
コマンドを使用します。