この章では、SOAコンポジット・アプリケーションの設計時にバインディング・コンポーネントおよびサービス・コンポーネントにポリシーを添付する方法について説明します。ポリシーによって、メッセージ配信にセキュリティが適用されます。この章では、ポリシー構成プロパティ値のオーバーライド方法についても説明します。
この章には次の項が含まれます:
Oracle Fusion Middlewareでは、ポリシー・ベースのモデルを使用してWebサービスを組織全体で管理および保護します。ポリシーによって、メッセージ配信にセキュリティが適用されます。ポリシーは、開発者が設計時環境で管理することも、システム管理者が実行時環境で管理することもできます。
ポリシーは1つ以上のアサーションで構成されます。ポリシー・アサーションは、特定のアクションを実行するポリシーの最小単位です。ポリシー・アサーションはリクエスト・メッセージおよびレスポンス・メッセージに対して実行され、同じアサーション・セットが両方のタイプのメッセージに対して実行されます。アサーションはポリシーに表示されている順序で実行されます。
表42-1に、サポートされるポリシー・カテゴリを示します。
表42-1 サポートされるポリシー・カテゴリ
カテゴリ | 説明 |
---|---|
メッセージ転送最適化メカニズム(MTOM) |
添付ファイルがMTOM形式であることが保証されます。この形式を使用すると、Webサービス間でバイナリ・データを送信できます。これにより、ワイヤ上の転送サイズを減らすことができます。 |
信頼性 |
WS-Reliable Messagingプロトコルをサポートします。これにより、エンドツーエンドのメッセージ配信が保証されます。 |
アドレッシング |
Simple Object Access Protocol(SOAP)メッセージに、WS-Addressing仕様に準拠するWS-Addressingヘッダーが含まれていることを検証します。トランスポート・レベルのデータはXMLメッセージに含まれており、ネットワーク・レベルのトランスポートに依存せずに情報を伝達します。 |
セキュリティ |
WS-Security 1.0および1.1の標準を実装します。これらの標準により、ユーザーの認証と認可、アイデンティティ伝播およびメッセージ保護(メッセージ整合性およびメッセージ機密性)が実施されます。 |
管理 |
リクエスト、レスポンスおよびフォルト・メッセージをメッセージ・ログに記録します。管理ポリシーにはカスタム・ポリシーを含めることもできます。 |
各カテゴリ内には、添付できるポリシー・タイプが1つ以上あります。たとえば、「信頼性」カテゴリを選択した場合は、次のタイプを選択できます。
oracle/wsrm10_policy
Webサービスの信頼性のあるメッセージング・プロトコルのバージョン1.0をサポートします。
oracle/wsrm11_policy
Webサービスの信頼性のあるメッセージング・プロトコルのバージョン1.1をサポートします。
oracle/no_wsrm_policy
グローバルに添付されたWeb Services Reliable Messagingポリシーの無効化をサポートします。
使用可能なポリシー、自分の環境に使用するポリシーについて、およびグローバル・ポリシーの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。
SOAコンポジット・アプリケーションのサービス・バインディング・コンポーネント、サービス・コンポーネントおよび参照バインディング・コンポーネントとの間で、ポリシーを添付したり、ポリシーの添付を解除できます。設計時環境でセキュリティをテストするために、Oracle JDeveloperを使用してポリシーを添付します。アプリケーションを本番環境にデプロイする準備が整った場合は、Oracle Enterprise Manager Fusion Middleware Controlで実行時ポリシーを添付したり、ポリシーの添付を解除できます。
ポリシーの実行時管理の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
バインディング・コンポーネントおよびサービス・コンポーネントにポリシーを添付する手順は、次のとおりです。
SOAコンポジット・エディタで、サービス・バインディング・コンポーネントまたは参照バインディング・コンポーネントを右クリックします。
「WSポリシーの構成」を選択します。
SOAコンポジット・アプリケーションのインタフェース定義に応じて、オプションの追加メニューが表示される場合があります。
選択したサービスまたは参照が同期のBPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントとインタフェースしている場合は、リクエスト・メッセージとレスポンス・メッセージの両方に対して単一のポリシーが使用されます。「SOA WSポリシーの構成」ダイアログが即時に表示されます。ステップ4に進みます。
サービスまたは参照が非同期のBPELプロセス・サービス・コンポーネントまたはOracle Mediatorサービス・コンポーネントとインタフェースしている場合は、リクエスト・メッセージとレスポンス・メッセージに対して個別のポリシーを構成する必要があります。コールバックのポリシーは、サービスからクライアントに送信されるレスポンスに使用されます。追加のメニューが表示されます。ステップ3に進みます。
使用するバインディングのタイプを選択します。
リクエスト対象:
バインドするサービス・コンポーネントのリクエスト・バインディングを選択します。選択できるリクエスト・バインディングは1つのみです。このアクションにより、バインディング・コンポーネントとサービス・コンポーネント間の通信が可能になります。
「公開されたサービス」スイムレーンでリクエスト・バインディングがサービスに対して構成されると、そのサービスはサーバーとして機能します。「外部参照」スイムレーンでリクエスト・バインディングが参照に対して構成されると、その参照はクライアントとして機能します。
コールバック対象: (非同期プロセスとの相互作用が必要な場合のみ)
バインドするサービス・コンポーネントのコールバック・バインディングを選択します。このアクションにより、バインディング・コンポーネントとサービス・コンポーネント間のメッセージ通信が可能になります。選択できるコールバック・バインディングは1つのみです。
「公開されたサービス」スイムレーンでコールバック・バインディングがサービスに対して構成されると、そのサービスはクライアントとして機能します。「外部参照」スイムレーンでコールバック・バインディングが参照に対して構成されると、その参照はサーバーとして機能します。
図42-1に示す「SOA WSポリシーの構成」ダイアログが表示されます。この例では、サービス・バインディング・コンポーネントに対して「リクエスト対象」オプションが選択されています。「コールバック対象」を選択した場合も、同じタイプのポリシー・カテゴリが使用可能です。
添付するポリシーのタイプの「追加」アイコンをクリックします。
MTOM
信頼性
アドレッシング
セキュリティ
管理
この例では、「セキュリティ」が選択されています。図42-2に示すダイアログが表示されます。
カーソルをポリシー名の上に置くと、ポリシー機能の説明が表示されます。
添付するポリシーのタイプを選択します。
「OK」をクリックします。
図42-3に示す「SOA WSポリシーの構成」ダイアログに戻ります。添付されたセキュリティ・ポリシーが「セキュリティ」セクションに表示されます。
必要に応じて、さらにポリシーを追加します。
ポリシーを一時的に無効にするには、添付されたポリシーの名前の左にあるチェック・ボックスの選択を解除します。このアクションはポリシーの添付を解除するものではありません。
ポリシーの添付を解除するには、「削除」アイコンをクリックします。
完了後に、「SOA WSポリシーの構成」ダイアログで「OK」をクリックします。
SOAコンポジット・エディタに戻ります。
ポリシーをサービス・コンポーネントに添付する手順は、次のとおりです。
サービス・コンポーネントを右クリックします。
「コンポーネントWSポリシーの構成」を選択します。
図42-4に示す「SOA WSポリシーの構成」ダイアログが表示されます。
添付するポリシーのタイプの「追加」アイコンをクリックします。
セキュリティ
管理
選択したタイプに対応するダイアログが表示されます。
添付するポリシーのタイプを選択します。
「OK」をクリックします。
必要に応じて、さらにポリシーを追加します。
完了後に、「SOA WSポリシーの構成」ダイアログで「OK」をクリックします。
Oracle Enterprise Manager Fusion Middleware Controlで実行時にポリシーを添付する方法の詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
使用する環境には、同じポリシーのクライアントまたはサーバーが複数含まれている場合があります。ただし、各クライアントまたはサーバーにはそれぞれ固有のポリシー要件が設定されている可能性があります。これらのポリシー・プロパティ値は、実行時の要件に基づいてオーバーライドできます。
クライアント・ポリシー構成プロパティのデフォルト値は、各クライアントに新しいポリシーを作成しなくても、クライアントごとにオーバーライドできます。この方法では、デフォルトの構成値を定義し、その値を実行時の要件に基づいてカスタマイズするクライアント・ポリシーをオーバーライドできます。
次のいずれかのバインディング・コンポーネントを右クリックします。
「公開されたサービス」スイムレーンでサービス・バインディング・コンポーネントを右クリックし、「コールバック対象」を選択します。
「外部参照」スイムレーンで参照バインディング・コンポーネントを右クリックし、「リクエスト対象」を選択します。
「セキュリティ」および「管理」セクションに移動します。これらの手順は、これらのセクションにポリシーがすでに添付されていることを前提にしています。
両方のセクションで「編集」アイコンが使用可能です。図42-5に詳細を示します。
「編集」アイコンをクリックします。選択したポリシーに関係なく、添付したすべてのクライアント・ポリシーについて、プロパティ名、値、およびオーバーライドされた値が表示されます。
「オーバーライド値」列で、「値」列に表示されたデフォルト値をオーバーライドする値を入力します。図42-6に詳細を示します。
「OK」をクリックして「構成オーバーライド・プロパティ」ダイアログを閉じます。
「OK」をクリックして「SOA WSポリシーの構成」ダイアログを閉じます。
SOAコンポジット・エディタで「ソース」ボタンをクリックします。
オーバーライドする値はcomposite.xml
ファイルのproperty name
属性に反映されます。
<binding.ws port="http://xmlns.oracle.com/Application26_
jws/Project1/BPELProcess1#wsdl.endpoint(bpelprocess1_client_
ep/BPELProcess1Callback_pt)">
<wsp:PolicyReference URI="oracle/wss_http_token_client_policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/wss_http_token_over_ssl_client_policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/wss_oam_token_client_policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/wss_saml_token_bearer_over_ssl_client_
policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/wss_saml_token_over_ssl_client_policy"
orawsp:category="security"
orawsp:status="enabled"/>
<wsp:PolicyReference URI="oracle/log_policy"
orawsp:category="management"
orawsp:status="enabled"/>
<property name="user.roles.include" type="xs:string" many="false">true</property>
</binding.ws>
ポリシー設定のオーバーライドの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。
サーバー・ポリシー構成プロパティのデフォルト値は、各サーバーに新しいポリシーを作成しなくても、サーバーごとにオーバーライドできます。この方法では、デフォルトの構成値を定義し、その値を実行時の要件に基づいてカスタマイズするサーバー・ポリシーをオーバーライドできます。
サーバー構成プロパティ値をオーバーライドする手順は、次のとおりです。
次のいずれかのバインディング・コンポーネントを右クリックします。
「公開されたサービス」スイムレーンでサービス・バインディング・コンポーネントを右クリックし、「リクエスト対象」を選択します。
「外部参照」スイムレーンで参照バインディング・コンポーネントを右クリックし、「コールバック対象」を選択します。
「セキュリティ」および「管理」セクションに移動します。これらの手順は、これらのセクションにポリシーがすでに添付されていることを前提にしています。
デフォルトでは、両方のセクションで「編集」アイコンは使用不可です。このアイコンを使用可能にするには、明示的にポリシーを選択する必要があります。これは、サーバーのプロパティ値はほとんどオーバーライドできないためです。図42-7に詳細を示します。
値のオーバーライドが許可されている添付済ポリシーを選択し、「編集」アイコンをクリックします。
「オーバーライド値」列で、「値」列に表示されたデフォルト値をオーバーライドする値を入力します。図42-8に詳細を示します。ポリシー・ストアが使用不可の場合は、「ストアにプロパティ・ストアが見つかりません
」というメッセージが「値」列に赤色で表示されます。
「OK」をクリックして「構成オーバーライド・プロパティ」ダイアログを閉じます。
「OK」をクリックして「SOA WSポリシーの構成」ダイアログを閉じます。
SOAコンポジット・エディタで「ソース」ボタンをクリックします。
オーバーライドする値はcomposite.xml
ファイルのOverrideProperty
属性に反映されます。
<wsp:PolicyReference URI="oracle/binding_authorization_denyall_policy" orawsp:category="security" orawsp:status="enabled"/> <wsp:PolicyReference URI="oracle/binding_authorization_permitall_policy" orawsp:category="security" orawsp:status="enabled"/> <wsp:PolicyReference URI="oracle/binding_permission_authorization_policy" orawsp:category="security" orawsp:status="enabled"> <orawsp:OverrideProperty orawsp:name="permission-class" orawsp:value="permission-different-class"/> </wsp:PolicyReference>
ポリシー設定のオーバーライドの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』を参照してください。