この章では、Oracle Web Services Managerを含むWebサービスのセキュリティおよび管理に関連する問題について説明します。内容は次のとおりです。
この項では、セキュリティの問題およびその回避方法について説明します。内容は次のとおりです。
通常、DoSおよび再帰的ノード攻撃はXMLファイアウォール・ソリューションで防げます。Oracle SOA Suiteには、SCABindingProperties.xmlおよびoracle-webservices.xmlでエンベロープ・サイズおよびネスト限度を構成することでサービス攻撃の否認および再帰的ノード攻撃を防ぐ機能が用意されています。詳細は、『Oracle Fusion Middleware Oracle SOA Suiteエンタープライズ・デプロイメント・ガイド』のWebサービスでのセキュリティの構成に関する項を参照してください。
ポリシー・アタッチに使用されるSecurityPolicyアノテーションは、ADFやWebCenter Webサービスと、WebLogic Webサービスでは異なり、交換できません。Webサービス・アプリケーションで定義されたセキュリティ・ポリシー・アタッチは、次のシナリオで強制されません。
ADFまたはWebCenter Webサービスにweblogic.wsee.jws.jaxws.owsm.SecurityPolicyアノテーションを使用してセキュリティ・ポリシーをアタッチした場合。
WebLogic(Java EE)Webサービスにoracle.webservices.annotations.SecurityPolicyアノテーションを使用してセキュリティ・ポリシーをアタッチした場合。
セキュリティ・ポリシー・アタッチがWebサービス・アプリケーションで強制されることを保証するには、必ず適切なアノテーションをアプリケーション・コードに使用します。
oracle.webservices.annotations.SecurityPolicy: ADFまたはWebCenter Webサービスへのポリシーのアタッチに使用します。
weblogic.wsee.jws.jaxws.owsm.SecurityPolicy: WebLogic(Java EE)Webサービスへのポリシーのアタッチに使用します。
期限切れの証明書がキーストアにあると、この証明書が参照されているかどうかに関係なく、キー・ポリシーのSAMLホルダー(oracle/wss10_saml_hok_with_message_protection_service_policyなど)に対してCertificateExpiredExceptionが返されます。この例外を解決するには、期限切れの証明書をキーストアから削除します。
ADFまたはWebCenter Webサービス・アプリケーションのWebサービスにポリシーをアタッチした後、変更を有効にするにはアプリケーションを停止して再起動する必要があります。アプリケーションの停止と再起動の間、約30秒(または構成されているグレースフル・シャットダウン・タイムアウト時間と同じ時間)待つ必要があります。この間、サーバーですべてのグローバル・トランザクションがアプリケーションの停止前に完了するようにします。構成されているグレースフル・シャットダウン・タイムアウト時間待たない場合、アプリケーションが適切に再起動されず、アクセスできません。
グレースフル・シャットダウン・タイムアウト期間待たないようにするには、アプリケーションを2回再起動します。
ポリシー・アタッチは、クラスタ内のADFおよびWebCenter Webサービスで自動的に同期がとられません。クラスタでADFおよびWebCenter Webサービスを使用する場合、クラスタ内の各インスタンスにポリシーをアタッチあるいはデタッチする必要があります。
ポリシー名の先頭に"oracle_"を付けることはできません。たとえば、oracle_wss_http_token_service_policyは有効なポリシー名ではありません。接頭辞の"oracle_"を削除するようポリシー名を変更する必要があります。
Oracle Enterprise Managerを使用してポリシーをエクスポートする場合、ポリシーXMLファイルの名前がoracle/<policyname>からoracle_<policyname>に変更されます。ポリシー・ファイルをインポートする前に、ポリシー名から"oracle_"を削除する必要があります。そうしないと、ポリシーの使用時に例外が表示されます。
ポリシー・ファイルはOracle Enterprise ManagerまたはMDS WLSTを使用してインポートできます。MDS WLSTコマンドを使用してポリシー・ファイルをインポートする場合、必ずoracleディレクトリ内でインポートします。詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のWebサービスのポリシーのインポートに関する項を参照してください。
このリリースでは、マルチバイトのユーザー資格証明はwss_http_token_*ポリシーでサポートされていません。マルチバイトのユーザー資格証明が必要な場合、wss_username_token_*ポリシーなどの別のポリシーを使用します。使用可能なポリシーの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のあからじめ定義されたポリシーに関する項を参照してください。
カスタム・ポリシーのインポート後、ポリシーが使用可能になるまでに遅れがあります。
カスタム・ポリシーは、サービス・アプリケーションへのアタッチおよびデプロイ前にインポートすることをお薦めします。
メタデータ・ストア(MDS)にないポリシーを使用するアプリケーションをデプロイし、その後でポリシーをインポートする場合、ポリシー・アタッチ数が更新されるようサーバーを再起動する必要があります。
ポリシーのMDSリポジトリへの一括インポート時、操作が初めに成功しなかった場合、一括インポートが成功するまで操作を再試行します。
ほとんどの場合、これは、Oracle RACデータベースでメタデータのアップロード時にデータベースが切り替えられるときに起こります。Oracle RACデータベースにn個のデータベースがある場合、この操作をn回再試行する可能性があります。
ポリシーの一括インポートの詳細は、『Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイド』のポリシーの移行に関する項を参照してください。
クライアントにポリシーをアタッチしてポリシー構成値をオーバーライドし、その後ポリシーをデタッチした場合、ポリシー構成オーバーライド値が削除されません。このクライアントに新規ポリシーをアタッチする際、ポリシー構成オーバーライド値を確認し、適切に更新されるようにします。
次のOAMシナリオは、Oracle Fusion Middleware 11g R1では推奨されません。
Oracle WSM OAMセキュリティ・ポリシーを使用したADFクライアントとSOAサービスとの間の認証。このシナリオでは、ADFクライアントはOracle固有のSOAPヘッダーでObSSOCookieを送信します。かわりにSAMLベースのポリシーを使用することをお薦めします。
次のOracle Access Manager(OAM)シナリオはOracle Fusion Middleware 11g R1でサポートされません。
HTTPヘッダーにObSSOCookieを使用したOracle WSM OAMサービス・ポリシーによる認証。
他のサービスによって送信されたリクエストの独自のSOAPヘッダーにObSSOCookieを使用したOracle WSM OAMサービス・ポリシーによる認証。
いずれの場合も、クライアントは、ObSSOCookieではなくSAMLトークンを送信する必要があります。
この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。
Oracle Fusion Middlewareのインストール時にOracle Web Services Managerをインストールするよう選択しなかった場合、Oracle Enterprise Managerを使用するWebサービスのテスト・ページに問題があります。
この問題を解決するには、$domain_home/config/fmwconfig/policy-accessor-config.xmlファイルのアクティブ・プロトコル・プロパティをコメント解除し、次のように設定します。
<property name="active.protocol">classpath</property>
変更を有効にするには、サーバーを再起動する必要があります。
WS-AddressingポリシーをSOAコンポジットにアタッチし、Fusion Middleware ControlでWebサービスをテストすると、次のエラーが表示されることがあります。
java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTest Exception: A required header representing a Message Addressing Property is not present
この問題を回避するには、Webサービス・テスト・ページで「WSDL解析」ボタンをクリックし、「Webサービスのテスト」ページでWebサービスを再テストします。
WS-Addressingに対して「カスタム」オプションを有効にします。
ポリシーURIを入力します。
「Webサービスのテスト」をクリックします。
ポリシーにアサーションを追加し、その後削除した場合、アサーション詳細が詳細領域に表示されたままになることがあります。これが起きた場合、「アサーション」リストで別のアサーションをクリックし、表示をリフレッシュします。
SOA、ADFまたはWebCenter Webサービスに対してWebサービス・エンドポイントを構成する際、最大リクエスト・サイズを-1に設定すると、最大リクエスト・サイズがないことになります。このため、最大リクエスト・サイズの単位の設定は無効となり、デフォルトのバイトに設定されます。
このリリースのOracle Enterprise Managerでは、次の情報は英語でのみサポートされます。
ポリシーおよびアサーション・テンプレートのorawsp:displayNameフィールド以外のすべてのフィールド。
?orawsdlブラウザ・アドレスを使用する場合のorawsp:descriptionフィールド。