この章の内容は次のとおりです。
Oracle Fusion Middlewareは、ポリシー・ベースのモデルを使用して、組織全体のWebサービスを管理および保護します。ポリシーはメッセージの配信にセキュリティを適用します。ポリシーは、開発者が設計時環境で管理することも、システム管理者が実行時環境で管理することもできます。
ポリシーは、1つ以上のアサーションで構成されています。1つのポリシー・アサーションが、特定のアクションを実行するポリシーの最小単位となります。ポリシー・アサーションはリクエスト・メッセージとレスポンス・メッセージで実行され、どちらのタイプのメッセージでも同じアサーション・セットが実行されます。アサーションは、それらがポリシーに表示される順序で実行されます。
表46-1に、サポートされるポリシー・カテゴリを示します。
表46-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/no_reliable_messaging_policy
上位のスコープで構成された、信頼性のあるメッセージングの無効化をサポートします
oracle/no_wsrm_policy
グローバルにアタッチされたWeb Services信頼できるメッセージング・ポリシーの無効化をサポートします
oracle/reliable_messaging_policy
Webサービスの信頼性のあるメッセージングの有効化をサポートします
oracle/wsrm10_policy
バージョン1.0のWeb Services信頼できるメッセージング・プロトコルをサポートします
oracle/wsrm11_policy
バージョン1.1のWeb Services信頼できるメッセージング・プロトコルをサポートします
使用可能なポリシー、自分の環境で使用するポリシーおよびグローバル・ポリシーの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
SOAコンポジット・アプリケーションのサービス・バインディング・コンポーネント、サービス・コンポーネントおよび参照バインディング・コンポーネントとの間で、ポリシーを添付したり、ポリシーの添付を解除できます。設計時環境でセキュリティをテストするために、Oracle JDeveloperを使用してポリシーを添付します。アプリケーションを本番環境にデプロイする準備が整った場合は、Oracle Enterprise Manager Fusion Middleware Controlで実行時ポリシーを添付したり、ポリシーの添付を解除できます。
ポリシーの実行時管理の詳細は、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』を参照してください。
バインディング・コンポーネントおよびサービス・コンポーネントにポリシーを添付する手順は、次のとおりです。
サービス・コンポーネントを右クリックします。
「SOA WSポリシーの構成」を選択します。
図46-6に示す「SOA WSポリシーの構成」ダイアログが表示されます。
添付するポリシーのタイプの隣にある「追加」アイコンをクリックします。
セキュリティ
管理
選択したタイプに対応するダイアログが表示されます。
添付するポリシーのタイプを選択します。
「OK」をクリックします。
必要に応じて、さらにポリシーを追加します。
完了後に、「SOA WSポリシーの構成」ダイアログで「OK」をクリックします。
Oracle Enterprise Manager Fusion Middleware Control実行時のポリシーの添付については、『Oracle SOA SuiteおよびOracle Business Process Management Suiteの管理』を参照してください。
使用する環境には、同じポリシーのクライアントまたはサーバーが複数含まれている場合があります。ただし、各クライアントまたはサーバーにはそれぞれ固有のポリシー要件が設定されている可能性があります。これらのポリシー・プロパティ値は、実行時の要件に基づいてオーバーライドできます。
クライアント・ポリシー構成プロパティのデフォルト値は、各クライアントに新しいポリシーを作成しなくても、クライアントごとにオーバーライドできます。この方法では、デフォルトの構成値を定義し、その値を実行時の要件に基づいてカスタマイズするクライアント・ポリシーをオーバーライドできます。
ポリシー設定のオーバーライドの詳細は、『Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理』を参照してください。
Oracle SOA SuiteおよびOracle Service BusでWebサービスとJCAアダプタ内を流れる機密データ(個人の身元を特定する情報(PII)と呼ばれる)を保護するために、メッセージのフィールドを暗号化および復号化できます。この機能は、このようなデータが管理コンソールでクリア・テキストで表示されるのを防ぐため、特定のフィールド(たとえば、SSN)を不明瞭化します。
図46-11は、サービス・バインディング・コンポーネント内でSOAコンポジット・アプリケーションに入力されるときに暗号化される受信メッセージ、および参照バインディング・コンポーネント内でSOAコンポジット・アプリケーションから出力されるときに復号化される送信メッセージを示しています。コンポジット外部のメッセージは、他のメッセージ保護ポリシー(WS-Security/SSL)によって保護できます。
次のコードは、暗号化されていないメッセージの例を示しています。PIIフィールドは、name
とdriversLicense
です。
<person> <name>John</name> <driversLicense>B1234</driversLicense> <ssn>123-456-789</ssn> </person>
次のコードは、name
およびdriversLicense
フィールドが暗号化書式で暗号化されたメッセージの例を示しています。
<person> <name>John</name> <driversLicense>encrypted:fdslj[lmsfwer09fsn;keyname=pii-csf-key</driversLicense> <ssn>encrypted:gdf45md%mfsd103k;keyname=pii-csf-key</ssn> </person>
暗号化書式は次のとおりです。
encrypted:<CIPHER_TEXT>;keyname:<CSF_KEY_NAME>
注意:
PIIポリシーと認可ポリシーの両方がSOAコンポジット・アプリケーションにアタッチされている場合は、PIIポリシーの前に認可ポリシーが実行されます。これは、PIIポリシーが認可に使用されるフィールドを暗号化することがあるためです。
認可ポリシーがコンポーネントにアタッチされ、すでに暗号化されたフィールドが必要な場合は、認可は失敗します。
注意:
暗号化メッセージをコンポジットと切り離す場合は、PIIを復号化する必要があります。PIIポリシーをサービス・バインディング・コンポーネントにアタッチしているが、参照バインディング・コンポーネントにアタッチしない場合、アウトバウンド・メッセージのPIIは復号化されません。これは推奨されておらず、実行時エラーが表示されます。
あるSOAコンポジット・アプリケーション内で暗号化されたPIIは、別のSOAコンポジット・アプリケーションでは復号化できません。
メッセージの特定のフィールドを暗号化および復号化する手順は、次のとおりです。