Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理 12c (12.1.3) E59414-02 |
|
前 |
次 |
この章では、セキュリティ・ポリシーを紹介し、説明します。セキュリティ・ポリシーにより、組織全体で一貫性のあるWebサービスの管理と保護のためのフレームワークが提供されます。これらは、Webサービスやクライアントなどのポリシー・サブジェクトに直接アタッチできます。ポリシー・セットを使用すると、ある範囲に含まれる同じタイプのエンドポイントに対して、ポリシーをグローバルにアタッチできます。この章では、設計時にポリシーをアタッチする方法や、デプロイ後にOracle Enterprise Manager Fusion Middleware ControlやWebLogic Scripting Tool (WLST)のコマンド行インタフェースを使用してポリシーおよびポリシー・セットをアタッチおよび管理する方法について説明します。
この章の内容は次のとおりです。
ポリシー・サブジェクトは、OWSMポリシーをアタッチするターゲット・リソースです。異なるリソースのタイプ(Webサービス、クライアント、SOAコンポーネントなど)には異なるポリシーがあります。ポリシーの関連付けが可能なポリシー・サブジェクトの詳細は、『Oracle Web Services Managerの理解』のポリシー・サブジェクトへのポリシーのアタッチに関する項を参照してください。
Webサービス・クライアントとWebサービスにポリシーをアタッチする方法には、クライアントおよびサービスの設計時に行う方法と、デプロイ後に行う方法の2つがあります。
設計時には、プログラムによってOWSMセキュリティおよび管理ポリシーをアプリケーションにアタッチすることもできます。これを行うには、通常、Oracle JDeveloperなどの任意のIDEを使用します。Oracle JDeveloperはADFとSOAのクライアント・ポリシー・アタッチメントを自動化します。
デプロイ後には、Oracle Enterprise Manager Fusion Middleware ControlやWLSTを使用してセキュリティおよび管理ポリシーをOracle Infrastructure WebサービスおよびWebLogic Webサービスにアタッチします。この場合、Webサービスのセキュリティがセキュリティ管理者の制御下に移るため、この方法は最も強力で柔軟性があります。ポリシーはエンドポイントに直接アタッチできます。また、ポリシー・セットを使用してエンドポイントの範囲に対してグローバルにアタッチできます。
注意: (ポリシー・セットを使用して)グローバルにアタッチされたポリシーは、RESTful Webサービスとクライアント、Oracle Infrastructure Webサービスとクライアント、およびJava EE Webサービスとクライアントでサポートされています。ただし、ポリシー・セットに非セキュリティ・ポリシーが含まれている場合、非セキュリティ・ポリシーは無視され、Java EE Webサービスおよびクライアント用に計算された有効なポリシー・セットに含まれません。グローバルにアタッチされたポリシーは、スタンドアロンのJava EEクライアントではサポートされていません。 Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。 |
ポリシーを設計時にアタッチする場合でもデプロイ後にアタッチする場合でも、クライアント側ポリシーは、Webサービスに関連付けられたポリシーと同等のものである必要があります。2つのファイルが異なり、各ファイルに含まれるアサーションの競合が発生している場合、Webサービスの操作を起動すると、エラーが返されます。
たとえば、oracle/wss_http_token_over_ssl_service_policy
ポリシーで一方向認証が必要になる場合、クライアント・ポリシーも一方向認証用に設定する必要があります。
事前定義済ポリシーの場合、クライアントとWebサービス・ポリシーの両方が含まれます。新しいポリシーを作成する場合、「Webサービス・ポリシーの作成および編集」の説明に従ってポリシーを生成すると、クライアント・ポリシーがサービス・ポリシーと連携する可能性が高くなります。
注意: OWSMポリシー・マネージャが使用できない場合、ADFサービスとクライアントのポリシー・アタッチメントに加えた変更はOWSMリポジトリに保存されません。OWSMポリシー・マネージャへの接続に関するトラブルシューティングの詳細は、「OWSMポリシー・マネージャでの問題の診断」を参照してください。 |
次の項では、Oracle Infrastructure Webサービスを使用しているか、Java EE (WebLogic) Webサービスまたはクライアントを作成しているかに基づいた注釈を使用して、Webサービスおよびクライアントにポリシーをアタッチする方法を説明します。
次の項で説明するように、設計時にJava EE Webサービスおよびクライアントにポリシーをアタッチできます。
Java EE Webサービスおよびクライアントにセキュリティ・ポリシーをアタッチするには、次の注釈のいずれかを使用します。
weblogic.wsee.jws.jaxws.owsm.SecurityPolicy
(single policy)
weblogic.wsee.jws.jaxws.owsm.SecurityPolicies
(multiple policies)
Java EE WebサービスでサポートされているのはOWSMポリシーの一部のみです。詳細は、第3.3項「Java EE WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
Java EE Webサービスの場合、OWSMセキュリティ・ポリシーをクラス・レベルでのみアタッチできます。Java EE Webサービス・クライアントの場合、java.xml.ws.WebServiceRef
注釈を使用して定義したWebサービス・インジェクション・ターゲットにOWSMポリシーをアタッチできます。
Webサービス・クライアントにセキュリティ・ポリシーをアタッチする場合、例4-2
に示すように、weblogic.wsee.jws.jaxws.owsm.Property
注釈を@SecurityPolicy注釈とともに使用してポリシー構成プロパティをオーバーライドできます。また、第5.3項「設計時におけるクライアント・ポリシー構成プロパティのオーバーライド」
で説明するように、JAX-WSのRequestContextを使用してポリシー構成プロパティをオーバーライドできます。
注意: 機能クラスを使用したJava EE Webサービス・クライアントへのOWSMセキュリティ・ポリシーのアタッチは、注釈よりも優先されます。詳細は、第4.2.1.2項「機能クラスを使用したJava EE Webサービス・クライアントへのポリシーのアタッチ」を参照してください。 |
詳細の参照先は、次のとおりです。
@SecurityPolicy
、@SecurityPolicies
および@Property
注釈は、『Oracle WebLogic Server WebLogic Webサービス・リファレンス』のWebLogic固有の注釈に関する項を参照してください。
Java EE Webサービスの開発は、『Oracle WebLogic Server JAX-WS Webサービスの開発』のJAX-WS Webサービスの開発に関する項を参照してください。
Java EE Webサービス・クライアントの開発と@WebServiceRef
を使用したWebサービス・インジェクション・ターゲットの定義は、『Oracle WebLogic Server JAX-WS Webサービスの開発』のJava EE Webサービス・クライアントの開発に関する項を参照してください。
次の例では、注釈を使用してJava EE Webサービスに複数のOWSMセキュリティ・ポリシーをアタッチする方法を説明します。
例4-1 注釈を使用したJava EE Webサービスへのセキュリティ・ポリシーのアタッチ
import javax.ws.WebService; import weblogic.wsee.jws.jaxws.owsm.SecurityPolicy; import weblogic.wsee.jws.jaxws.owsm.SecurityPolicies; ... @SecurityPolicies({ @SecurityPolicy(uri= "policy:oracle/wss10_username_token_with_message_protection_server_policy"), @SecurityPolicy(uri="policy:oracle/authorization_policy") }) @WebService public class HelloWorldImpl { ... }
次の例では、注釈を使用してJava EE Webサービス・クライアントにポリシーをアタッチする方法を説明します。この例では、@Property
注釈は、クライアント・ポリシーをアタッチする際のキーストア受信者の別名の構成プロパティのオーバーライドに使用されます。
例4-2 注釈を使用したJava EE Webサービス・クライアントへのセキュリティ・ポリシーのアタッチ
package wsrm_jaxws.example; import java.xml.ws.WebService; import java.xml.ws.WebServiceRef; import weblogic.wsee.jws.jaxws.owsm.SecurityPolicy; import weblogic.wsee.jws.jaxws.owsm.SecurityPolicies; import oracle.wsm.security.util.SecurityConstants.ClientConstants; ... @WebServiceRef(name="MyServiceRef") @SecurityPolicies({ @SecurityPolicy(uri="policy:oracle/wss10_message_protection_client_policy", properties = { @Property(name="ClientConstants.WSS_KEYSTORE_LOCATION", value="c:/mykeystore.jks") } ), @SecurityPolicy(uri="policy:oracle/authorization_policy") }) Service service; ...
注意: 設計時に機能クラスを使用してOWSMポリシーをアタッチした場合、クライアント・アプリケーションのデプロイ後に、Fusion Middleware Controlを使用してポリシーを追加または変更できません。デプロイ後にポリシーを追加または修正する場合は、次のいずれかのポリシー・アタッチメントの方法を使用することをお薦めします。
|
次の機能クラスのいずれかを使用して、Java EE Webサービス・クライアントにOWSMセキュリティ・ポリシーをアタッチします。
weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature
クラス(単一ポリシー)
weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature
クラス(複数ポリシー)
Java EE WebサービスでサポートされているのはOWSMポリシーの一部のみです。詳細は、第3.3項「Java EE WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
次の例は、SecurityPolicyFeature
クラスを使用してWebサービス・クライアントに1つのOWSMポリシーをアタッチする方法を示しています。
注意: この例に示すoracle/wss_username_token_client ポリシーはセキュアではありません。パスワードをクリア・テキストで送信します。このポリシーは、セキュリティが低くても問題にならない場合のみ、または他のメカニズムでトランスポートが保護されていることがはっきりしている場合に使用してください。または、このポリシーのSSLバージョンであるoracle/wss_username_token_over_ssl_client_policy の使用を検討します。 |
例4-3 SecurityPolicyFeatureの使用
... JAXWSService jaxWsService = new JAXWSService (); weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature securityFeature = new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature { new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature("policy:oracle/wss_username_token_client_policy") }; JAXWSServicePort port = jaxWsService.getJaxWsServicePort(securityFeature); ...
次の例は、SecurityPoliciesFeature
クラスを使用してWebサービス・クライアントに複数のOWSMポリシーをアタッチする方法を示しています。
例4-4 SecurityPoliciesFeatureの使用
... weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature securityFeature = new weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature { new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature( new String[] {"policy:oracle/wss_username_token_client_policy", "policy:oracle/authorization_policy"}); ...
JDeveloperを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチの詳細は、『Oracle JDeveloperによるアプリケーションの開発』のJAX-WS Webサービスおよびクライアントへのポリシーのアタッチ方法に関する項を参照してください。
次の項で説明するように、設計時にRESTful Webサービスおよびクライアントにポリシーをアタッチできます。
注意: Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。サーブレット・アプリケーションにポリシーをアタッチするために |
注意: Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。 |
RESTful Webサービスにセキュリティ・ポリシーをアタッチするには、oracle.wsm.metadata.annotation
パッケージに含まれる次の注釈のいずれかを使用します。
@PolicySet
@PolicyReference
@Property
OWSMポリシーのサブセットのみがRESTful Webサービスでサポートされます。詳細は、第3.4項「RESTful WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
JAX-RSアプリケーション・クラスにのみ、ポリシーをプログラムによってアタッチできます。
RESTful Webサービスにセキュリティ・ポリシーをアタッチする場合、次の例4-5
に示すように、@Property
注釈を@PolicyReference注釈とともに使用してポリシー構成プロパティをオーバーライドできます。
注釈の詳細は、付録A「セキュリティおよびポリシー注釈リファレンス」を参照してください。事前定義済ポリシーの詳細は、第17章「事前定義済ポリシー」を参照してください。
例4-5では、@PolicySet
、@PolicyReference
および@Property
注釈を使用してJAX-RSアプリケーション・クラスを保護する方法の例を示します。
例4-5 注釈を使用したRESTful Webサービスへのポリシーのアタッチ
... import javax.ws.rs.core.Application; import javax.ws.rs.ApplicationPath; import oracle.wsm.metadata.annotation.PolicySet; import oracle.wsm.metadata.annotation.PolicyReference; import oracle.wsm.metadata.annotation.Property; ... @PolicySet(references = { @PolicyReference("oracle/wss_http_token_service_policy"), @PolicyReference(value = "oracle/binding_permission_authorization_policy", properties = { @Property(name="resource",value="com.sun.jersey.samples.helloworld.resources.MyApplication"), @Property(name="action",value="")}) }) @ApplicationPath("resources") public class MyApplication extends Application { public Set<Class<?>> getClasses() { Set<Class<?>> s = new HashSet<Class<?>>(); s.add(HelloWorldResource.class); return s; } }
注意: Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。設計時に機能クラスを使用してOWSMポリシーをアタッチした場合、クライアント・アプリケーションのデプロイ後に、Fusion Middleware Controlを使用してポリシーを追加または変更できません。デプロイ後にポリシーの追加または変更を行うには、第4.3.1.2項「Fusion Middleware Controlを使用したWebサービス・クライアントへのポリシーを直接アタッチする」の説明に従って、デプロイ後のFusion Middleware Controlを使用してWebサービス・クライアントにOWSMポリシーをアタッチすることをお薦めします。 |
表4-1で定義している機能クラスを使用して、プログラムによってRESTful Webサービス・クライアントにOWSMセキュリティ・ポリシーをアタッチできます。クラスはoracle.wsm.metadata.feature
パッケージで提供されます。機能クラスの詳細は、表A-1を参照してください。
表4-1 RESTfulクライアントへのポリシーのアタッチに使用される機能クラス
機能クラス | 説明 |
---|---|
|
ポリシー・サブジェクトの機能クラスのためのベース抽象クラス。 |
|
ポリシー・サブジェクトにアタッチするためのポリシー参照と構成オーバーライド・プロパティのセット。 |
|
ポリシー・サブジェクトにアタッチするための単一のポリシー参照。 |
|
1つ以上のポリシーの構成のオーバーライドに使用できるオプションのプロパティ。 |
RESTfulクライアント・インスタンスを作成するときにcom.sun.jersey.api.client.config.ClientConfig
を定義してweblogic.jaxrs.api.client.Client
クラスのcreate
メソッドに情報を渡すことにより、必要に応じてクライアント構成プロパティを渡すことができます。詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』のクライアント・インスタンスの開発と構成に関する項を参照してください。
次の例に示すように、ClientConfig
を使用して、OWSMポリシーをアタッチして構成プロパティをオーバーライドできます。次のコードでは、oracle/wss_http_token_client_policy
ポリシーをクライアントにアタッチし、CO_CSF_KEY
構成プロパティを値weblogic-csf-key
でオーバーライドします。
例4-6 機能クラスを使用したRESTful Webサービス・クライアントへのポリシーのアタッチ
package samples.helloworld.client; import weblogic.jaxrs.api.client.Client; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; import oracle.wsm.metadata.feature.PolicyReferenceFeature; import oracle.wsm.metadata.feature.AbstractPolicyFeature; import oracle.wsm.metadata.feature.PolicySetFeature; import oracle.wsm.metadata.feature.PropertyFeature; ... public static void main(String[] args) { ClientConfig cc = new DefaultClientConfig(); cc.getProperties().put(AbstractPolicyFeature.ABSTRACT_POLICY_FEATURE, new PolicySetFeature( new PolicyReferenceFeature(( "oracle/wss_http_token_client_policy"), new PropertyFeature(SecurityConstants.ConfigOverride.CO_CSF_KEY, "weblogic-csf-key")))); Client c = Client.create(cc); ...
JDeveloperを使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチの詳細は、Oracle JDeveloperによるアプリケーションの開発のRESTful Webサービスおよびクライアントへのポリシーのアタッチ方法に関する項を参照してください。
次の項で説明するように、設計時にOracle Infrastructure Webサービスおよびクライアントにポリシーをアタッチできます。
第4.2.3.2項「機能クラスを使用したOracle Infrastructure Webサービス・クライアントへのポリシーのアタッチ」
第4.2.3.3項「Oracle JDeveloperを使用したOracle Infrastructure Webサービスへのポリシーのアタッチ」
Oracle Infrastructure Webサービスにポリシーをアタッチするには、付録A「セキュリティおよびポリシー注釈リファレンス」で定義している注釈のいずれかを使用できます。
セキュリティおよびポリシーの注釈を使用してアタッチできる事前定義済ポリシーの詳細は、第17章「事前定義済ポリシー」を参照してください。
図4-0では、コールバック・サービスに接続する非同期Webサービスとそのコールバック・クライアントにポリシーをアタッチする方法を示します。
例4-7 注釈を使用したOracle Infrastructure Webサービスへのポリシーのアタッチ
... import oracle.wsm.metadata.annotation.CallbackPolicySet; import oracle.wsm.metadata.annotation.PolicySet; import oracle.wsm.metadata.annotation.PolicyReference; import oracle.wsm.metadata.annotation.Property; ... @PortableWebService(serviceName = "EchoService", portName = "EchoPort") @PolicySet(references = @PolicyReference( "oracle/wss_username_token_service_policy")) @CallbackPolicySet(properties = @Property("reference.priority", "1"), references = { @PolicyReference("oracle/wss10_saml_token_client_policy"), @PolicyReference("oracle/log_policy") }) public class EchoService { public EchoService() { super(); } public String echo(String message) { return message + " echoed"; } }
表A-1で定義している機能クラスを使用して、プログラムによってOracle Infrastructure Webサービス・クライアントにOWSMポリシーをアタッチできます。
RequestContext
を使用して、OWSMポリシーをアタッチして構成プロパティをオーバーライドできます。たとえば、次のコードはoracle.wms.metadata.feature
パッケージの機能クラスを使用してoracle/wss_http_token_client_policy
ポリシーをクライアントにアタッチし、CO_CSF_KEY
構成プロパティを値weblogic-csf-key
でオーバーライドする方法を示しています。
例4-8 機能クラスを使用したOracle Infrastructure Webサービス・クライアントへのポリシーのアタッチ
... import oracle.wsm.metadata.feature.PolicyReferenceFeature; import oracle.wsm.metadata.feature.AbstractPolicyFeature; import oracle.wsm.metadata.feature.PolicySetFeature; import oracle.wsm.metadata.feature.PropertyFeature; ... void configureBasicAuth(Dispatch<SOAPMessage> dispatch) { Map<String, Object> reqContext = dispatch.getRequestContext(); reqContext.put(AbstractPolicyFeature.ABSTRACT_POLICY_FEATURE, new PolicySetFeature( new PolicyReferenceFeature( "oracle/wss_http_token_client_policy"), new PropertyFeature(SecurityConstants.ConfigOverride.CO_CSF_KEY, "weblogic-csf-key"))); } ...
JDeveloperを使用してアプリケーションを開発している場合、Oracle Infrastructure Webサービスおよびクライアントにポリシーをアタッチするウィザードを利用できます。詳細は、次を参照してください:
Oracle SOA Suiteを使用したSOAアプリケーションの開発のポリシーの管理に関する項とバインディング・コンポーネントとサービス・コンポーネントへのポリシーのアタッチに関する項
『Oracle Application Development Framework開発者ガイド』のWebサービス・データ・コントロールの保護に関する項
『Oracle JDeveloperによるアプリケーションの開発』のWebサービスの開発と保護に関する項
次の項では、単一のポリシー・サブジェクトへのポリシーのアタッチ方法、複数サブジェクトへのアタッチ方法(グローバル・アタッチメント)、およびポリシーがアタッチされた後にサブジェクトを検証する方法について説明します。
次の項では、単一サブジェクトへのポリシーをアタッチおよびデタッチする方法およびポリシーがアタッチされた後にサブジェクトを検証する方法について説明します。
注意:
WebLogic Java EE Webサービス:
OWSMセキュリティ・ポリシーのサブセットのみアタッチできます。詳細は、第3.3項「Java EE WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
OWSMポリシーとWebLogic Webサービス・ポリシーは、同じエンドポイントにはアタッチできません。Java EEエンドポイントにWebLogicポリシーがアタッチされている場合、「WSMポリシー」タブは表示されず、OWSMセキュリティ・ポリシーをアタッチすることはできません。かわりに「WebLogicポリシー違反」タブが表示され、エンドポイントにアタッチされているWebLogic Webサービス・ポリシーの違反の詳細が示されます。
WebLogicポリシーは、WebLogic Server管理コンソールを使用してアタッチできることに注意してください。Fusion Middleware Controlを使用してWebLogicポリシーをアタッチすることはできません。
RESTful Webサービス:
Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。
OWSMセキュリティ・ポリシーのサブセットのみアタッチできます。詳細は、第3.4項「RESTful WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
サーブレット・アプリケーションにポリシーをアタッチするために「サーブレット・アプリケーションへのポリシーのアタッチ」
の説明に従ってweb.xmlデプロイメント・ディスクリプタ・ファイルを変更し、OWSMサーブレット・フィルタを定義した場合、デプロイメント・ディスクリプタの定義は、この項で説明するポリシー・アタッチメント手順よりも優先されます。
SOAコンポジット・サービスの場合、OWSMポリシーのサブセットのみが適用されます。詳細は、「SOAコンポジット・サービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。
注意: クラスタ化されたサーバー環境内のサブジェクトに直接ポリシーをアタッチすると、少し遅れてポリシー・アタッチメントの詳細がクラスタ内の他のサーバーに伝播されます。情報を迅速に伝播させるには、次の手順のいずれかを実行します。
|
サブジェクトは、ポリシーを関連付けられるエンティティです。サブジェクトには、1つ以上のポリシーをアタッチできます。
ポリシーが実行される順序は、サブジェクトにポリシーがアタッチされる順序や、アタッチされたポリシーのリストの順序では決定されません。クライアントとWebサービス間でメッセージが受け渡される際に、ポリシー・インターセプタ・チェーン内のインターセプタの順序でポリシーが実行される順序が決定されます。
詳細は、『Oracle Web Services Managerの理解』のポリシーの実行方法に関する項を参照してください。
単一のサブジェクトにポリシーを直接アタッチするには:
『Webサービスの管理』のFusion Middleware Controlを使用したWebサービス・エンドポイントの詳細の表示に関する項の説明に従って、Webサービス・エンドポイントの詳細を表示します。
注意: 『Webサービスの管理』のRESTfulサービス・アプリケーションの詳細の表示に関する項で説明するように、RESTful Webサービスにポリシーをアタッチする場合は、RESTfulアプリケーションにのみポリシーをアタッチできます。RESTfulリソースにはポリシーをアタッチできません。 |
「WSMポリシー」(または「ポリシー」)タブをクリックします。
エンドポイントにグローバルにアタッチされたポリシーおよび直接アタッチされたポリシーのみが、図4-1に示すように表示されます。
「アタッチ/デタッチ」をクリックします。
「使用可能なポリシー」リストからポリシーを選択し、「添付」をクリックします。詳細は、図4-2を参照してください。
注意: 使用可能なポリシーのリストは、ポリシーのアタッチ先がSOAPなのかRESTful Webサービスまたはクライアントなのかに基づいてフィルタリングされます。 |
ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。図4-3に示すように、ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。ポリシーの詳細を確認し終わったら、「OK」をクリックします。
必要に応じてポリシーの選択とアタッチを続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「OK」をクリックします。
図4-1に示すように、「Webサービス・エンドポイント」ページの「WSMポリシー」タブに、アタッチされたポリシーが表示されます。
注意: 出力には、エンドポイントで有効であるグローバルにアタッチされたポリシー、すべての直接アタッチされたポリシー、およびエンドポイントに有効な構成があり、セキュアであるかどうかが示されます。「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接アタッチされたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。エンドポイントで有効なポリシーの詳細は、「ポリシーの有効セットの計算方法」を参照してください。 |
この項では、Java EE Webサービス・クライアント、SOA参照、ADF Data Control (DC)および非同期のWebサービス・コールバック・クライアントなどのOracle Infrastructure Webサービス・クライアントに、ポリシーをアタッチする方法について説明します。
注意: RESTful Webサービス・クライアントには設計時にのみポリシーをアタッチできます。詳細は、第4.2.2.2項「機能クラスを使用したRESTful Webサービス・クライアントへのポリシーのアタッチ」を参照してください。 |
次の手順では、SOA参照にポリシーを添付する方法について説明します。SOA参照の開発方法の詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』を参照してください。
SOA参照にポリシーを添付する手順
『Webサービスの管理』のSOA参照の表示に関する項の説明に従って、SOA参照を表示します。
「ポリシー」タブを選択します。
ページの「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、添付するポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーをアタッチするには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順は、ADF DC Webサービス・クライアントやADF JAX-WSインダイレクション・プロキシなどの接続ベースのWebサービス・クライアントにポリシーをアタッチする方法を示しています。
ADF DC Webサービス・クライアントの開発の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のFusion WebアプリケーションでのADFモデルの使用に関する項を参照してください。
接続ベースのWebサービス・クライアントへのポリシーをアタッチするには:
ナビゲーション・ペインで「アプリケーションのデプロイ」を開きます。
ナビゲーション・ペインで対象のアプリケーション・デプロイメントを開き、そのアプリケーションを選択します。
コンテンツ・ペインで、「アプリケーションのデプロイ」→「ADF」→「ADF接続の構成」を選択します。
「ADF接続構成」ページで、「Webサービス接続」リストから1行を選択します。
「詳細な接続構成」をクリックして、リストからWebサービス・クライアントを選択します。
「Webサービス・クライアント」ページで、「WSMポリシー」タブを選択します。
ページの「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、アタッチするポリシーを1つ以上選択します。ポリシーを検証するには「検証」をクリックし、クライアント・ポリシーとサービス・ポリシーの互換性を確認するには「サービスの互換性をチェックします」をクリックします。
ポリシーをアタッチするには、「アタッチ」をクリックします。
「OK」をクリックします。
次の手順では、非同期のWebサービス・コールバック・クライアントにポリシーをアタッチする方法について説明します。非同期Webサービスおよび非同期コールバック・クライアントの開発の詳細は、『Oracle Infrastructure Webサービスの開発』の非同期Webサービスの開発に関する項を参照してください。
非同期コールバック・クライアントにポリシーをアタッチする手順
『Webサービスの管理』のFusion Middleware Controlを使用したWebサービス・エンドポイントの詳細の表示に関する項の説明に従って非同期Webサービスのエンドポイントに移動します。
エンドポイント・ページの右上角のコールバック・クライアントをクリックします。
「WSMポリシー」タブをクリックします。
ページの「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、アタッチするポリシーを1つ以上選択し、「アタッチ」をクリックします。
「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「OK」をクリックします。
この項では、WebLogic Java EE Webサービス・クライアントにポリシーをアタッチする方法について説明します。
注意: WebLogic Java EE Webサービス・クライアント・ポリシー・アタッチメント:
|
Java EE Webサービス・クライアントへポリシーをアタッチするには:
『Webサービスの管理』のアプリケーションの「Webサービスのサマリー」ページの表示に関する項の説明に従って、Java EE Webサービスのホームページに移動します。
「Java EE Webサービス・クライアント」タブを選択して、アプリケーション内でクライアントを表示します。
図4-4に示すように、「構成」タブを選択して、ポリシーをアタッチできる利用可能なクライアント・ポートを表示します。
注意: ポートがランタイム・クライアント・インスタンスに関連付けられている場合は、ポート名を開いて関連付けられているインスタンスを表示します。また、ポートがクライアント・アプリケーションで定義されているが、ランタイム・クライアント・インスタンスに正しく関連付けられていない場合に、そのポートにポリシーをアタッチできます。最新のポリシーが常に強制されるように、WebLogic Java EE Webサービス・クライアントの開発時には、推奨ベスト・プラクティスに従うことが重要です。つまり、処理が完了したらクライアント・インスタンスを明示的に閉じる必要があります。クライアント・インスタンスが閉じられていないと、リポジトリ内のポリシーに対するすべての変更がクライアント上で強制されません。ベスト・プラクティスの詳細は、『Oracle WebLogic Server JAX-WS Webサービスの開発』のJAX-WS Webサービス・クライアントを開発するためのロードマップに関する項を参照してください。 |
クライアント・ポートの名前をクリックして、「Java EE Webサービス・クライアント・ポート」ページへ移動します。
「アタッチ/デタッチ」をクリックします。
ページの「使用可能なポリシー」セクションで、アタッチするポリシーを1つ以上選択します。「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認し、「OK」をクリックします。
図4-5に示すように、アタッチされたポリシーは、「Java EE Webサービス・クライアント・ポート」ページに表示されます
オプションで、アタッチされたポリシーの構成オーバーライドを指定します。これを行うには:
ページの「WSMポリシー」セクションでオーバーライドを構成する必要があるポリシーを選択します。
オーバーライドできるプロパティは、ページの「セキュリティ構成の詳細」セクションに表示されます。
「現在値」フィールドにオーバーライド値を入力し、「適用」をクリックします。
オーバーライドの構成の詳細は、「Fusion Middleware Controlを使用したWebサービス・クライアント・アプリケーション・レベルでの構成プロパティのオーバーライド」を参照してください。
Webサービスにポリシーをアタッチすると、デフォルトで有効化されます。Webサービスからポリシーの関連付けを解除せずに、1つのエンドポイントに対してポリシーを一時的に無効化できます。ポリシーがエンドポイントに対して無効化されると、そのエンドポイントに対して施行されません。
エンドポイント(ポート)にアタッチされているポリシーを有効化または無効化するには:
『Webサービスの管理』のアプリケーションの「Webサービスのサマリー」ページへの移動に関する項の説明に従って、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、「Webサービス・エンドポイント」タブを選択してアプリケーション内のWebサービス・エンドポイントのリストを表示します。
特定のWebサービスについては、エンドポイントの名前をクリックして「Webサービス・エンドポイント」ページに移動します。
「WSMポリシー」タブをクリックします。エンドポイントにグローバルにアタッチされたポリシーおよび直接アタッチされたポリシーのみが表示されます。
「直接アタッチされたポリシー」リストからポリシーを選択し、「有効化」または「無効化」をクリックしてポリシーを有効化または無効化します。
Webサービスからポリシーをデタッチするには:
『Webサービスの管理』のアプリケーションの「Webサービスのサマリー」ページの表示に関する項の説明に従って、Webサービスのホームページに移動します。
「Webサービス・エンドポイント」タブを選択してアプリケーション内のエンドポイントを表示し、ポリシーをデタッチするエンドポイントを選択します。
「Webサービス・エンドポイント」ページで、「WSMポリシー」タブを選択します。エンドポイントにグローバルにアタッチされたポリシーおよび直接アタッチされたポリシーのみが表示されます。
ページの「直接アタッチされたポリシー」セクションで、「アタッチ/デタッチ」をクリックします。
「直接アタッチされたポリシー」表でデタッチするポリシーを選択し、「デタッチ」をクリックします。
「OK」をクリックして「Webサービス・エンドポイント」ページに戻ります。
注意: グローバル・ポリシー・アタッチメントは、RESTful Webサービスとクライアント、Oracle Infrastructure Webサービスとクライアント、およびJava EE Webサービスとクライアントでサポートされています。WebLogic Java EE Webサービス:
RESTful Webサービス:
SOAコンポジット・サービスの場合、OWSMポリシーのサブセットのみが適用されます。詳細は、「SOAコンポジット・サービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。 |
ポリシー・セットを使用すると、ある範囲に含まれる同じタイプのエンドポイントに対して、ポリシーをグローバルにアタッチできます。グローバル・ポリシー・アタッチメントの詳細は、『Oracle Web Services Managerの理解』のポリシー・セットを使用したグローバル・ポリシー・アタッチメントの概要に関する項を参照してください。
この項では、Fusion Middleware Controlを使用してポリシー・セットを管理および作成する方法について説明します。
この項の内容は次のとおりです。
ポリシー・セットは、「WSMポリシー・セット・サマリー」ページからドメイン・レベルで管理できます。このページから、すべての既存のポリシー・セットのリストや個別のポリシー・セットの詳細を表示したり、新しいポリシーを作成したり、既存のポリシー・セットをコピー、編集または削除できます。また、ポリシー・セット内のポリシー参照のオーバーライドの構成もできます。
「WSMポリシー・セット・サマリー」ページに移動するには:
ナビゲータ・ペインで「WebLogicドメイン」を開きます。
ポリシー・セットを管理するドメインを選択します。
「WebLogicドメイン」メニューから、「Webサービス」→「WSMポリシー・セット」を選択します。
図4-6に示すように、「WSMポリシー・セット・サマリー」ページが表示されます。
次の項では、Fusion Middleware Controlを使用してポリシー・セットを表示する方法について説明します。
ポリシー・セットを表示するには:
「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「WSMポリシー・セット・サマリー」ページに移動します。
「WSMポリシー・セット・サマリー」ページで、表からポリシー・セットを選択し、「表示」をクリックします。
このページから、ポリシー・セットに関する一般情報、適用先のリソースのスコープ、構成済の任意の制約およびポリシー・セットに含まれるポリシー参照を表示できます。
ポリシー・セットを参照し終わったら、「ポリシー・セットに戻る」をクリックします。
次の項では、Fusion Middleware Controlを使用してポリシー・セットを作成する方法について説明します。
ポリシー・セットを作成するには、次のコマンドを実行します。
「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「WSMポリシー・セット・サマリー」ページに移動します。
「WSMポリシー・セット・サマリー」ページで、「作成」をクリックします。
ポリシー・セットを作成するウィザードの最初のページが表示されます。
図4-8に示すように、「一般情報の入力」ページで、「名前」フィールドにポリシー・セットの名前を入力します。
ポリシー・セットを有効にする場合は、「有効」チェック・ボックスを選択します。
「リソース・タイプ」フィールドで、ポリシーをアタッチするポリシー・サブジェクトのタイプを選択します。次のページで、ポリシー・セットを適用するリソース・スコープを定義します。選択可能なポリシー・サブジェクトのタイプは、『Oracle Web Services Managerの理解』のポリシー・サブジェクトの概要に関する項で定義されています。
注意: ポリシー・セットを作成する場合、SOAP WebサービスおよびSOAP Webサービス・クライアントのサブジェクト・タイプが、Oracle InfrastructureのWebサービスとクライアントおよびJava EEのWebサービスとクライアントを両方とも参照します。Java EEエンドポイントで有効なポリシー・セットが計算される際、非セキュリティ・ポリシーは無視されます。 |
必要に応じて、「説明」フィールドにポリシー・セットの説明を追加し、「次へ」をクリックします。
「リソース・スコープの入力」ページで、前の手順で選択したリソース・タイプのスコープを定義する少なくとも1つのパターン文字列を入力します。有効なスコープは、『Oracle Web Services Managerの理解』のリソースのサブジェクト・タイプとスコープに関する項で定義されています。
注意: リソース・スコープを指定するには、このページで少なくとも1つの「パターン」フィールドにパターン文字列を入力する必要があります。 |
使用可能なリソース・スコープのリストは、前のページで選択したリソース・タイプによって決定します。たとえば、SOAP Webサービスを選択した場合に使用可能なリソース・スコープは、ドメイン、アプリケーション、アプリケーション・モジュールまたは接続、RESTfulアプリケーション、サービス、Webサービス・エンドポイントまたはポートです。
たとえば、ドメイン内のすべてのWebサービス・エンドポイントにポリシーをアタッチするには、そのドメインの名前のみを示すパターン文字列を入力します。他のフィールドに記入する必要はありません。より詳細なスコープ、たとえばアプリケーション・レベルまたはアプリケーション・モジュール・レベルでポリシーをアタッチするには、「パターン」フィールドにアプリケーションまたはモジュールの名前を示すパターン文字列を入力します。該当位置で任意の数の文字に一致するワイルドカード文字としてアスタリスク(*)を文字列内の任意の場所で使用できます。また、文字列内で複数のワイルドカードを指定できます。ドメインに対してアスタリスクのワイルドカードのみを使用した場合、そのスコープ・レベルによりエンタープライズ内のすべてのドメインが影響を受けることに注意してください。
「ドメイン名」と「サーバー・インスタンス名」など、複数のリソース・スコープに対してパターン文字列を入力する場合、Domain("myDomain*") AND Server ("*SOA*")のようにANDのフィルタ条件で結合されます。リソース・タイプとスコープの指定の詳細および複数のリソース・スコープを指定する例は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
「次へ」をクリックします。
「制約の入力」ページで、必要に応じて、ポリシー・セットが関連するコンテキストを決定するためにポリシー・セットに適用される制約を入力します。たとえば、セキュリティ保護されていない公衆回線でメッセージが送信される可能性があるため、外部クライアントと通信する場合に、サービスでメッセージ保護を使用するように指定できます。ただし、信頼できるネットワークで内部クライアントと通信するときは、メッセージ保護を要求しない場合もあります。
制約を指定するには、このページの「制約式詳細」セクションで「有効」チェック・ボックスを選択し、「HTTPヘッダー名」フィールドおよび「HTTPヘッダー値」フィールドでヘッダーの名前および値を指定したうえで、必要に応じて制約を反転する「!(NOT)」演算子を選択し、「制約の更新」をクリックします。次に「次へ」をクリックします。
制約の指定の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
「ポリシー参照の追加」ページで、「使用可能なポリシー」リストからポリシーを選択し、「アタッチ」をクリックします。
注意: 「使用可能なポリシー」表の上にある例による問合せのフィールドを使用して、表示されるポリシーのリストをフィルタリングできます。たとえば、セキュリティ・ポリシーのみを表示するには、「カテゴリ」列の上のドロップダウン・メニューから「セキュリティ」を選択します。メッセージ保護ポリシーのみを表示するには、「名前」 列の上にあるフィールドにmessageと入力し、[Enter]キーを押します。 |
ポリシーの詳細を表示するには、ポリシーを選択して、「詳細の表示」アイコンをクリックします。ポップアップ・ウィンドウに、ポリシーの読取り専用の詳細説明とそのポリシーに含まれるアサーションのリストが表示されます。ポリシーの詳細を確認し終わったら、「OK」をクリックします。
ポリシーの選択とアタッチを続行します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「次へ」をクリックし、「サマリー」ページを表示します。
ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。
検証が失敗した場合でも、ポリシー・セットは依然として保存されていますが、無効モードになることに注意してください。
新しいポリシー・セットのベースとして既存のポリシー・セットを使用できます。次の項では、Fusion Middleware Controlを使用して既存のポリシー・セットから新しいポリシー・セットのクローンを作成する方法について説明します。
既存のポリシー・セットから新しいポリシー・セットのクローンを作成すると、すべての値とアタッチメントが新規のポリシー・セットにコピーされることに注意してください。新規のポリシー・セットのリソース・スコープとポリシー・アタッチメントは変更できますが、適用されるリソースのタイプは変更できません。
既存のポリシー・セットを使用して新しいポリシー・セットのクローンを作成するには:
「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「WSMポリシー・セット・サマリー」ページに移動します。
「WSMポリシー・セット・サマリー」ページで、コピーするポリシー・セットを選択し、「類似作成」をクリックします。
「一般情報の入力」ページで、ポリシー・セットの新しい名前および説明を入力します。
次の点に注意してください。
ベース・ポリシー・セット名に「_Copy」を追加したデフォルトの新しいポリシー・セット名が作成されます。たとえば、ベース・ポリシー・セットがgpa_ws_endpointという名前の場合、コピーの表示名はgpa_ws_endpoint_Copyです。
「リソース・タイプ」フィールドは読取り専用です。ポリシー・セットのクローンを作成する場合、スコープを変更することはできますが、ポリシー・セットをアタッチするリソースのタイプは変更できません。
「有効」チェック・ボックスを選択するか、その選択を解除して、ポリシー・セットを有効または無効にします。
「次へ」をクリックします。
「リソース・スコープの入力」ページで、必要に応じてスコープを変更し、「次へ」をクリックします。
注意: リソース・スコープを指定するには、このページで少なくとも1つの「パターン」フィールドにパターン文字列を指定する必要があります。 |
「制約の入力」ページで、必要に応じて制約を指定するか、または既存の制約を変更します。「制約の更新」をクリックし、「次へ」をクリックします。
詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
「ポリシー参照の追加」ページで、必要に応じてポリシー・アタッチメントを変更します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「次へ」をクリックし、「サマリー」ページを表示します。
ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。
次の項では、Fusion Middleware Controlを使用して既存のポリシー・セットを編集する方法について説明します。
既存のポリシー・セットを編集するには:
「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「WSMポリシー・セット・サマリー」ページに移動します。
「WSMポリシー・セット・サマリー」ページで、編集するポリシー・セットを選択し、「編集」をクリックします。
「一般情報の入力」ページで、「有効」チェック・ボックスを選択するか、その選択を解除して、ポリシー・セットを有効または無効にします。また、ポリシー・セットの説明を編集できます。
「名前」フィールドおよび「リソース・タイプ」フィールドが読取り専用であることに注意してください。
「次へ」をクリックします。
「リソース・スコープの入力」ページで、必要に応じてスコープを変更し、「次へ」をクリックします。
「制約の入力」ページで、必要に応じて制約を指定するか、または既存の制約を変更します。「制約の更新」をクリックし、「次へ」をクリックします。
制約の指定の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
「ポリシー参照の追加」ページで、必要に応じてポリシー・アタッチメントを変更します。完了したら、「検証」をクリックして、選択されたポリシーの組合せが有効であることを確認します。
「次へ」をクリックし、「サマリー」ページを表示します。
ポリシー・セット・サマリー情報を確認します。満足のいくポリシー・セットが得られた場合は「保存」をクリックします。
ポリシー・セット・ウィザードを使用してポリシー・セットの作成、編集またはクローンの作成を行う場合に、実行時制約を指定できます。実行時制約の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
ポリシー・セットについての一般情報を入力し、リソース・スコープを指定すると、「制約の入力」ページが表示されます。指定の制約を含むポリシー・セットを編集しているか、またはそのクローンを作成している場合、 図4-11に示すように、ポリシー・セットで現在構成されている制約が表示されます。新しいポリシー・セットを作成している場合は、これらのフィールドは空白になります。
制約を指定するには:
ページ上の「制約式詳細」セクションで、「有効」チェック・ボックスを選択して制約を有効にします。
必要に応じて、制約を反転するために「! (NOT)演算子」を選択します。
「HTTPヘッダー名」フィールドおよび「HTTPヘッダー値」フィールドにそれぞれ、HTTPHeader制約関数のヘッダー名およびヘッダー値を入力します。制約が有効である場合、「HTTPヘッダー名」フィールドが必要です。
たとえば、図4-11に示すように、外部クライアントにのみ適用される制約を指定するには、「HTTPヘッダー名」
フィールドに「VIRTUAL_HOST_TYPE」と入力し、「HTTPヘッダー値」
フィールドに「External」と入力します。
「制約の更新」をクリックします。
制約式が「制約」フィールドに表示されます(例: HTTPHeader('VIRTUAL_HOST_TYPE','External')
など)。
次の項では、Fusion Middleware Controlを使用してポリシー・セットを有効化または無効化する方法について説明します。
Fusion Middleware Controlを使用してポリシー・セットを有効または無効にするには、「Fusion Middleware Controlを使用したポリシー・セットの編集」の説明に従ってポリシー・セットを編集します。ポリシー・セットが無効な場合にそれを有効にするには、「有効」チェック・ボックスを選択します。ポリシー・セットを無効にするには、「有効」チェック・ボックスの選択を解除します。
残る手順では「次へ」をクリックし、「保存」をクリックして更新されたポリシー・セットを保存します。
Fusion Middleware Controlを使用してポリシー・セットを削除するには:
「Fusion Middleware Controlを使用した「WSMポリシー・セット・サマリー」ページへの移動」の説明に従って、「WSMポリシー・セット・サマリー」ページに移動します。
「WSMポリシー・セット・サマリー」ページで、表からポリシー・セットを選択し、「削除」をクリックします。
削除の確認を要求するダイアログ・ボックスが表示されます。「OK」をクリックします。
Webサービスにアタッチされたポリシーを表示するには:
『Webサービスの管理』のアプリケーションの「Webサービスのサマリー」ページの表示に関する項の説明に従って、Webサービスのホームページに移動します。
ページの「Webサービスの詳細」セクションで、まだ表示されていない場合は、Webサービス・エンドポイントを表示するWebサービスのプラス記号(+)をクリックします。
特定のWebサービスについては、エンドポイントの名前をクリックして「Webサービス・エンドポイント」ページに移動します。
「OWSMポリシー」タブをクリックします。
図4-12は、グローバルかつ直接ポリシーがアタッチされている、Oracle Infrastructure Webサービス・エンドポイントの画面を示しています。出力には、エンドポイントで有効であるグローバルにアタッチされたポリシー、すべての直接アタッチされたポリシー、およびエンドポイントに有効な構成があり、セキュアであるかどうかが示されます。ポリシー・セット名の上にマウスを重ねるか、ポリシー・セット名の前にある赤色のドットをクリックすると、実行時制約が表示されます(構成されている場合)。実行時制約の詳細は、「WLSTを使用したポリシー・セットの実行時制約の指定」を参照してください。
「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接アタッチされたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。エンドポイントで有効なポリシーの詳細は、「ポリシーの有効セットの計算方法」を参照してください。
図4-12 Oracle Infrastructure Webサービス・エンドポイントにアタッチされたポリシー
図4-13は、WebLogic Java EEエンドポイントの画面を示しています。エンドポイントに直接アタッチされたポリシーのみが表示されます。グローバルにアタッチされたポリシーは利用できません。
図4-13 WebLogic Java EE Webサービス・エンドポイントにアタッチされたポリシー
ポリシー内のアサーションのタイプおよび数が有効であれば、ポリシーは内部的に一貫性があり有効です。ただし、ポリシー・サブジェクトに複数のポリシーがアタッチされている場合は、ポリシーの組合せも有効であることが必要です。具体的には、次の内容を満たしている必要があります。
注意: ポリシーを表示するとき、セキュリティなどの主要なカテゴリのみが表示されます。サブタイプ(認可など)を表示するには、ポリシーが基づいているアサーション・テンプレートの「アサーション詳細」セクションを参照してください。 |
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サービス・エンドポイント」ページに移動します。
「ポリシー」タブをクリックします。
「アタッチ/デタッチ」をクリックします。
「検証」をクリックします。
検証エラーがある場合は、エラーを説明するダイアログ・ボックスが表示されます。エラーを修正して、ポリシー・サブジェクト検証を再度実行します。
ポリシー・セットの検証では、ポリシー・セットが「ポリシー・アタッチメントの検証」に記載されたルールに準拠するかどうかの検証に加えて、次のチェックも実行されます。
定義されたリソース・タイプおよびスコープがポリシー・セットに対して有効であること。
リソース・スコープに対して入力された値に、サポートされる形式でサポートされる式が含まれていること。
参照されたすべてのポリシーが使用可能であり、相互に互換性があること。たとえば、ポリシーのカテゴリが相互に競合しない場合、ポリシーには互換性があります。
注意: ポリシー・アタッチメント間に競合が存在しないことを確認するために、Fusion Middleware ControlおよびWLSTコマンドを使用して、Webサービス・エンドポイントに有効でセキュアな構成が含まれるかどうかを判断できます。詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。トラブルシューティングの詳細は、「WLSTを使用したポリシー・アタッチメントの問題の診断」を参照してください。 |
次の項では、WLSTを使用して、Webサービスまたはクライアントのタイプに基づいてポリシーをアタッチする方法について説明します。
WLSTを使用して使用可能なポリシーのリストを表示する手順
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
WLSTコマンドlistAvailableWebServicePolicies()
を使用して、Webサービスのリストを表示します。
listAvailableWebServicePolicies([category],[subject])
例:
wls:/base_domain/domainRuntime> listAvailableWebServicePolicies()
List of available OWSM policy - total : 115
security : oracle/http_basic_auth_over_ssl_service_policy
wsrm : oracle/wsrm10_policy
security : oracle/wss_username_token_client_policy
security : oracle/binding_authorization_denyall_policy
security : oracle/wss11_username_token_with_message_protection_service_policy
security : oracle/no_messageprotection_client_policy
security : oracle/wss_saml_token_over_ssl_service_policy
...
オプションの引数category
およびsubject
を使用して、セキュリティや管理などのポリシー・カテゴリおよびサーバーやクライアントなどのポリシー・サブジェクト・タイプを指定します。
例:
wls:/base_domain/domainRuntime> listAvailableWebServicePolicies("security","server")
List of available OWSM policy - total : 55
security : oracle/http_basic_auth_over_ssl_service_policy
security : oracle/binding_authorization_denyall_policy
security : oracle/wss11_username_token_with_message_protection_service_policy
security : oracle/wss_saml_token_over_ssl_service_policy
security : oracle/wss10_saml_token_service_policy
security : oracle/binding_permission_authorization_policy
security : oracle/no_messageprotection_service_policy
security : oracle/wss10_x509_token_with_message_protection_service_policy
security : oracle/wss_sts_issued_saml_bearer_token_over_ssl_service_policy
security : oracle/wss_saml_token_bearer_over_ssl_service_policy
security : oracle/wss_saml20_token_bearer_over_ssl_service_policy
security : oracle/wss_saml_bearer_or_username_token_service_policy
security : oracle/wss10_message_protection_service_policy
...
次の項で説明するように、WLSTを使用してJava EE Webサービスおよびクライアントにポリシーを直接アタッチできます。
注意: Webサービスには、WebLogic Webサービス・ポリシーおよびOWSM Webサービス・ポリシーの両方を含めることはできません。WebサービスにWebLogic Webサービス・ポリシーが含まれている場合、それをデタッチしてからOWSM Webサービス・ポリシーをアタッチする必要があります。 |
Webサービスにアタッチされたポリシーを表示するには、次の手順に従ってください。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
『Webサービスの管理』
のWLSTを使用したアプリケーション内のWebサービスの表示に関する項の説明に従って、listWebServices WLSTコマンドを使用してアプリケーション内のWebサービスのリストを表示します。
listWebServicePorts
コマンドを使用してWebサービスのポート名を表示します。
listWebServicePorts(application,moduleOrCompName,moduleType,serviceName)
たとえば、SimpleImpleService
Webサービスのポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServicePorts('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService', 'wls','SimpleImplService') SimplePort
listWebServicePolicies
コマンドを使用して、Webサービス・ポートに添付されたポリシーを表示します。
listWebServicePolicies(application,moduleOrCompName,moduleType,serviceName,subjectName)
たとえば、SimplePort
ポートにアタッチされたポリシーとポリシーのオーバーライド設定を表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServicePolicies('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService','wls', 'SimpleImplService','SimplePort') SimplePort : URI="oracle/wss_username_token_service_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true The policy subject is secure in this context.
Webサービス・クライアントにアタッチされたポリシーを表示するには、次の手順に従ってください。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
『Webサービスの管理』
のWLSTを使用したWebサービス・クライアントの表示に関する項の説明に従って、listWebServicesClients WLSTコマンドを使用してアプリケーション内のWebサービス・クライアントのリストを表示します。
listWebServiceClientPorts
コマンドを使用してWebサービスのポート名を表示します。
listWebServiceClientPorts(application,moduleOrCompName,moduleType,serviceRefName)
たとえば、service2
クライアントのポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServiceClientPorts('/base_domain/AdminServer/ClientEJB','owsm_mbean.resource_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resource_pattern.ejb.ClientEJB/service2') UpperCaseImplPort
listWebServiceClientPolicies
コマンドを使用して、Webサービス・ポートにアタッチされたポリシーを表示します。
listWebServicePolicies(application,moduleOrCompName,moduleType,serviceRefName,portInfoName)
たとえば、UpperCaseImplPort
ポートにアタッチされたポリシーとポリシーのオーバーライド設定を表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServiceClientPolicies('/base_domain/AdminServer/ClientEJB','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2','UpperCaseImplPort') UpperCaseImplPort : URI="oracle/wss_username_token_client_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true The policy subject is secure in this context.
WLSTを使用して単一のWebサービスに単一のポリシーまたは複数のポリシーをアタッチ(またはデタッチ)するには、次の手順に従ってください。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
「Java EE Webサービスにアタッチされたポリシーの表示」の説明に従って、現在ポートにアタッチされているポリシーのリストを表示します。
「WLSTを使用した使用可能なポリシーの表示」の説明に従って、使用可能なポリシーのリストを表示します。
ポリシーをアタッチするには、次のいずれかを実行します。
attachWebServicePolicy
コマンドを使用して、Webサービス・ポートに単一のポリシーをアタッチします。policyURI
引数を使用して、アタッチするポリシーを指定します。指定したポリシーがすでにアタッチされているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
attachWebServicePolicy(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURI, [subjectType=None]
たとえば、SimpleImplService
WebサービスのSimplePort
にポリシーwss10_message_protection_service_policy
をアタッチするには、次のコマンドを使用します。
wls:wls-domain/serverConfig> attachWebServicePolicy('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService','wls','SimpleImplService','SimplePort','oracle/wss10_message_protection_service_policy')
attachWebServicePolicies
コマンドを使用して、Webサービス・ポートに複数のポリシーをアタッチします。policyURIs
引数を使用して、アタッチするポリシーを指定します。このコマンドで指定したポリシーのいずれかがすでにアタッチされている場合は、このコマンドでそのアタッチ済ポリシーが有効になり(無効な場合)、その他のポリシーはアタッチされます。
attachWebServicePolicies(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURIs, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_service_policy
とoracle/binding_authorization_denyall_policy
をSimpleImplService
のSimplePort
にアタッチするには、次のコマンドを使用します。
wls:wls-domain/ServerConfig>attachWebServicePolicies ('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService','wls','SimpleImplService','SimplePort', ["oracle/binding_authorization_denyall_policy","oracle/wss_username_token_service_policy"])
注意: wsm-pmアプリケーションがWebLogic Serverにインストールされており、使用可能は場合は、policyURIはOWSM Policy Manager APIにより検証されます。ポリシーの検証が失敗した場合、メッセージが表示されてコマンドは実行されません。wsm-pmアプリケーションがインストールされていないか使用可能でない場合は、これらのコマンドは実行されません。 ポリシーの検証の詳細は、「ポリシー・アタッチメントの検証」を参照してください。 |
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
次の手順では、SOA参照、Java EE Webサービス・クライアントにポリシーをアタッチする方法について説明します。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
『Webサービスの管理』のWLSTを使用したWebサービス・クライアントの表示に関する項の説明に従って、Webサービス・クライアントを表示します。
listWebServiceClientPorts
コマンドを使用して、Webサービス・クライアントのポート名を表示します。
listWebServiceClientPorts(application,moduleOrCompName,moduleType,serviceRefName)
たとえば、クライアントservice2
のポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServiceClientPorts('/base_domain/AdminServer/ClientEJB','owsm_mbean.resource_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resource_pattern.ejb.ClientEJB/service2') UpperCaseImplPort
「WLSTを使用した使用可能なポリシーの表示」の説明に従って、使用可能なポリシーのリストを表示します。
使用可能なクライアント・ポリシーのみを表示するには、subject
引数にclient
を設定します。例:
listAvailableWebServicePolicies("","client")
ポリシーをアタッチするには、次のいずれかを実行します。
attachWebServiceClientPolicy
コマンドを使用して、Java EE Webサービス・クライアント・ポートに単一のポリシーをアタッチします。
attachWebServiceClientPolicy(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURI, [subjectType=None]
次のように引数を設定します。
application
引数を使用して、クライアント・アプリケーションの名前を指定します。
moduleOrCompName
引数のWebモジュール名を指定します。
moduleType
引数のwls
を指定します。
portInfoName
引数を使用して、エンドポイントの名前を指定します。
policyURI
引数を使用して、アタッチするポリシーを指定します。指定したポリシーがすでにアタッチされているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
たとえば、クライアント・ポリシーoracle/wss_username_token_client_policy
をservice2
クライアントのUpperCaseImplPort
にアタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig>attachWebServiceClientPolicy('/base_domain/AdminServer/ClientEJB','owsm_mbean.resource_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resource_pattern.ejb.ClientEJB/service2','UpperCaseImplPort','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/wss10_message_protection_client_policy
をservice2
サービスのUpperCaseImplPort
にアタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWebServiceClientPolicies('/base_domain/AdminServer/ClientEJB','owsm_mbean.resource_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resource_pattern.ejb.ClientEJB/service2','UpperCaseImplPort', ['oracle/wss_username_token_client_policy','oracle/wss10_message_protection_client_policy'])
注意: wsm-pmアプリケーションがWebLogic Serverにインストールされており、使用可能は場合は、policyURIはOWSM Policy Manager APIにより検証されます。ポリシーの検証が失敗した場合、メッセージが表示されてコマンドは実行されません。wsm-pmアプリケーションがインストールされていないか使用可能でない場合は、これらのコマンドは実行されません。 ポリシーの検証の詳細は、「ポリシー・アタッチメントの検証」を参照してください。 |
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
次の項で説明するように、WLSTを使用してJava EE Webサービスまたはクライアントからポリシーをデタッチできます。
Java EE Webサービスから直接アタッチされたポリシーをデタッチするには:
「WLSTを使用したWebサービスにアタッチされたポリシーの表示」の説明に従って、Webサービスにアタッチされているポリシーを表示します。
Java EE Webサービス・エンドポイントからポリシーをデタッチする手順は次のとおりです。
detachWebServicePolicy
コマンドを使用して、Webサービス・エンドポイントから単一のポリシーをデタッチします。
detachWebServicePolicy(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURI, [subjectType=None]
次のように引数を設定します。
application
引数を使用して、アプリケーションの名前を指定します。
moduleOrCompName
引数のWebモジュール名を指定します。
moduleType
引数のwls
を指定します。
subjectName
引数を使用して、エンドポイントの名前を指定します。
policyURI
引数を使用して、解除するポリシーを指定します。指定したポリシーがすでにアタッチされているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
たとえば、SimpleImplService
WebサービスのSimplePort
からポリシーwss10_message_protection_service_policy
をデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig>detachWebServicePolicy('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService','wls','SimpleImplService','SimplePort','oracle/wss10_message_protection_service_policy')
detachWebServicePolicies
コマンドを使用して、Java EE Webサービス・エンドポイントから複数のポリシーをデタッチします。policyURIs
引数を使用して、解除する複数のポリシーを指定します。
detachWebServicePolicies(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURIs, [subjectType=None]]
たとえば、ポリシーoracle/wss_username_token_service_policy
とoracle/binding_authorization_denyall_policy
をSimpleImplService
のSimplePort
からデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServicePolicies('/base_domain/AdminServer/SimpleJAXWS','SimpleJAXWS#1!SimpleImplService', 'wls','SimpleImplService','SimplePort',['oracle/binding_authorization_denyall_policy','oracle/wss_username_token_service_policy'])
Java EE Webサービス・クライアントからポリシーをデタッチする手順は次のとおりです。
「Java EE Webサービスにアタッチされたポリシーの表示」の説明に従って、Webサービス・クライアントにアタッチされているポリシーを表示します。
次のいずれかの操作を実行します。
detachWebServiceClientPolicy
コマンドを使用して、Java EE Webサービス・クライアント・ポートから単一のポリシーをデタッチします。policyURI
引数を使用して、解除するポリシーを指定します。
detachWebServiceClientPolicy(application, moduleOrCompName, moduleType, serviceRefName, portInfoName, policyURI, [subjectType=None]
たとえば、クライアント・ポリシーoracle/wss_username_token_client_policy
をservice2
サービスのUpperCaseImplPort
からデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServiceClientPolicy('/base_domain/AdminServer/ClientEJB','owsm_mbean.resource_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resource_pattern.ejb.ClientEJB/service2','UpperCaseImplPort','oracle/wss_username_token_client_policy')
detachWebServicePolicies
コマンドを使用して、Webサービス・ポートから複数のポリシーをデタッチします。policyURIs
引数を使用して、解除するポリシーを指定します。
detachWebServicePolicies(application, moduleOrCompName, moduleType, serviceName, subjectName, policyURIs, [subjectType=None]
たとえば、ポリシーoracle/wss_username_token_client_policy
とoracle/wss10_message_protection_client_policy
をservice2
サービスのUpperCaseImplPort
からデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWebServiceClientPolicies('/base_domain/AdminServer/ClientEJB','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2','UpperCaseImplPort', ['oracle/wss_username_token_client_policy','oracle/wss10_message_protection_client_policy'])
Webサービス・クライアントに対してポリシーを有効化または無効化するには、次の手順を実行します。
『Webサービスの管理』のWLSTを使用したWebサービス・クライアントの表示に関する項の説明に従って、Webサービス・クライアントを表示します。
「WLSTを使用したJava EE Webサービス・クライアントへのポリシーを直接アタッチする」
の説明に従って、listWebServiceClientPortsコマンドを使用して、Webサービス・クライアントのポート名とエンドポイントURLを表示します。
enableWebServiceClientPolicy
コマンドを使用して、Webサービス・クライアントにすでにアタッチされているポリシーを有効化または無効化します。コマンドをtrue
に設定すると、ポリシーが有効になります。false
に設定すると、ポリシーが無効になります。
enableWebServiceClientPolicy(application,moduleOrCompName,moduleType, serviceRefName,portInfoName,policyURI,[enable],[subjectType=None] )
次の例は、モジュールWssUsernameClient
のポートUpperCaseImplPort
のクライアント・ポリシーoracle/wss_username_token_client_policy
を有効化します。
wls:/wls-domain/serverConfig>enableWebServiceClientPolicy('/base_domain/AdminServer/ClientEJB','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2', 'wls','owsm_mbean.resouce_pattern.ejb.ClientEJB/service2','UpperCaseImplPort','oracle/wss_username_token_client_policy',true)
WLSTを使用して、Webサービス・ポリシーとポリシー・セットをアタッチおよび管理できます。次の項で説明するように、WLSTを使用してRESTfulおよびOracle Infrastructure Webサービスにポリシーを直接またはグローバルにアタッチできます。
注意: Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。 |
listWSMPolicySubjects()
コマンドを使用して、WebサービスまたはSOA Webサービスのポリシー・サブジェクトを直接表示できます。listWSMPolicySubjects()
コマンドは、Webサービスのアプリケーション、アセンブリおよびサブジェクト・パターンなどのエンドポイント情報を表示します。
selectWSMPolicySubject
コマンドを使用して、ポリシー・サブジェクトに移動できます。ポリシー管理の編集を実行する前に、beginWSMSession
を使用してセッションを開始する必要があります。
ポリシー・サブジェクトの識別の例:
特定のサブジェクトの検索を簡素化するために、application
、assembly
またはsubject
引数にはワイルドカード文字(*
)を含むパターンを指定できます。この場合、パターンに一致するすべてのサブジェクトがリストされます。たとえば、('jax*')
を引数としてlistWSMPolicySubjects
コマンドを起動すると、jaxrs_pack1
およびjaxwsejb30ws
アプリケーションに属するすべてのサブジェクトが返されます。
wls:/base_domain/serverConfig> listWSMPolicySubjects('jax*')
Application: /weblogic/base_domain/jaxrs_pack1
Assembly: #jaxrs_pack1.war
Subject: REST-Resource(Jersey)
Application: /weblogic/base_domain/jaxwsejb30ws
Assembly: #jaxwsejb
Subject: WS-Service({http://ejb.oracle.com/targetNamespace}EchoEJBService#EchoEJBServicePort)
Subject: WS-Service({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort)
Subject: WS-Service({http://www.oracle.com/jaxws/tests}CalculatorService#CalculatorPort)
ポリシー・サブジェクトの選択の例:
提供される情報を使用して、selectWSMPolicySubject
コマンドを作成できます。
wls:/base_domain/serverConfig> selectWSMPolicySubject ('jaxwsejb30ws','#jaxwsejb','WS-SERVICE({http://ejb.oracle.com/targetNamespace}EchoEJBService#EchoEJBServicePort)')
The policy subject is selected for modification.
また、selectWSMPolicySubject
コマンドを使用してポリシー・サブジェクトに移動できます。次の例では、アプリケーション名の一部がわかっていることを前提にしています。
wls:/base_domain/serverConfig> selectWSMPolicySubject ('*ejb30ws') jaxwsejb30wsSelect any of the application name to proceed.wls:/base_domain/serverConfig> selectWSMPolicySubject('jaxwsejb30ws') #jaxwsejb Select any of the assembly name to proceed. wls:/base_domain/serverConfig>selectWSMPolicySubject(assembly='#jaxwsejb')
WS-Service({http://mycompany.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort) WS-Service({http://mycompany.com/}JaxwsWithHandlerChainBeanService#JaxwsWithHandlerChainBeanPort) WS-Service({http://soapinterop.org/DoclitWrapperWTJ}DoclitWrapperWTJService#DoclitWrapperWTJPort) WS-Service({http://mycompany.com/jaxws/tests}CalculatorService#CalculatorPort) WS-Service({http://ejb.mycompany.com/targetNamespace}EchoEJBService#EchoEJBServicePort) Select any of the subject name to proceed. wls:/base_domain/serverConfig>selectWSMPolicySubject (subject='WS-Service({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort)')
The policy subject is selected for modification.
注意: Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。SOAコンポジット・サービスおよびクライアントの場合、OWSMポリシーのサブセットのみが適用されます。詳細は、「SOAコンポジット・サービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。 クラスタ化されたサーバー環境内のサブジェクトに直接ポリシーをアタッチすると、少し遅れてポリシー・アタッチメントの詳細がクラスタ内の他のサーバーに伝播されます。情報を迅速に伝播させるには、次の手順のいずれかを実行します。
|
ポリシーは、WebサービスやWebサービス・クライアントなどのポリシー・サブジェクトにアタッチできます。次の項では、単一のWebサービス・ポートおよび複数のWebサービス・クライアントにポリシーをアタッチする方法について説明します。
WLSTを使用して単一のWebサービスまたはクライアント・エンドポイントに単一のポリシーまたは複数のポリシーをアタッチするには、次の手順に従ってください。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
「WLSTを使用したWebサービスにアタッチされたポリシーの表示」の説明に従って、現在ポートにアタッチされているポリシーのリストを表示します。
「WLSTを使用した使用可能なポリシーの表示」の説明に従って、使用可能なポリシーのリストを表示します。
beginWSMSession
コマンドを使用してセッションを開始します。次に例を示します。
wls:/wls_domain/serverConfig> beginWSMSession()
Session started for modification.
操作するポリシー・サブジェクトを識別および選択します。「WLSTを使用したポリシー・サブジェクトの識別と選択」を参照してください。
ポリシーをアタッチするには、次のいずれかを実行します。
attachWSMPolicy
コマンドを使用して、Webサービス・ポートに単一のポリシーをアタッチします。uri
引数を使用して、アタッチするポリシーを指定します。指定したポリシーがすでにアタッチされているかすでに存在する場合は、このコマンドでそのポリシーが有効になります(無効な場合)。
attachWSMPolicy(uri])
たとえば、ポリシーoracle/wss_username_token_service_policy
をWsdlConcreteService
のWsdlConcretePort
にアタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWSMPolicy("oracle/wss_username_token_service_policy")
Policy reference "oracle/wss_username_token_service_policy" added.
attachWSMPolicies
コマンドを使用して、Webサービス・ポートに複数のポリシーをアタッチします。policyURIs
引数を使用して、アタッチするポリシーを指定します。このコマンドで指定したポリシーのいずれかがすでにアタッチされている場合は、このコマンドでそのアタッチ済ポリシーが有効になり(無効な場合)、その他のポリシーはアタッチされます。
attachWSMPolicies(policyURIs, [subjectType=None])
たとえば、ポリシーoracle/wss_username_token_service_policy
とoracle/wsrm10_policy
をWsdlConcreteService
のWsdlConcretePort
にアタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> attachWSMPolicies(["oracle/wss_username_token_service_policy","oracle/wsrm10_policy"]) Policy reference "oracle/wss_username_token_service_policy" added.Policy reference "oracle/wsrm10_policy" added.
注意: wsm-pmアプリケーションがWebLogic Serverにインストールされており、使用可能は場合は、ポリシーのURIはOWSM Policy Manager APIにより検証されます。ポリシーの検証が失敗した場合、メッセージが表示されてコマンドは実行されません。wsm-pmアプリケーションがインストールされていないか使用可能でない場合は、これらのコマンドは実行されません。 ポリシーの検証の詳細は、「ポリシー・アタッチメントの検証」を参照してください。 |
必要に応じて、setWSMPolicyOverride
コマンドを使用してポリシーの構成オーバーライド・プロパティを指定します。例:
wls:/wls_domain/serverConfig> setWSMPolicyOverride("oracle/wss_username_token_service_policy", "reference.priority", "10")
The configuration override property "reference.priority" having value "10" has been added to the reference to policy with URI "oracle/wss_username_token_service_policy".
commitWSMSession
コマンドを使用してセッションをコミットします。次に例を示します。
wls:/wls_domain/serverConfig> commitWSMSession()
The policy set for subject "/weblogic/base_domain/jaxwsejb30ws|#jaxwsejb|WS-Service({http://ejb.oracle.com/targetNamespace}EchoEJBService#EchoEJBServicePort)" was saved successfully.
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
Webサービスにポリシーをアタッチすると、デフォルトで有効化されます。Webサービスからポリシーの関連付けを解除せずに、1つのエンドポイントに対してポリシーを一時的に無効化できます。ポリシーがエンドポイントに対して無効化されると、そのエンドポイントに対して施行されません。
エンドポイント(ポート)にアタッチされている1つまたは複数のポリシーを有効化または無効化するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
WLSTコマンドlistWebServicePolicies
を使用して、目的のポートにアタッチされたWebサービス・ポリシーのリストを表示します。
listWebServicePolicies(application,moduleOrCompName,moduleType,serviceName, subjectName)
たとえば、WsdlConcreteServicePort
にアタッチされたポリシーのリストを表示するには、次のコマンドを使用します。結果には、現在ポートにアタッチされているポリシーがないことが示されています。
wls:/base_domain/serverConfig> listWebServicePolicies('/base_domain/AdminServer/jaxwsejb30ws','jaxwsejb','web','WsdlConcreteService','WsdlConcretePort') WsdlConcretePort : URI="oracle/mex_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/mtom_encode_fault_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="max.request.size", value="-1" URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="logging.level", value="" URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/wss10_saml20_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/binding_authorization_denyall_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true The policy subject is secure in this context.
beginWSMSession
コマンドを使用してセッションを開始します。次に例を示します。
wls:/wls_domain/serverConfig> beginWSMSession()
Session started for modification.
操作するポリシー・サブジェクトを選択します。「WLSTを使用したポリシー・サブジェクトの識別と選択」を参照してください。
1つのポリシーを有効化または無効化するには、enableWSMPolicy
コマンドを使用して、enable
引数をtrue
またはfalse
にそれぞれ設定します。
enableWSMPolicy(policyURI,[enable], [subjectType=None] ))
たとえば、oracle/wss10_saml20_token_with_message_protection_service_policy
を無効化するには、次のコマンドを入力します。
wls:/base_domain/domainRuntime> enableWSMPolicy('oracle/wss10_saml20_token_with_message_protection_service_policy',false)
ポートにアタッチされた複数のポリシーを有効化または無効化するには、enableWSMPolicies
コマンドを使用して、enable
引数をtrue
またはfalse
にそれぞれ設定します。
enableWSMPolicies(policyURIs,[enable],[subjectType=None] ))
例:
wls:/base_domain/domainRuntime> enableWSMPolicies(['oracle/binding_authorization_denyall_policy', 'oracle/wss10_saml20_token_with_message_protection_service_policy'],true)
commitWSMSession
コマンドを使用してセッションをコミットします。次に例を示します。
wls:/wls_domain/serverConfig> commitWSMSession()
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
次の項で説明するように、WLSTを使用してWebサービス・エンドポイントやクライアント・エンドポイントなどのポリシー・サブジェクトからポリシーをデタッチできます。
ポリシーをデタッチするには、最初にセッション(beginWSMSession
)を開始してから、ポリシーをデタッチするエンドポイントを選択します。「WLSTを使用したポリシー・サブジェクトの識別と選択」を参照してください。
続いて、次のいずれかを実行します。
detachWSMPolicy
コマンドを使用して、Webサービス・エンドポイントから単一のポリシーをデタッチします。policyURI
引数を使用して、解除するポリシーを指定します。
detachWSMPolicy(policyURI, [subjectType=None])
たとえば、ポリシーoracle/binding_authorization_denyall_policy
を選択したサブジェクトからデタッチするには、次のようにします。
wls:/wls_domain/serverConfig> detachWSMPolicy("oracle/binding_authorization_denyall_policy")
detachWSMPolicies
コマンドを使用して、Webサービス・エンドポイントから複数のポリシーをデタッチします。policyURIs
引数を使用して、解除するポリシーを指定します。
detachWSMPolicies(policyURIs, [subjectType=None])
たとえば、ポリシーoracle/wss_username_token_service_policy
とoracle/wss10_message_protection_service_policy
を選択したサブジェクトからデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWSMPolicies(["oracle/wss_username_token_service_policy","oracle/wss10_message_protection_service_policy"])
ポリシーをデタッチするには、最初にセッション(beginWSMSession
)を開始してから、ポリシーをデタッチするクライアント・ポリシー・サブジェクトを選択します。「WLSTを使用したポリシー・サブジェクトの識別と選択」を参照してください。
続いて、次のいずれかを実行します。
detachWSMPolicy
コマンドを使用して、Webサービス・クライアント・ポートから単一のポリシーをデタッチします。
detachWSMPolicy(policyURI, [subjectType=None])
たとえば、クライアント・ポリシーoracle/wss_username_token_client_policy
を選択したサブジェクトからデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWSMPolicy("oracle/wss_username_token_client_policy") Policy reference "oracle/wss_username_token_client_policy" removed.
detachWSMPolicies
コマンドを使用して、Webサービス・クライアント・ポートから複数のポリシーをデタッチします。policyURIs
引数を使用して、デタッチする複数のポリシーを指定します。
detachWSMPolicies(policyURIs, [subjectType=None])
たとえば、ポリシーoracle/wss_username_token_client_policy
とoracle/wss11_message_protection_client_policy
を選択したサブジェクトからデタッチするには、次のコマンドを使用します。
wls:/wls_domain/serverConfig> detachWSMPolicies(["oracle/wss_username_token_client_policy","oracle/wss11_message_protection_client_policy"]) Policy reference "oracle/wss_username_token_client_policy" removed. Policy reference "oracle/wss11_message_protection_client_policy" removed.
注意: クライアント側のセキュリティ・ポリシーを解除する場合、クライアント構成オーバーライドはポート・レベルで適用されるため、手動ですべての構成オーバーライドを削除する必要があります。そうしない場合オーバーライドは、このポートへのすべての将来のポリシー・アタッチメント(グローバルと直接の両方)に対して有効であり続けます。 |
注意: ポリシー・セットを使用するグローバル・ポリシー・アタッチメントは、Oracle Infrastructure Webサービスとクライアント、Java EE Webサービスとクライアント、およびRESTful Webサービスとクライアントでサポートされています。ただし、ポリシー・セットに非セキュリティ・ポリシーが含まれている場合、非セキュリティ・ポリシーは無視され、Java EE Webサービスおよびクライアント用に計算された有効なポリシー・セットに含まれません。グローバルにアタッチされたポリシーは、スタンドアロンのJava EEクライアントではサポートされていません。 Jersey 1.x JAX-RS RIのみを使用して構築されるRESTful WebサービスおよびクライアントにOWSMポリシーをアタッチできます。Jersey 2.5 JAX-RS RIを使用して構築されたRESTful Webサービスおよびクライアントは、このリリースではOWSMポリシーを使用して保護できません。Jersey 2.5 JAX-RS RIを使用して構築されるRESTful Webサービスとクライアントの保護の詳細は、『Oracle WebLogic Server RESTful Webサービスの開発と保護』の「RESTful Webサービスおよびクライアントの保護」を参照してください。 SOAコンポジット・サービスおよびクライアントの場合、OWSMポリシーのサブセットのみが適用されます。詳細は、「SOAコンポジット・サービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。 Java EE Webサービスおよびクライアントでは、OWSMポリシーのサブセットのみがサポートされています。詳細は、第3.3項「Java EE WebサービスおよびクライアントでサポートされるOWSMポリシー」を参照してください。 |
WLSTを使用してポリシー・セットを作成し、グローバル・ポリシー・アタッチメントを管理できます。これらのタスクについては、次の各項で説明します。
注意: この項に記載されているWLSTコマンドのヘルプを表示するには、サーバーの実行中のインスタンスに接続し、help('wsmManage') と入力します。 |
リポジトリ内のポリシー・セットのリストを表示するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
listWSMPolicySets
コマンドを使用して、リポジトリ内のポリシー・セットのリストを表示します。
listWSMPolicySets ([type=None])
特定のタイプのポリシー・サブジェクトに適用されるポリシー・セットのみを含めるように表示を制限できます。サブジェクトのタイプを指定するには、『Oracle Web Services Managerの理解』のポリシー・サブジェクトの概要に関する項で指定されている略語を使用する必要があります。
たとえば、SOAP Webサービス・エンドポイントに適用されるポリシー・セットのリストを表示するには、次のコマンドを使用します。
wls:/jrfserver_domain/serverConfig>listWSMPolicySets('ws-service')
Global Policy Sets in Repository:
default-domain-ws-domain
GPAset1
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
リポジトリ内の特定のポリシー・セットの構成を表示するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
displayWSMPolicySet
コマンドを使用して、指定したポリシー・セットの構成を表示します。
displayWSMPolicySet ([name=None])
セッションの外側でこのコマンドを実行した場合、name
引数を使用してポリシー・セットの構成を表示できます。ポリシー・セットが存在しない場合、エラー・メッセージが表示されます。
セッションでポリシー・セットを作成または変更している場合は、name
引数を指定する必要はありません。現在のポリシー・セットがデフォルトで使用されます。ポリシー・セットを変更した場合は、変更後のバージョンが表示されます。それ以外の場合は、リポジトリの最新バージョンが表示されます。
例:
wls:/jrfserver_domain/serverConfig>displayWSMPolicySet('default-domain-ws-domain')
Policy Set Details:
-------------------
Display Name : default-domain-ws-domain
Type of Resources: SOAP Web Service
Scope of Resources: DOMAIN('*')
Description: Global policy attachments for Web Service Endpoint resources.
Enabled: true
Policy Reference: URI=oracle/wss_saml_or_username_token_service_policy, category=security, enabled=true
reference.priority=10
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
ポリシー・セットの作成、変更および削除を行うためにWLSTを使用する場合、セッションのコンテキストでコマンドを実行する必要があります。各セッションは、ポリシー・セットやFusion Middleware Webサービス・エンドポイントなどの単一のポリシー・サブジェクトに適用されます。
セッションを作成するには、beginWSMSession
コマンドを使用します。必要なコマンドを入力した後、commitWSMSession
コマンドを使用してリポジトリへのセッション・コンテンツの書込みを行います。
現在のセッションのコンテンツを示すには、describeWSMSession
コマンドを使用します。
リポジトリへのコンテンツの書込みを行わないでリポジトリ・セッションを終了するには、abortWSMSession
コマンドを使用します。
これらのコマンドの例は、以降の項で示します。WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
WLSTを使用してポリシー・セットを作成するには、次の手順に従います。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
リポジトリを変更するセッションを作成するために、beginWSMSession
コマンドを使用します。すべての作成、変更または削除のコマンドは、セッションのコンテキストで実行する必要があります。セッションは、単一のポリシー・サブジェクトにのみ作用できます。
例:
wls:/jrfserver_domain/serverConfig> beginWSMSession()
Session started for modification.
createWSMPolicySet
コマンドを使用して、新しい空のポリシー・セットを作成します。name
、type
およびattachTo
引数が必要です。
createWSMPolicySet(name, type, attachTo, [description=None], [enable='true'])
各項目の意味は次のとおりです。
name
は、新しい空のポリシー・セットの名前を表します。
type
は、新しいポリシー・セットが適用されるポリシー・サブジェクトのタイプを表します。
attachTo
は、ポリシー・セットをアタッチするリソースのスコープを表します。この引数では、サポートされた形式で有効なリソース・スコープを定義するサポートされた式を使用する必要があります。詳細は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
注意: ポリシー・セットを作成する場合、SOAP Webサービス(ws-service)およびSOAP Webサービス・クライアント(ws-client)のサブジェクト・タイプが、Oracle InfrastructureのWebサービスとクライアントおよびJava EEのWebサービスとクライアントを両方とも参照します。 |
リソース・スコープに正確なドメイン名を入力する必要はありません。次の例に示すように、ワイルドカードを使用できます。詳細は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
description
は、ポリシー・セットの説明を提供するオプションの引数を表します。
enable
は、ポリシー・セットが有効か無効かを指定します。この引数はオプションです。
たとえば、必要な引数のみを使用して、ドメイン内のすべてのサービスに対するポリシー・セットを作成できます。
wls:/jrfserver_domain/serverConfig> createWSMPolicySet ('all-domains-default-web-service-policies', 'ws-service', 'Domain("*")')
Description defaulted to "Global policy attachments for SOAP Web Service resources."The policy set was created successfully in the session.
コマンド行で説明が指定されなかったのでデフォルトの説明が提示されたことに注意してください。
setWSMPolicySetDescription
コマンドを使用して説明を指定します。
setWSMPolicySetDescription(description)
たとえば、「Default policies for web services in any domain」という説明を設定するには、次のコマンドを使用します。
wls:/jrfserver_domain/serverConfig> setWSMPolicySetDescription('Default policies for web services in any domain')
Description updated.
現在のポリシー・セットにポリシーをアタッチするには、最初にselectWSMPolicySet
を使用してポリシー・セットを選択し、その後attachWSMPolicy
コマンドを使用します。uri
引数を使用して指定したURIによって識別されるポリシーは、ポリシー・セット内の指定したエンドポイントにアタッチされます。必要なすべてのポリシーをポリシー・セットにアタッチするために、必要に応じてこのコマンドを繰り返すことができます。
selectWSMPolicySet(policy set) attachWSMPolicy(uri)
たとえば、ポリシー・セット内の指定したサブジェクトにポリシーoracle/wss11_saml_or_username_token_with_message_protection_service_policy
をアタッチするには、次のコマンドを入力します。
wls:/jrfserver_domain/serverConfig>selectWSMPolicySet('all-domains-default-web-service-policies')
The policy set is ready for modification in the session.
wls:/jrfserver_domain/serverConfig>attachWSMPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy')
Policy reference "oracle/wss11_saml_or_username_token_with_message_protection_service_policy" added.
必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。
必要に応じて、displayWSMPolicySet
コマンドを使用して現在のセッション中のポリシー・セットの構成を表示します。
displayWSMPolicySet(name=None)
セッション内でこのコマンドを実行する場合、name
引数を指定する必要はありません。現在のポリシー・セットがデフォルトで使用されます。ポリシー・セットを変更した場合は、変更後のバージョンが表示されます。それ以外の場合は、リポジトリの最新バージョンが表示されます。
例:
wls:/jrfserver_domain/serverConfig>displayWSMPolicySet()
Policy Set Details:
-------------------
Display Name: all-domains-default-web-service-policies
Type of Resources: SOAP Web Service
Scope of Resources: Domain("*")
Description: Default policies for web services in any domain
Enabled: true
Policy Reference: URI=oracle/wss11_saml_or_username_token_with_message_protection_service_policy, category=security, enabled=true, index=1
validateWSMPolicySet
コマンドを使用して、ポリシー・セットを検証します。
validateWSMPolicySet(name=None)
このコマンドは、名前を指定しない場合、現在のセッション中に作成または変更されるポリシー・セットを検証します。セッションの外側でこのコマンドを実行できることに注意してください。この場合、name
引数が必要です。
例:
wls:/jrfserver_domain/serverConfig> validateWSMPolicySet()
The global policy set all-domains-default-web-service-policies is valid.
commitWSMSession
コマンドを使用して、リポジトリに対して、現在のセッションのコンテンツの書込みを行います。
wls:/jrfserver_domain/serverConfig> commitWSMSession()
The policy set all-domains-default-web-service-policies is valid.
Creating policy set all-domains-default-web-service-policies in repository.
Session committed successfully.
また、セッション中にリポジトリに加えたすべての変更を破棄するabortWSMSession
コマンドを使用することにより、すべての変更を取り消すことができます。
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
既存のポリシー・セットからポリシー・セットを作成するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
例:
wls:/jrfserver_domain/serverConfig> beginWSMSession()
Session started for modification.
cloneWSMPolicySet
コマンドにより、既存のポリシー・セットを使用してポリシー・セットを作成します。
cloneWSMPolicySet(name, source, [attachTo=None,] [description=None], [enable='true'])
各項目の意味は次のとおりです。
name
は、新しいクローンのポリシー・セットの名前を表します。
source
は、クローンを作成するポリシー・セットの名前を指定します。
attachTo
は、ポリシー・セットをアタッチするリソースのスコープを表します。この引数を指定する場合、サポートされた形式で有効なリソース・スコープを定義するサポートされた式を使用する必要があります。リソース・スコープに正確な名前を入力する必要はありません。次の例に示すように、ワイルドカードを使用できます。詳細は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
この引数を指定しない場合、リソース・スコープの識別のためにソース・ポリシー・セットで使用されている式が保持されます。また、setWSMPolicySetScope
コマンドを使用して、リソース・スコープを変更することもできます。
description
は、クローンのポリシー・セットの説明を提供するオプションの引数を表します。
enable
は、ポリシー・セットが有効か無効かを指定します。この引数はオプションです。
たとえば、ポリシー・セットのクローンを作成するには、次のようにします。
wls:/jrfServer_domain/serverConfig>cloneWSMPolicySet ('app-only-web-service-policies','all-domains-default-web-service-policies', None, 'Default policies for application jaxwsejb30ws') The policy set was cloned successfully in the session.
この例では、attachTo
引数が指定されていないことに注意してください。
必要に応じて、displayWSMPolicySet
コマンドを使用してポリシー・セットの構成を表示します。
例:
wls:/jrfServer_domain/serverConfig> displayWSMPolicySet()
Policy Set Details:
-------------------
Display Name: app-only-web-service-policies
Type of Resources: SOAP Web Service
Scope of Resources: Domain("*")
Description: Default policies for application jaxws-sut
Enabled: true
Policy Reference: URI=oracle/wss11_saml_or_username_token_with_message_protection_service_policy, category=security, enabled=true, index=1
アタッチメントのリソース・スコープを変更するには、setWSMPolicySetScope
コマンドを使用します。
setWSMPolicySetScope(expression)
各項目の意味は次のとおりです。
expression
は、ポリシー・セットで定義されたリソース・タイプに有効であるリソース・スコープをサポートされた形式で定義するサポートされた式です。詳細は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
たとえば、jaxws-sut
という名前のアプリケーションにのみポリシー・セット内のポリシーをアタッチするには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig> setWSMPolicySetScope ('Application("jaxwsejb30ws")')
Scope of resources updated.
必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。
必要に応じて、displayWSMPolicySet
コマンドを使用してクローンのポリシー・セットの構成を表示します。
例:
wls:/jrfserver_domain/serverConfig>displayWSMPolicySet()
Policy Set Details:
-------------------
Display Name: app-only-web-service-policies
Type of Resources: SOAP Web Service
Scope of Resources: Application("jaxwsejb30ws")
Description: Default policies for application jaxwsejb30ws
Enabled: true
Policy Reference: URI=oracle/wss11_saml_or_username_token_with_message_protection_service_policy, category=security, enabled=true, index=1
commitWSMSession
コマンドを使用して、リポジトリに対して、現在のセッションのコンテンツの書込みを行います。
例:
wls:/jrfserver_domain/serverConfig>commitWSMSession()
The policy set app-only-web-service-policies is valid.
Creating policy set app-only-web-service-policies in repository.
Session committed successfully.
また、セッション中にリポジトリに加えたすべての変更を破棄するabortWSMSession
コマンドを使用することにより、すべての変更を取り消すことができます。
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
ポリシー・セットを編集するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
例:
wls:/jrfserver_domain/serverConfig> beginWSMSession()
Session started for modification.
selectWSMPolicySet
コマンドを使用して、編集する既存のポリシー・セットを選択します。
selectWSMPolicySet(name)
名前付きポリシー・セットの最新バージョンが現在のセッションにロードされます。たとえば、ポリシーを追加するためにポリシー・セットを編集するには、次のコマンドを使用します。
wls:/jrfServer_domain/serverConfig> selectWSMPolicySet ('all-domains-default-web-service-policies')
The policy set is ready for modification in the session.
必要応じて、ポリシー・セットを編集します。例:
ポリシー・セットにポリシーを追加するには、attachWSMPolicy
コマンドを使用して、uri
引数で指定するURIによりポリシーを識別します。
attachWSMPolicy(uri)
たとえば、oracle/wss_saml_or_username_token_service_policy
ポリシーおよびoracle/log_policy
ポリシーをポリシー・セットに追加するには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig> attachWSMPolicy('oracle/wss_saml_or_username_token_service_policy') Policy reference oracle/wss_saml_or_username_token_service_policy added. wls:/jrfServer_domain/serverConfig>attachWSMPolicy('oracle/log_policy') Policy reference "oracle/log_policy" added.
ポリシー・セットからポリシーを削除するには、detachWSMPolicy
コマンドを使用して、uri
引数で指定するURIによりポリシーを識別します。
たとえば、ポリシー・セットからoracle/wss11_saml_or_username_token_with_message_protection_service_policy
を削除するには、次のように入力します。
wls:/jrfServer_domain/serverConfig> detachWSMPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy')
Policy reference "oracle/wss11_saml_or_username_token_with_message_protection_service_policy" removed.
ポリシー・セット内でポリシー・アタッチメントを有効または無効にするには、enableWSMPolicy
コマンドを使用して、uri
引数で指定するURIによりポリシーを識別します。
enableWSMPolicy(uri,[enable=true])
デフォルトはtrue
です。
oracle/log_policy
を無効にするには、次のように入力します。
wls:/jrfServer_domain/serverConfig> enableWSMPolicy('oracle/log_policy',false)
Policy reference "oracle/log_policy" disabled.
必要に応じて、構成のオーバーライドまたは実行時制約を指定します。詳細は、次のトピックを参照してください。
validateWSMPolicySet
コマンドを使用して、ポリシー・セットを検証します。
例:
wls:/jrfServer_domain/serverConfig> validateWSMPolicySet()
The global policy set all-domains-default-web-service-policies is valid.
必要に応じて、displayWSMPolicySet
コマンドを使用して変更後のポリシー・セットを表示します。
wls:/jrfServer_domain/serverConfig>displayWSMPolicySet()
Policy Set Details:
-------------------
Display Name: ll-domains-default-web-service-policies
Type of Resources: SOAP Web Service
Scope of Resources: Domain("*")
Description: Default policies for web services in any domain
Enabled: true
Policy Reference: URI=oracle/wss_saml_or_username_token_service_policy,
category=security, enabled=true, index=1
URI=oracle/log_policy, category=management, enabled=false, index=2
リポジトリに対して現在のセッションのコンテンツの書込みを行うために、commitWSMSession
コマンドを使用します。
wls:/jrfServer_domain/serverConfig> commitWSMSession()
The policy set all-domains-default-web-service-policies is valid.
Updating policy set all-domains-default-web-service-policies in repository.
Session committed successfully.
また、セッション中にリポジトリに加えたすべての変更を破棄するabortWSMSession
コマンドを使用することにより、すべての変更を取り消すことができます。
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
ポリシー・セットの検証では、ポリシー・セットが「ポリシー・アタッチメントの検証」に記載されたルールに準拠するかどうかの検証に加えて、次のチェックも実行されます。
定義されたリソース・タイプおよびスコープがポリシー・セットに対して有効であること。
リソース・スコープに対して入力された値に、サポートされる形式でサポートされる式が含まれていること。
参照されたすべてのポリシーが使用可能であり、相互に互換性があること。たとえば、ポリシーのカテゴリが相互に競合しない場合、ポリシーには互換性があります。
注意: ポリシー・アタッチメント間に競合が存在しないことを確認するために、Fusion Middleware ControlおよびWLSTコマンドを使用して、Webサービス・エンドポイントに有効でセキュアな構成が含まれるかどうかを判断できます。詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。トラブルシューティングの詳細は、「WLSTを使用したポリシー・アタッチメントの問題の診断」を参照してください。 |
ポリシー・セットを有効または無効にするには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
例:
wls:/jrfserver_domain/serverConfig> beginWSMSession()
Session started for modification.
selectWSMPolicySet
コマンドを使用して、変更するポリシー・セットを指定します。
例:
wls:/jrfServer_domain/serverConfig> selectWSMPolicySet ('all-domains-default-web-service-policies')
The policy set is ready for modification in the session.
enableWSMPolicySet
コマンドを使用して、ポリシー・セットを有効または無効にします。
enableWSMPolicySet([enable=true])
ポリシー・セットが無効な場合に、ポリシー・セットを有効にするために、enable
引数をtrue
に設定します。デフォルトはtrue
です。ポリシー・セットを無効にするには、enable
引数をfalse
に設定します。
たとえば、ポリシー・セットを無効にするには、次のようにします。
wls:/jrfServer_domain/serverConfig> enableWSMPolicySet(false)
Policy set disabled.
validateWSMPolicySet
コマンドを使用して、ポリシー・セットを検証します。
例:
wls:/jrfServer_domain/serverConfig> validateWSMPolicySet()
The global policy set all-domains-default-web-service-policies is valid.
リポジトリに対して現在のセッションのコンテンツの書込みを行うために、commitWSMSession
コマンドを使用します。
wls:/jrfServer_domain/serverConfig> commitWSMSession()
The policy set all-domains-default-web-service-policies is valid.
Updating policy set all-domains-default-web-service-policies in repository.
Session committed successfully.
また、セッション中にリポジトリに加えたすべての変更を破棄するabortWSMSession
コマンドを使用することにより、すべての変更を取り消すことができます。
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
リポジトリ内のポリシー・セットを削除するために、次のコマンドを使用できます。
deleteWSMPolicySet
: セッションのコンテキスト内で個別のポリシー・セットを削除します。
deleteWSMAllPolicySets
: リポジトリ内で選択したポリシー・セットまたはすべてのポリシー・セットを削除します。このコマンドは、セッションの内部または外部で使用できます。
セッション内で個別のポリシー・セットを削除するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
例:
wls:/jrfserver_domain/serverConfig> beginWSMSession()
Session started for modification.
必要に応じて、listWSMPolicySets
コマンドを使用して、リポジトリ内のポリシー・セットをリストします。
wls:/jrfServer_domain/serverConfig> listWSMPolicySets()
Global Policy Sets in Repository:
app-only-web-service-policies
all-domains-default-web-service-policies
deleteWSMPolicySet
コマンドを使用して、目的のポリシー・セットを削除します。
deleteWSMPolicySet (name)
例:
wls:/jrfServer_domain/serverConfig> deleteWSMPolicySet('app-only-web-service-policies')
The policy set was deleted successfully in the session.
必要に応じて、listWSMPolicySets
コマンドを使用して、リポジトリ内のポリシー・セットをリストします。ポリシー・セットにdelete pending
としてフラグが設定されることに注意してください。
wls:/jrfServer_domain/serverConfig> listWSMPolicySets()
Global Policy Sets in Repository:
app-only-web-service-policies [delete pending]
all-domains-default-web-service-policies
リポジトリに対して現在のセッションのコンテンツの書込みを行うために、commitWSMSession
コマンドを使用します。
wls:/jrfServer_domain/serverConfig> commitWSMSession()
Deleting policy set app-only-web-service-policies from repository.
Session committed successfully.
また、セッション中にリポジトリに加えたすべての変更を破棄するabortWSMSession
コマンドを使用することにより、すべての変更を取り消すことができます。
リポジトリ内のすべてのポリシー・セットまたは選択したポリシー・セットを削除するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
必要に応じて、listWSMPolicySets
コマンドを使用して、リポジトリ内のポリシー・セットをリストします。
wls:/jrfServer_domain/serverConfig> listWSMPolicySets()
Global Policy Sets in Repository:
all-domains-default-web-service-policies
ws-1
ws-2
deleteWSMAllPolicySets()
コマンドを使用して、目的のポリシー・セットを削除します。(force
引数を使用して)すべてのポリシー・セットの削除を強制するか、削除する個別のポリシー・セットを選択するプロンプトを表示するかを指定できます。このコマンドのデフォルトはprompt
モードです。
deleteWSMAllPolicySets(mode)
たとえば、削除するポリシー・セットを指定するには、次のようにします。
wls:/jrfServer_domain/serverConfig> deleteWSMAllPolicySets()
Starting Operation deleteWSMAllPolicySets ...
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.
deleteWSMAllPolicySets Operation Completed.
すべてのポリシー・セットの削除を強制するには:
wls:/jrfServer_domain/serverConfig> deleteWSMAllPolicySets('force')
Starting Operation deleteWSMAllPolicySets ...
All policy sets were deleted successfully from repository.
deleteWSMAllPolicySets Operation Completed.
WLSTコマンドとその引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
setWSMPolicySetConstraint
コマンドを使用して、ポリシー・セット内の制約を指定できます。このコマンドは、セッションのコンテキストでポリシー・セットの作成または変更中にのみ使用できます。
次の手順は、新しいポリシー・セットの作成中に実行時制約を指定する方法ですが、既存のポリシー・セットを編集するか、既存のポリシー・セットから新しいポリシー・セットを作成するときにセッションでsetWSMPolicySetConstraint
コマンドを使用することもできます。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
beginWSMSession
コマンドを使用して、セッションを開始します。
例:
wls:/jrfServer_domain/serverConfig> beginWSMSession()
Session started for modification.
createWSMPolicySet
コマンドを使用して、新しいポリシー・セットを作成します。
たとえばこのために、ドメイン・スコープで外部クライアントに認証およびメッセージ保護を提供するポリシー・セットを作成するには、次のようにします。
wls:/jrfServer_domain/serverConfig>createWSMPolicySet('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を使用した新しいポリシー・セットの作成」を参照してください。
現在のポリシー・セットにポリシーをアタッチします。最初にselectWSMPolicySet
を使用してポリシー・セットを選択してからattachWSMPolicy
コマンドを使用して、uri
引数で指定するURIによりポリシーを識別します。
たとえば、ポリシー・セットで指定されたサブジェクトにポリシーoracle/wss10_message_protection_service_policy
をアタッチするには、次のコマンドを入力します。
wls:/jrfserver_domain/serverConfig>selectWSMPolicySet('domainExternal')
wls:/jrfServer_domain/serverConfig>attachWSMPolicy('oracle/wss11_saml_or_username_token_with_message_protection_service_policy')
Policy reference "oracle/wss11_saml_or_username_token_with_message_protection_service_policy" added.
setWSMPolicySetConstraint(constraint)
コマンドを使用して、実行時制約を指定します。constraint
引数では、サポートされた形式で有効な実行時制約を定義するサポートされた式を使用する必要があります。このリリースでは、次の式が動作保証されています。
HTTPHeader("VIRTUAL_HOST_TYPE","External")
!HTTPHeader("VIRTUAL_HOST_TYPE","External")
たとえば、外部クライアントにのみ適用される制約を指定するには、次のコマンドを入力します。
wls:/jrfServer_domain/serverConfig>setWSMPolicySetConstraint('HTTPHeader("VIRTUAL_HOST_TYPE","External")')
Constraint updated.
必要に応じて、displayWSMPolicySet
コマンドを使用して現在のセッション中のポリシー・セットの構成を表示します。
例:
wls:/jrfServer_domain/serverConfig>displayWSMPolicySet()
Policy Set Details:
-------------------
Display Name: domainExternal
Type of Resources: SOAP Web Service
Scope of Resources: Domain("*")
Constraint: HTTPHeader("VIRTUAL_HOST_TYPE","External")
Description: Authentication and message protection at domain scope for external clients
Enabled: true
Policy Reference: URI=oracle/wss11_saml_or_username_token_with_message_protection_service_policy, category=security, enabled=true, index=1
commitWSMSession
コマンドを使用して、リポジトリに対して、現在のセッションのコンテンツの書込みを行います。
wls:/jrfServer_domain/serverConfig> commitWSMSession()
The policy set domainExternal is valid.
Creating policy set domainExternal in repository.
Session committed successfully.
Webサービスにアタッチされたポリシーを表示するには、次の手順に従ってください。
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
『Webサービスの管理』のFusion Middleware Controlを使用したアプリケーション・デプロイメント内のWebサービスの表示に関する項の説明に従って、listWSMPolicySubjects WLSTコマンドを使用してアプリケーション内のWebサービスのリストを表示します。
listWebServicePorts
コマンドを使用して、Webサービスのポート名とエンドポイントURLを表示します。
listWebServicePorts(application,moduleOrCompName,moduleType,serviceName)
たとえば、WsdlConcreteService
のポートを表示するには、次のようにします。
wls:/wls-domain/serverConfig> listWebServicePorts ("/base-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("/jaxwsejb30ws", "jaxwsejb","web","WsdlConcreteService","WsdlConcretePort") WsdlConcretePort : URI="oracle/mex_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/mtom_encode_fault_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="max.request.size", value="-1" URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="logging.level", value="" URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true URI="oracle/wss11_saml_or_username_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=global policy set "domainExternal", scope="Domain("*")"; reference-status=enabled; effective=true The web service is secure in this context.
displayWSMEffectivePolicySet()
コマンドを使用して、ポリシー・サブジェクトに対応する有効なポリシー・セットの構成を表示できます。ポリシー強制時に使用される実際のランタイム・ポリシー・セットの構成が表示されます。また、グローバル・ポリシー・アタッチメント情報も表示されます。このポリシー・セットとグローバル・ポリシー・アタッチメント情報は、ポリシー・サブジェクト内に格納されます。
このコマンドを、選択されたグローバル・ポリシー・セットまたは選択された直接ポリシー・セットのみを表示するdisplayWSMPolicySet
コマンドや、現在のセッション内の実際のランタイム・ポリシー・セットへの変更を含む、有効なポリシー・セットを表示するpreviewWSMEffectivePolicySet
を比較します。
セッション中に加えた変更は、そのセッションをコミットするまでdisplayWSMEffectivePolicySet()
コマンドに対するレスポンスには表示されません。
次の例では、jaxwsejb30ws
アプリケーションに属するWsdlConcreteService#WsdlConcretePort
エンドポイントが選択されています。displayWSMEffectivePolicySet()
コマンドは、エンドポイントで有効なセキュリティ・ポリシーとそのステータスを表示します。
wls:/jrfServer_domain/serverConfig> selectWSMPolicySubject('jaxwsejb30ws',
'#jaxwsejb','WS-Service({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort)')
The policy subject is selected for modification.
wls:/jrfServer_domain/serverConfig> displayWSMEffectivePolicySet()
Context : Constraint="HTTPHeader('VIRTUAL_HOST_TYPE','External')"
URI="oracle/mex_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/mtom_encode_fault_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="max.request.size", value="-1"
URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="logging.level", value=""
URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/wss11_saml_or_username_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=global policy set "domainExternal", scope="Domain("*")"; reference-status=enabled; effective=true
The web service is secure in this context.
oracle/mex_request_processing_service_policy
およびoracle/mtom_encode_fault_service_policy
ポリシーは、サービスからデタッチされます。
wls:/base_domain/serverConfig> detachWSMPolicies(['oracle/mex_request_processing_service_policy', 'oracle/mtom_encode_fault_service_policy'])
Policy reference "oracle/mex_request_processing_service_policy" removed.
Policy reference "oracle/mtom_encode_fault_service_policy" removed.
ここで、previewWSMEffectivePolicySet()
コマンドを実行すると、2つのポリシーがWsdlConcreteService#WsdlConcretePort
エンドポイントのポリシー・セットから削除されていることが確認できます。
wls:/base_domain/serverConfig> previewWSMEffectivePolicySet()
Context : Constraint="HTTPHeader('VIRTUAL_HOST_TYPE','External')"
URI="oracle/wss11_saml_or_username_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=global policy set "domainExternal", scope="Domain("*")"; reference-status=enabled; effective=true
URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="max.request.size", value="-1"
URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="logging.level", value=""
URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
The web service is secure in this context.
displayWSMEffectivePolicySet()
コマンドを再度実行すると、oracle/mex_request_processing_service_policy
およびoracle/mtom_encode_fault_service_policy
ポリシーがレスポンスに表示されます。これらのポリシーは、commitWSMSession()
コマンドを発行するまで、レスポンスから削除されません。
RESTfulサーブレットとして公開されるADFビジネス・コンポーネントなどのサーブレット・アプリケーションを保護するには、第3.4項「RESTful WebサービスおよびクライアントでサポートされるOWSMポリシー」で定義されている事前定義済セキュリティ・ポリシーを1つ以上アタッチできます。これらのポリシーの詳細と手動での構成方法は、第17章「事前定義済ポリシー」を参照してください。
サーブレット・アプリケーションの場合、着信リクエストをインターセプトおよび処理するためにOWSMサーブレット・フィルタが使用されます。
個々のポリシーを直接サブジェクトにアタッチする、または次の項で説明するように、ポリシー・セットを使用してタイプ別にサブジェクトのセットにポリシーをグローバルにアタッチすることにより、ポリシー・サブジェクト(この場合、サーブレット)にポリシーをアタッチできます。
サーブレット・アプリケーションにポリシーを直接アタッチするには、web.xml
デプロイメント・ディスクリプタ・ファイルを変更して、OWSMサーブレット・フィルタを定義し、保護するためにサーブレットに関連付け、さらにポリシー・アタッチメント・メタデータを定義する必要があります。OWSMサーブレット・フィルタは、1つのサーブレットにのみマップできます。複数のサーブレットを保護する必要がある場合、1対1の対応を維持しながら、複数のサーブレット・フィルタを定義する必要があります。
web.xml
デプロイメント・ディスクリプタの詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』のweb.xmlデプロイメント・ディスクリプタの要素に関する項を参照してください。
サーブレット・アプリケーションへのポリシーを直接アタッチするには:
<filter>
要素を追加することで、OWSMセキュリティ・フィルタを定義し、次のサブ要素を定義します。
<filter-name>
要素を使用して、OWSMサーブレット・フィルタに意味ある名前を指定します。
例:
<filter-name>OWSM Security Filter</filter-name>
<filter-class>
要素を使用して、OWSMサーブレット・フィルタ・クラスを定義します。
この要素は、次のように定義する必要があります。
<filter-class> oracle.wsm.agent.handler.servlet.SecurityFilter </filter-class>
サーブレット名をパラメータとして、OWSMサーブレット・フィルタ・クラスの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>
要素の詳細は、付録D「ポリシー・セットのスキーマ参照」を参照してください。
注意: このコンテキストでは、<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>
要素を使用して、OWSMセキュリティ・フィルタをサーブレットに関連付けます。
例:
<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を繰り返します。
例4-9は、サーブレット・アプリケーションにポリシーをアタッチするために、web.xml
ファイルを更新する方法の例を示します。
例4-9 サーブレット・アプリケーションをポリシーにアタッチするための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を使用したポリシーをグローバルにアタッチする」で説明するように、WLSTを使用してポリシー・セットを作成します。
ポリシー・セットの作成時には、引数型がREST-resource
に設定されていることを確認します。グローバル・ポリシーがドメイン内のすべてのRESTfulサービスに適用されるように、Domain
式として リソース・スコープを定義することをお薦めします。
例4-10は、WLSTを使用してサーブレット・アプリケーションにグローバルにポリシーをアタッチする例を示します。
例4-10 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> beginWSMSession()
Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
For more help, use help('domainRuntime')
Session started for modification.
wls:/my_domain/serverConfig> createWSMPolicySet('all-domains-default-REST','REST-Resource', 'Domain("*")')
Description defaulted to "Global policy attachments for Java EE RESTful Resource resources."
The policy set was created successfully in the session.
wls:/my_domain/serverConfig>selectWSMPolicySet('all-domains-default-REST')
The policy set is ready for modification in the session.
wls:/my_domain/serverConfig> attachWSMPolicy('oracle/http_basic_auth_over_ssl_service_policy')
Policy reference "oracle/http_basic_auth_over_ssl_service_policy" added.
wls:/my_domain/serverConfig> commitWSMSession()
The policy set all-domains-default-REST is valid.
Creating policy set all domains-default-REST in repository.
Session committed successfully.
wls:/my_domain/serverConfig> displayWSMPolicySet('all-domains-default-REST')
Policy Set Details:
-------------------
Display Name : all-domains-default-REST
Type of Resources: RESTful Resource
Scope of Resources: Domain("*")
Description: Global policy attachments for Java EE RESTful Resource resources.
Enabled: true
Policy Reference: URI=oracle/wss_http_token_service_policy, category=security, enabled=true
wls:/my_domain/serverConfig>
アプリケーションは、外部および内部の両方のクライアントに同じサービスを公開する環境にデプロイできます。こうした環境では多くの場合、クライアントの場所に基づいて様々なセキュリティ動作を強制することが適切です。
たとえば、Webサービスをホストする単一のFusion Middlewareサーバー(WebLogic Server)から構成される環境では、2つの別個のネットワークからのHTTPリクエストをリスニングするために、フロント・エンドでOracle HTTP Serverが構成されます。この一方のネットワークはすべてのプライベート内部リクエストを転送するために使用され、他方のネットワークはすべての外部リクエストを転送するために使用されます。外部ネットワークによるアクセスは、ファイアウォールを経由します。内部ネットワークに対する物理アクセスは高度に制限されるので、このネットワークからのリクエストはすでに保護されています。したがって、認証および認可を強制することのみが必要です。メッセージ保護を強制しないことによって、サーバー上の負荷が軽減され、パフォーマンスが向上します。しかし、外部ネットワークからのすべてのリクエストは、誰でもアクセスできる可能性があるので、保護されていないものとみなされます。この場合、認証と認可に加えて、メッセージ保護(機密保護と整合性)を強制する必要があります。こうしたリクエストのパフォーマンスは低下しますが、それに代わる結果(データ・リーク、リプレイ攻撃など)はさらに悪いために、容認できるものとみなされます。
管理者は、外部ネットワークに対してポリシー・セットの適切な適用を確実に行うために、ポリシー・セットが評価される制約式を指定する必要があります。この式の値は、ポリシー・セットが関連する実行時のコンテキストを示します。
制約式では、有効なヘッダー名および値を指定する必要があります。このリリースでは、次の式が動作保証されています。
HTTPHeader("VIRTUAL_HOST_TYPE","External")
—外部としての制約を設定し、Oracle HTTP Serverを通じて受信するすべての外部リクエストにポリシー・セットを適用すべきであることを示します。
!HTTPHeader("VIRTUAL_HOST_TYPE","External")
—非外部としての制約を設定し、内部ネットワークからのリクエストなど、Oracle HTTP Serverを経由していないすべての受信リクエストにポリシー・セットを適用すべきであることを示します。
注意: 実行時制約関数HTTPHeader は、Oracle HTTP Serverがフロント・エンドで構成されており、なおかつOracle HTTP Server管理者がリクエストにカスタムVIRTUAL_HOST_TYPE ヘッダーを追加している場合にのみ、その使用が動作保証されています。リクエストへのヘッダーの追加の詳細は、「リクエスト元を指定するためのOracle HTTP Serverの構成」を参照してください。 |
制約を指定する場合は、次のルールが適用されます。
複数のポリシー・セットで同じ制約を指定している場合、標準の有効なポリシー計算ルールが適用されます。標準の有効なポリシー・ルールの詳細は、「有効なポリシー・セットの計算方法」を参照してください。
複数のポリシー・セットで様々な制約を指定する場合、各タイプの制約に対して有効なポリシー・セットが独立して計算されます。つまり、すべての外部リクエストについて有効なポリシー・セットが評価され、すべての非外部リクエストについて別個の有効なポリシー・セットが評価されます。
ポリシー・セットで実行時制約を指定しない場合、すべてのリクエスト、つまり外部および非外部のリクエストに適用されます。
図4-14は、3つの異なるポリシー・セットで制約を使用して決定された外部および非外部のリクエストに対して有効なポリシーを示しています。
ポリシー・セットの実行時制約を指定する方法の詳細は、次の項を参照してください。
リソース・セット全体でグローバルにポリシーをアタッチするには、ポリシー・セットが適用されるポリシー・サブジェクトのタイプ、およびエンタープライズのトポロジ内のリソース・スコープを指定する必要があります。
リソース・タイプ(つまり、サブジェクト・タイプ)は、ポリシー・セットが適用されるエンドポイントのタイプを識別します。これは、ポリシー・セットのappliesTo
属性にマッピングされます。リソース・スコープは、ポリシーを含むポリシー・セットが適用されるリソース内のロケーションを識別します。これは、ポリシー・セットのattachTo
属性にマッピングされ、複数のポリシー・セットが存在する場合に競合の解決に使用されます。
Fusion Middleware Controlで、ポリシー・セットを作成しているときに、メニューからリソース・タイプを選択します。WLSTを使用してポリシー・セットを作成する場合、こうしたリソース・タイプに対応する特定の略語を使用する必要があります。
リソース・スコープと対応するWLSTのリストの詳細は、『Oracle Web Services Managerの理解』のポリシー・サブジェクトの概要に関する項を参照してください。
注意: ポリシー・セットを作成する場合、SOAP WebサービスおよびSOAP Webサービス・クライアントのサブジェクト・タイプが、Oracle InfrastructureのWebサービスとクライアントおよびJava EEのWebサービスとクライアントを両方とも参照します。 |
各ポリシー・サブジェクト・タイプで有効なリソース・スコープのリストの詳細は、『Oracle Web Services Managerの理解』のポリシー・サブジェクトの概要に関する項を参照してください。
Fusion Middleware Controlで、リソース・スコープに関連付けられている名前を表すパターン文字列を入力することにより、スコープを指定します。たとえば、ドメイン内のすべてのWebサービス・エンドポイントにポリシー・セットをアタッチするには、「ドメイン名」フィールドにドメイン名を表すパターンを入力します。
WLSTでリソース・スコープを指定する際には、各スコープでサポートされる式を使用する必要があります。こうした式は、次の引数で必要になります。
createWSMPolicySet
コマンドおよびcloneWSMPolicySet
コマンドのattachTo
引数
setWSMPolicySetScope
コマンドのexpression
引数
Fusion Middleware ControlおよびWLSTの両方について、名前全体またはワイルドカードを使用した部分値を入力できます。該当位置で任意の数の文字に一致するワイルドカード文字としてアスタリスク(*)を文字列内の任意の場所で使用できます。また、文字列内の任意の位置で複数のワイルドカードを指定できます。たとえば、ドメイン名jrf_domain
に対しては、jrf*、*rf*domain、または任意の個数の組合せを入力できます。1つのスコープについて1つのパターンのみを提供する必要があります。リソース・スコープについてパターン文字列を指定しない場合、アスタリスク(*)が想定されます。一重引用符または二重引用符を使用できます。複数の値を指定した場合、ポリシー・サブジェクトにアタッチすることが考慮されているポリシー・セットにすべての式が一致する必要があります。
表4-2は、WLSTでサポートされる式と、Fusion Middleware Controlで指定されているリソース・スコープ名を示しています。
表4-2 リソース・スコープについてサポートされる式
Fusion Middleware Controlリソース・スコープ名 | WLSTでサポートされる式 | 説明 |
---|---|---|
ドメイン名 |
Domain("expression") |
この値は、デプロイされた管理ドメインに基づくポリシー・サブジェクトに一致します。 |
アプリケーション名 |
Application("expression") |
この値は、配置されたアプリケーションの名前に基づくポリシー・サブジェクトに一致します。 |
パーティション名 |
Partition('expression") |
この値は、配置されたSOAパーティションの名前に基づくポリシー・サブジェクトに一致します。 |
アプリケーション・モジュール名または接続名 |
Module("expression") |
この値は、配置されたアプリケーション・モジュールまたは接続の名前に基づくポリシー・サブジェクトに一致します。 |
SOAコンポジット名 |
Composite("expression") |
この値は、配置されたSOAコンポジットの名前に基づくポリシー・サブジェクトに一致します。 注意: コンポジットの場合、式ではコンポジットの名前のみを使用すべきです。次に例を示します。
式には、SOAパーティションまたはコンポジット・リビジョン番号を含めないでください。 |
ESSジョブ名 |
Jobname("expression") |
この値は、配置されたOracle Enterprise Scheduler Webサービス・ジョブの名前に基づくポリシー・サブジェクトに一致します。 |
リソース・パス |
Path("expression") |
この値は、配置されたリソース・パスの名前に基づくポリシー・サブジェクトに一致します。 |
参照またはWebサービス・クライアント名 |
Reference("expression") |
この値は、配置された参照またはWebサービス・クライアントの名前に基づくポリシー・サブジェクトに一致します。 |
RESTfulアプリケーション、サービスまたはWebサービス・エンドポイント名 |
Service("expression") |
この値は、配置されたサービス、RESTfulアプリケーションまたはWebサービス・エンドポイントの名前に基づくポリシー・サブジェクトに一致します。 注意: サービスでは、式にネームスペースおよびサービス名を含める必要があります。次に例を示します。
PS5の前にアセンブルされたアプリケーションでは、 |
SOAコンポーネント名 |
Component("expression") |
この値は、配置されたSOAコンポーネントの名前に基づくポリシー・サブジェクトに一致します。 |
ポート名 |
Port("expression") |
この値は、配置されたポートの名前に基づくポリシー・サブジェクトに一致します。 |
Java EE Webサービス・クライアントのEJB名 |
EJBName("expression") |
この値は、配置されたJava EE Webサービス・クライアントEJBの名前に基づくポリシー・サブジェクトに一致します。 |
コールバック・インタフェース名 |
PortType("expression") |
この値は、配置されたコールバック・インタフェースの名前に基づくポリシー・サブジェクトに一致します。 |
PS5の前にアセンブルされたアプリケーションでは、WLSTコマンドの出力またはサービス名が表示されるFusion Middleware Controlにネームスペースが表示されません。サービスをリソース・スコープとして指定するには、ネームスペースとサービス名を含める必要があります。WebサービスのWSDLドキュメントからサービスのネームスペースを決定できます。これを行うには:
『Webサービスの管理』のWebサービスのWSDLドキュメントの表示に関する項の説明に従って、Webサービス・エンドポイントのWSDLドキュメントを表示します。
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
次の例では、様々なリソース・タイプおよびスコープを使用してポリシー・セットを作成する方法を示しています。
例4-11では、非同期コールバック・クライアント(ws-callback)リソース・タイプのポリシー・セットを作成します。この例では、ポリシー・セットが特定のアプリケーション・スコープにアタッチされ、フィルタ条件(Domain
AND Application
)を満たすすべてのサービスに適用されます。
例4-11 非同期コールバック・クライアント・リソース・タイプのポリシー・セット
beginWSMSession() createWSMPolicySet('Async callback client', 'ws-callback', 'Domain("FinancialDomain") and Application("Expense*")', 'Global policy for asynchronous callback client', true) selectWSMPolicySet('Async callback client') attachWSMPolicy('oracle/wss10_saml_token_client_policy') validateWSMPolicySet() commitWSMSession() displayWSMPolicySet('Async callback client')
例4-12では、ADF SOAP Webサービス接続(ws-connection)リソース・タイプのweb_connection_cost_serviceという名前のポリシー・セットを作成します。この例では、ポリシー・セットが特定のアプリケーション・モジュール・スコープにアタッチされ、フィルタ条件(Domain
AND Application
AND Module
)を満たすすべてのサービスに適用されます。
例4-12 Webサービス接続リソース・タイプのポリシー・セット
beginWSMSession() createWSMPolicySet('web_connection_cost_service', 'ws-connection', 'Domain("SCMDomain") and Application("ScmCst*") and Module("*Costs")', enable=true) selectWSMPolicySet('web_connection_cost_service') attachWSMPolicy('oracle/wss10_saml_token_client_policy') validateWSMPolicySet() commitWSMSession() displayWSMPolicySet('web_connection_cost_service')
ダイレクト(ローカル)ポリシー・アタッチメントを外部グローバル・ポリシー・アタッチメントに移行するために(両者が同じである場合)、migrateAttachments
WLSTコマンドを使用できます。同じポリシー・アタッチメントを移行することにより、メンテナンスする必要のある物理的なアタッチメントの数が減少し、管理性が向上します。
ダイレクト・ポリシー・アタッチメントのURIがグローバル・ポリシー・アタッチメントによって提供されるURIと同じであり、両者が次に当てはまる場合は、両者は同じです。
構成オーバーライドがない。
または
スコープ設定された構成オーバーライドがあり、ダイレクト・ポリシー・アタッチメントのスコープ設定された構成オーバーライドのプロパティと値が、グローバル・ポリシー・アタッチメントと同じである。
次の移行はできません。
プログラム的なポリシー・アタッチメント
SOAコンポーネントに対するダイレクトまたはグローバルなポリシー・アタッチメント
注意: migrateAttachments WLSTコマンドには、ダイレクト・ポリシー・アタッチメントのスコープ設定されていないオーバーライドを識別する方法がありません。そのため、スコープ設定されていないオーバーライドのあるダイレクト・ポリシー・アタッチメントは、構成オーバーライドがないかのように扱われるので、migrateAttachments が構成オーバーライドのないグローバル・ポリシー・アタッチメントに相当するものを検出すると、移行されます。 |
ポリシー・アタッチメントを移行するには:
『Webサービスの管理』のWebサービスのカスタムWLSTコマンドへのアクセスに関する項の説明に従って、WebLogic Serverの実行中のインスタンスに接続します。
migrateWSMAttachments
コマンドを使用して、アタッチメントを移行します。移行を強制するか(force
)、各移行の前に確認のためのプロンプトを表示するか(prompt
)、または実行される移行を単純にリストするか(preview
)を指定できます。モードが指定されていない場合、デフォルトはprompt
です。
migrateWSMAttachments(mode='prompt')
たとえば、考えられる各アタッチメントの移行について確認のためのプロンプトをデフォルトで表示するには、次のコマンドを入力します。出力には、jaxws-sut
アプリケーションについて移行可能な同じグローバル・ポリシー・アタッチメントと直接ポリシー・アタッチメントがあることに注意してください。
wls:/jrfServer_domain/serverConfig> migrateWSMPolicyAttachments()
-----------------------------------------------------------------------------
Application: /WLS/base_domain/jaxwsejb30ws
Assembly: #jaxwsejb
Subject: WS-Service({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort)
Policy Reference: URI=oracle/wss_saml_or_username_token_service_policy, source=global policy set "default-domain-ws-domain", reference-status=enabled
reference.priority=10
URI=oracle/mex_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/mtom_encode_fault_service_policy, source=local policy set, reference-status=enabled
URI=oracle/max_request_size_policy, source=local policy set, reference-status=enabled
max.request.size=-1
URI=oracle/request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/soap_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/ws_logging_level_policy, source=local policy set, reference-status=enabled
logging.level=
URI=oracle/test_page_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wsdl_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wss10_saml20_token_with_message_protection_service_policy, source=local policy set, reference-status=disabled
-----------------------------------------------------------------------------
Application: /WLS/base_domain/jaxwsejb30ws
Assembly: #jaxwsejb
Subject: WS-Service({http://soapinterop.org/DoclitWrapperWTJ}DoclitWrapperWTJService#DoclitWrapperWTJPort)
Policy Reference: URI=oracle/wss_saml_or_username_token_service_policy, source=global policy set "default-domain-ws-domain", reference-status=enabled
reference.priority=10
URI=oracle/mex_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/mtom_encode_fault_service_policy, source=local policy set, reference-status=enabled
URI=oracle/max_request_size_policy, source=local policy set, reference-status=enabled
max.request.size=-1
URI=oracle/request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/soap_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/ws_logging_level_policy, source=local policy set, reference-status=enabled
logging.level=
URI=oracle/test_page_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wsdl_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wss10_username_token_with_message_protection_service_policy, source=local policy set, reference-status=enabled
--------------------------------------------------------------------------------
Application: /WLS/base_domain/jaxwsejb30ws
Assembly: #jaxwsejb
Subject: WS-Service({http://www.oracle.com/jaxws/tests}CalculatorService#CalculatorPort)
Policy Reference: URI=oracle/wss_saml_or_username_token_service_policy, source=global policy set "default-domain-ws-domain", reference-status=enabled
reference.priority=10
URI=oracle/mex_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/mtom_encode_fault_service_policy, source=local policy set, reference-status=enabled
URI=oracle/max_request_size_policy, source=local policy set, reference-status=enabled
max.request.size=-1
URI=oracle/request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/soap_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/ws_logging_level_policy, source=local policy set, reference-status=enabled
logging.level=
URI=oracle/test_page_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wsdl_request_processing_service_policy, source=local policy set, reference-status=enabled
URI=oracle/wss_saml_or_username_token_service_policy, source=local policy set, reference-status=enabled
Migrate "oracle/wss_saml_or_username_token_service_policy" (yes/no/cancel)? yes
--------------------------------------------------------------------------------
"oracle/wss_saml_or_username_token_service_policy" was migrated successfully.--------------------------------------------------------------------------------
このコマンドの引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービスのカスタムWLSTコマンドに関する項を参照してください。
特定のエンドポイントに対してグローバルにアタッチされたポリシーを無効にする場合のために、いかなる動作も強制しない事前定義済ポリシーが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アサーションを使用します。アサーション・テンプレートは提供されていないので、これらのポリシーを削除した場合、手動で再作成する方法はありません。誤って削除した場合、リストアする唯一の方法はリポジトリを再構築することです。詳細は、「OWSMリポジトリの再構築」を参照してください。 |
インストールで提供されている事前定義済ポリシーには構成のオーバーライド(reference.priority
)が含まれており、これによって管理者はポリシー・アタッチメントを使用するプリファレンスを指示できます。デフォルトでは、他の値が指定されていない場合、アタッチされたポリシーは0
のreference.priority
を持ちます。
たとえば管理者は、ドメインのスコープでグローバルにポリシーをアタッチし、1以上のリファレンス優先度を指定することによって、ダイレクト・アタッチメントを変更する必要なく、直接アタッチされたポリシーよりも優先させることができます。管理者が特定のダイレクト・アタッチメントを例外にする場合は、そのアタッチメントのリファレンス優先度を指定し、グローバル・ポリシー・アタッチメント以上の優先度に昇格させることができます。reference.priority
について最大の整数値を持つポリシー・アタッチメントは、それが直接または外部からアタッチされたかどうか、またはそのスコープにかかわりなく、有効なポリシー計算で優先されます。
reference.priority
には、次の値を指定できます。
文字列値"true"
、"yes"
および"on"
これらの文字列値は、整数値1と等価です。その他の文字列値は、整数値0として扱われます。
次の範囲の整数値
MAX_VALUE = 2147483647または(231 - 1)
MIN_VALUE = -2147483648または(-231)
詳細は、次のトピックを参照してください。
グローバル・ポリシー・アタッチメントでは、開発者、アセンブラまたはデプロイヤがアタッチするポリシーを明示的に指定しなくても、すべてのサブジェクトが保護される「デフォルトでセキュア」の方針に準拠する機能を提供しています。つまり、管理者はポリシー・セットを使用することによって、ポリシーが明示的にアタッチされていない場合でも、1つ以上のポリシーが自動的に適用されることを確認できます。
管理者は、WLSTおよびFusion Middleware Controlの両方を使用して、ドメイン内のすべてのサブジェクトが保護されているかどうか、およびエンドポイント構成が有効であるかどうかを判断できます。
次の点に注意してください。
エンドポイントは、(直接またはグローバルに)アタッチされたポリシーで認証、認可またはメッセージ保護操作が強制される場合にセキュアであると判断されます。無効なポリシーまたはポリシー内の無効なアサーションでは何も強制されません。
有効なポリシー計算セットに従って、アタッチされたポリシーの組合せに競合がない場合に、エンドポイントは有効な構成を持ちます。詳細は、「ポリシーの有効セットの計算方法」を参照してください。
「ポリシー・アタッチメントの優先度の指定」の説明に従って、グローバルにまたは直接アタッチされたポリシーの優先度を指定できるので、直接アタッチされたポリシーの「有効」フィールドはエンドポイントに対してそのポリシーが有効であるかどうかを示します。エンドポイントの管理を簡素化するために、有効であるかどうかに関係なく、すべての直接アタッチされたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。
Fusion Middleware Controlを使用することにより、構成が有効であるかどうか、「Webサービス・エンドポイント」ページでエンドポイントが保護されているかどうかを確認できます。図4-15に、セキュアなエンドポイントを含む有効な構成を示します。
WLSTを使用することで、listWSMPolicySubjects
WLSTコマンドにより、エンドポイントとそのセキュア・ステータスのリストを生成できます。例4-13
に示すように、detail
引数をtrueに設定した場合、こうしたコマンドからの出力には、ドメイン内のすべてのアプリケーションおよびコンポジットに対するエンドポイントおよびポリシーの詳細、エンドポイントのセキュア・ステータス、構成のオーバーライドおよび制約が含まれます(エンドポイントに有効な構成がある場合)。
例4-13 有効でセキュアなエンドポイント構成を含むlistWSMPolicySubjectsOutput
wls:/jrfServer_domain/serverConfig> listWSMPolicySubjects(detail='true')
Application: /weblogic/base_domain/jaxwsejb30ws Assembly: WEB#jaxwsejb Subject: WS-SERVICE({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort)
URI="oracle/mex_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/mtom_encode_fault_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
Property name="max.request.size", value="-1"
URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="logging.level", value=""
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
URI="oracle/wss11_saml_or_username_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=global policy set "domainExternal", scope="Domain("*")"; reference-status=enabled; effective=true
Property name="local.policy.reference.source", value="IMPLIED_FEATURE"
The web service is secure in this context.
これらのWLSTコマンドの使用の詳細は、『Webサービスの管理』のWLSTを使用したドメインでのWebサービスの表示に関する項を参照してください。
OWSMでは、ポリシーに含まれるアサーションのカテゴリに基づいてサブジェクトにアタッチできるポリシーの数が制限されます。ほとんどの場合、同じアサーション・カテゴリを含む複数のポリシーをアタッチすることは禁止されます。たとえば、認証アサーションを含む2つのポリシーを1つのポリシー・サブジェクトにアタッチすることはできませんが、認証アサーションを含む1つのポリシーと認可アサーションを含む1つのポリシーを同じサブジェクトにアタッチすることはできます。同じアサーション・カテゴリを含む複数のポリシーがサブジェクトにアタッチされており、アサーションが競合する場合、構成は無効であると判断されます。サブジェクトにアタッチできるポリシーの数および組合せの詳細は、「ポリシー・アタッチメントの検証」を参照してください。
OWSMポリシーとWebLogic Webサービス・ポリシーは、同じエンドポイントにはアタッチできません。WebLogicポリシーがアタッチされているJava EEエンドポイントに適用されるポリシー・セットを作成すると、そのエンドポイントで有効なポリシーが計算される際に、OWSMポリシーは無視されます。
ポリシーのアタッチメントを直接および外部(グローバル)の両方でサポートするために、サブジェクトに対して有効なポリシー・セットの決定で、各ポリシー内のアサーションのカテゴリが考慮されます。直接アタッチされたポリシーは、ポート・コンポーネントのスコープでアタッチされることに注意してください。デフォルトでは、指定のカテゴリのアサーションを含むポート・コンポーネントのスコープ(直接アタッチされたポリシーなど)でアタッチされたポリシーがサブジェクトにある場合、次のようにreference.priority
構成オーバーライドが設定されていなければ、上位のスコープか同じスコープで外部ポリシー・セットによって参照されている同じカテゴリの競合アサーションを含むポリシーは、サブジェクトに対して有効なポリシー・セットから除外されます。このプロセスは、各サブジェクト・スコープで繰り返されます。狭い/下位のスコープが広い/上位のスコープよりも優先されます。
たとえば、次のリソース・スコープはSOAP Webサービス・ポリシー・サブジェクトに対して有効で、後になるほど優先度が高くなります。
ドメイン
アプリケーション
アプリケーション・モジュールまたは接続
RESTfulアプリケーション、サービスまたはWebサービス・エンドポイント
ポート
つまり、ポート・スコープ(より狭いスコープ)でのポリシー・アタッチメントは、ドメイン・スコープ(より広いスコープ)でのアタッチメントよりも優先されます。この例で言えば、モジュール・スコープでアタッチされたかまたは(ポート・スコープで)直接アタッチされたポリシーと同じカテゴリの競合アサーションがアプリケーション・スコープでのポリシー・アタッチメントに含まれる場合、そのポリシー・アタッチメントはサブジェクトに対して有効なポリシー・セットから除外されます。
各ポリシー・サブジェクトで有効なリソース・スコープは、優先度の昇順で、『Oracle Web Services Managerの理解』のポリシー・サブジェクトの概要に関する項で説明されています。リソース・スコープの詳細は、「グローバルにアタッチされたポリシーのリソースのタイプおよびスコープの定義」を参照してください。
管理者は、reference.priority
構成オーバーライドを使用することによって、スコープによって決定されたデフォルトの優先度をオーバーライドし、使用されるポリシー・アタッチメントのプリファレンスを指定できます。最も高い優先度を持つポリシー・アタッチメントがそのスコープにかかわらず優先されます。
reference.priority
オーバーライドを使用する場合は、次のルールが適用されます。
最も高い優先度(最高の整数値)を持つポリシー・アタッチメントがスコープにかかわらず優先されます。
アタッチメントに同じカテゴリの競合アサーションが含まれており、同じ優先度が指定されている場合は、より固有のスコープが優先されます。
アタッチメントに同じカテゴリ、優先度およびスコープの競合アサーションが含まれる場合、構成は無効です。
ポリシー・セットに実行時制約が適用される場合、次のルールが該当します。
それぞれの一意の制約により、独立したポリシー・セットが作成されます。有効なポリシー計算は、同じ制約を含むポリシー・セット上でのみ実行されます。
ポリシー・セットで制約が指定されていない場合(デフォルト)、このポリシー・セット内のポリシー参照は別個の各制約からのポリシー・セットとマージされます。次に、各制約について有効なポリシー・セットを決定するために、各ポリシー・セット上で有効なポリシー計算が実行されます。
実行時制約の詳細は、「ポリシー・セットの実行時制約の指定」を参照してください。
ポリシー計算の有効セットでは、各ポリシー・アタッチメントのステータスが考慮されます。ポリシー、ポリシー・セット内のポリシー参照またはポリシー・セットが無効である場合、サブジェクトに対する有効なポリシー・セットから削除されます。
no reference.priority
オーバーライドを指定した場合、グローバルにアタッチされたポリシーは、下位のスコープ(たとえば、直接アタッチメントによるポートのスコープ)で同じカテゴリのアサーションを含むポリシーをアタッチすることによりオーバーライドできます。この特別な例として、特定のサブジェクトに対して、どのような動作も強制しない同じカテゴリのアサーションを含むポリシーをアタッチすることにより、グローバルにアタッチされたポリシーを実質的に無効にできます。どのような動作も強制しないポリシーの詳細は、「動作無効ポリシー」を参照してください。
次の例では、有効なポリシー計算の結果を示しています。
ダイレクト・アタッチメント:oracle/wss_username_token_service_policy
外部アタッチメント:oracle/wss_saml_or_username_token_service_policy @ Domain('*')
結果: 下位スコープによるダイレクト・アタッチメント: oracle/wss_username_token_service_policy
ダイレクト・アタッチメント:oracle/wss_username_token_service_policy
外部アタッチメント: oracle/wss_saml_or_username_token_service_policy @ Domain('*')、reference.priority
=1
結果: 高優先度による外部アタッチメント: oracle/wss_saml_or_username_token_service_policy @ Domain('*')
外部アタッチメント:oracle/wss_username_token_service_policy @ Application('*')
外部アタッチメント:oracle/wss_saml_or_username_token_service_policy @ Domain('*')
結果: 下位スコープによる外部アタッチメント: oracle/wss_username_token_service_policy @ Application('*')
外部アタッチメント:oracle/wss_username_token_service_policy @ Application('*')
外部アタッチメント:oracle/wss10_message_protection_service_policy @ Domain('*')
結果: アサーション・カテゴリが競合しないために、両アタッチメントが有効: oracle/wss_username_token_service_policy @ Application('*') and oracle/wss10_message_protection_service_policy @ Domain('*')
外部アタッチメント:oracle/wss_username_token_service_policy @ Domain('*')
外部アタッチメント:oracle/wss_saml_or_username_token_service_policy @ Domain('*')
結果: 無効。同じスコープで指定された競合アサーション・カテゴリを含むポリシー。
ダイレクト・アタッチメント:oracle/wss11_saml_token_with_message_protection_service_policy
外部アタッチメント:oracle/wss11_username_token_with_message_protection_service_policy @ Port('TestPort')
結果: 直接のアタッチメント。競合するアサーション・カテゴリのポリシーが同じスコープで指定されると、直接アタッチされたポリシーがポリシー・セット内の外部ポリシー・アタッチメントよりも優先されます。
ダイレクト・アタッチメント:oracle/wss11_saml_token_with_message_protection_service_policy
外部アタッチメント: oracle/wss11_username_token_with_message_protection_service_policy @ Port('TestPort')、reference.priority="true"
結果: 高優先度のスコープによる外部アタッチメント: oracle/wss11_username_token_with_message_protection_service_policy @ Port('TestPort')
注意: グローバル・ポリシー・アタッチメントが有効になるまでにかかる時間は、OWSMポリシー・アクセッサのキャッシュ管理設定によって決定されます。デフォルトでは、この遅延は最大で11分です。この遅延量を削減するために、次のキャッシュ・プロパティ設定をチューニングできます。
これらのプロパティのチューニングの詳細は、「Fusion Middleware Controlを使用した高可用性およびキャッシュ管理の構成」を参照してください。 |
直接アタッチされたポリシーのソースを決定するには、detail
引数をtrue
に設定して次のWLSTコマンドの中の1つを使用します。
listWebServices(detail=true)
。『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistWebServices()に関する項を参照してください。
listWebServiceClients(detail=true)
。『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistWebServiceClients()に関する項を参照してください。
listWSMPolicySubject(detail=true)
。『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のlistWSMPolicySubjectsに関する項を参照してください。
detail=true
引数を指定すると、出力には、直接アタッチメントのソースを識別するlocal.policy.reference.source
プロパティを含めた、サービスまたはクライアントあるいはその両方のポリシーの詳細が含まれます。
グローバルにアタッチされたポリシーとこの情報を合せて使用することにより、サービスまたはクライアントの有効なポリシーのソースを判断できます。
local.policy.reference.source
の有効な値は、表4-3の定義を参照してください。
表4-3 local.policy.reference.source構成プロパティの有効な値
ソース | 説明 |
---|---|
|
Webサービス・エンドポイントで指定されたポリシー注釈。付録A「セキュリティおよびポリシー注釈リファレンス」を参照してください。 |
|
Webサービスまたはクライアント・エンドポイントで暗黙的にアタッチされたポリシー参照。 注意: この値はOracle Infrastructure Webサービスのみに適用されます。 明示的にアタッチされていない場合、次のポリシーが必要に応じて暗黙的にエンドポイントにアタッチされます。
|
|
|
|
|
|
次のいずれかの方法を使用したポリシー・アタッチメント:
|
|
プログラムによるポリシー・アタッチメント(「設計時におけるWebサービスおよびクライアントへのポリシーのアタッチ」を参照) |
次に、listWebServices(detail=true)
WLSTコマンドの出力例を示します。直接アタッチされたポリシーごとに、アタッチメントのソースを識別するlocal.policy.reference.source
構成プロパティが提供されています(太字表示)。
wls:/base_domain/serverConfig> listWebServices(detail='true') /base_domain/AdminServer/jaxwsejb30ws : moduleName=jaxwsejb, moduleType=web, serviceName=CalculatorService CalculatorPort http://host.example.com:1234/jaxwsejb/Calculator URI="oracle/wss10_saml20_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=global policy set " MyPolicySet1", scope="DOMAIN('*')"; reference-status=enabled; effective=true Property name="reference.priority", value="10" URI="oracle/mex_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/mtom_encode_fault_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/max_request_size_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" Property name="max.request.size", value="-1" URI="oracle/request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/soap_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/ws_logging_level_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="logging.level", value="" Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/test_page_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/wsdl_request_processing_service_policy", category=wsconfig, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="IMPLIED_FEATURE" URI="oracle/http_saml20_token_bearer_service_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; reference-status=enabled; effective=false Property name="local.policy.reference.source", value="LOCAL ATTACHMENT" The policy subject is secure in this context.