Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理 12c (12.1.3) E59414-02 |
|
前 |
次 |
この章では、Oracle Web Services Manager (OWSM)を使用して問題を診断する方法を説明します。Oracle Web Services Managerでは、鍵と資格証明、証明書、ポリシー・アクセス、アサーションなどのセキュリティ問題を検出できます。WLSTを使用して問題を診断することもできます。
この章の内容は次のとおりです。
OWSMポリシー・マネージャはすべてのOWSMポリシーを管理しており、OWSMポリシー・フレームワークを使用するためには、稼働している必要があります。たとえば、OWSMポリシー・マネージャを使用できない場合は、ADFサービスおよびクライアントのポリシー・アタッチメントに対して行う変更がOWSMリポジトリに保存されません。
Oracle Enterprise Manager Fusion Middleware ControlのOWSMポリシー・マネージャのページで、ポリシー・マネージャの現在の状態を確認し、そのレスポンス時間、負荷およびその他のデータを確認できます。
OWSMポリシー・マネージャのページを表示するには:
ターゲット・ナビゲーション・ペインで、「アプリケーションのデプロイ」を開きます。
「アプリケーションのデプロイ」の下にある「内部アプリケーション」を開きます。
「wsm-pm」を開き、「wsm-pm」アプリケーションを選択します。
OWSMポリシー・マネージャのホームページが表示されます。
ポリシー・マネージャのページでは、次のタスクを1つ以上実行できます。
ページの「一般」領域で、ポリシー・マネージャの現在の状態を確認し、デプロイ先のサーバーを識別します。
ページの「レスポンスと負荷」セクションで、レスポンス時間と現在の負荷を表示します。この情報を表形式で表示するには、「表ビュー」をクリックします。
ページの「エントリ・ポイント」セクションで、ポリシー・マネージャへの接続を検証します。これを行うには、「Webモジュール」表内で、wsm-pmに対応する「テスト・ポイント」のURLをクリックします。ポリシー・マネージャの検証ページで、ポリシー・マネージャの検証をクリックします。
Webブラウザで次のURLを使用してバリデータ・ページにアクセスすることもできます。
http://
host
:
port
/wsm-pm/validator
このURLで、host
およびport
は、ポリシー・マネージャが実行されているホストおよびポート番号を表します。
ポリシー・マネージャへの接続に失敗すると、エラー・メッセージが表示されます。ポリシー・マネージャへの接続が成功すると、ポリシー・マネージャのバリデータ・ページには次の情報が表示されます。
ポリシー・マネージャのステータス。
OWSMリポジトリ内のOWSMポリシーの合計数。
OWSMリポジトリ内のすべてのOWSMポリシーの名前、最新バージョンおよび説明。
リポジトリ内のOWSMアサーション・テンプレートの合計数。
OWSMリポジトリ内のすべてのOWSMアサーション・テンプレートの名前、最新バージョンおよび説明。
リポジトリの作成日およびビルド・ラベル。
OWSMリポジトリの詳細は、第15章「OWSMリポジトリの管理」を参照してください。
次の各項では、OWSMの使用中に発生する可能性がある一般的な問題と、その解決方法について説明します。
ポリシー・マネージャへの接続を試みると、次のエラー・メッセージが表示されます。
WSM-06157: リポジトリ・データベースが正しく構成されていないか稼働していません。
WSM-06160: ポリシー・マネージャ・アプリケーションがデプロイされていないか稼働していません。
WSM-06161: ポリシー・マネージャ・アプリケーションがデプロイされていません。
WSM-06162: ポリシー・マネージャが稼働していないか正しく構成されていません。
WSM-06159: 資格証明の問題が原因でポリシー・マネージャに接続できません。
WSM-02120 : ポリシー・アクセス・サービスに接続できません。
問題
次のような問題の原因が考えられます。
ポリシー・マネージャが停止しています。ポリシー・マネージャが停止しているかどうかは、次のようにして判断できます。
「OWSMポリシー・マネージャでの問題の診断」に示されている、OWSMポリシー・マネージャのホーム・ページの「一般」領域で、ポリシー・マネージャの状態がShutdown
として表示されます。
図16-2
に示されているように、Fusion Middleware Controlのドメインのホームページ上のwsm-pm内部アプリケーションの状態が「停止中」です。ドメインのホーム・ページにアクセスするには、ページの左隅にある「WebLogicドメイン」メニューから「ホーム」を選択します。
Fusion Middleware ControlでOWSMのポリシー管理ページへのアクセスを試みると、エラー・ダイアログ・ボックスが表示されます。このエラー情報は、『Webサービスの管理』のサンプル・ログの確認に関する項に記載されているように、診断ログ・ファイルにも書き込まれます。
ドメインがSSLを使用した自動検出を使用するように構成されています。
OWSMは自動検出機能をサポートしており、この機能を使用してOWSMポリシー・マネージャを検索し、接続します。ドメインがSSLを使用した自動検出を使用するように構成されている場合、自動検出ロジックでは、SSL対応サーバーへの検出を常に試みます。安全な接続を保持するために、自動検出ロジックは、SSL対応サーバーが停止中であっても、非SSLサーバー上のポリシー・マネージャへの接続は試みません。したがって、稼働中のポリシー・マネージャがあっても、それがSSLに対応していないサーバーで稼働している場合は無視され、エラー・メッセージが表示されます。
ポリシー・マネージャへのアクセスで必要な資格証明が無効または認可されません。
リポジトリが正しく構成されていない可能性があります。
ポリシー・マネージャおよびエージェントのクロスコンポーネント・ワイヤリングが最新でない可能性があります。
解決方法
ポリシー・マネージャが停止している場合:
『Oracle Fusion Middlewareの管理』のアプリケーションの開始と停止に関する項に従って、wsm-pmアプリケーションを再起動します。
ドメインがSSLを使用した自動検出を使用するように構成されている場合:
wsm-pmポリシー・マネージャ・アプリケーションのターゲットがSSLサーバーであることを確認します。この操作は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプのエンタープライズ・アプリケーションのサーバーに対するターゲット指定に関する項に従って、WebLogic Server管理コンソールを使用して行えます。
SSLが適切に構成されており、SSL証明書の問題がないことを確認します。。詳細は、「SSLに関するキーストアの構成」を参照してください。
SSL対応サーバーが停止している場合は、Oracle Fusion Middlewareの管理のOracle Fusion Middlewareの開始と停止に関する項に従って、このサーバーとポリシー・マネージャ・アプリケーションを再起動します。
サービス表およびコンポーネント構成がSSL用に正しく構成されていることを確認します。詳細は、「ポリシー・マネージャの自動検出のためのクロス・コンポーネント・ワイヤリングの使用」を参照してください。
ポリシー・マネージャを非SSLサーバーで使用するには、自動検出構成を変更します。詳細は、次のトピックを参照してください。
ポリシー・マネージャへのアクセスを試みると資格証明の問題が発生する場合:
デフォルトでは、OWSMランタイムはOracleSystemUserアカウントを使用します。デフォルトのユーザー・アカウントを使用していない場合は、「デフォルト・ユーザーの変更」の説明に従って、構成を変更する必要があります。
リポジトリ構成に関する問題がある場合:
データベースとMDSスキーマが正しくセットアップされていることを確認します。この構成は、インストール・プロセスの一環として行われます。詳細は、『Oracle Fusion Middleware Infrastructureのインストールと構成』のデータベース・スキーマの作成に関する項を参照してください。
JDBC構成が正しいことを確認します。JDBC構成は、Fusion Middleware構成ウィザードを使用してドメインを作成するときに定義されます。詳細は、『Oracle Fusion Middleware Infrastructureのインストールと構成』のWebLogicドメインの構成に関する項を参照してください。
クロスコンポーネント・ワイヤリングに関する問題がある場合:
OWSMポリシー・マネージャに対応するサービス表エントリに正しいURLが含まれていることを確認します。
OWSMエージェント・フックとOWSMポリシー・マネージャの間のワイヤリングがwired
状態であることを確認します。
詳細は、次のトピックを参照してください。
アプリケーションがWebサービスを呼び出した後に、次のようなキーまたは資格証明ストア・エラーが表示されます。
WSM-00056: キー<
alias_name>は取得されません
WSM-00256: プロパティ"Keystore Sign Alias"は設定されていません
WSM-0024: KSSキーストアからキーを読み取れません
WSM-00340: KSSキーストアにキーが存在しません
問題
次のような問題の原因が考えられます。
JKSキーストアの場合:
OWSMキーストア構成内の署名鍵または暗号化鍵の別名が、OWSMキーストアに存在しません。
署名鍵、暗号化鍵またはOWSMキーストア・パスワードが、OWSMのキーストア・ファイルとキーストア構成の間で同期していません。つまり、少なくとも1つのパスワードの値が両方の場所で一致していません。
署名鍵が設定されていません。
資格証明ストアに欠落しているキーがあります。
KSSキーストアの場合:
キーストアが初期化されていないか、必要な権限が付与されていません。
キーストアにキーが存在しません。ドメイン構成の「メッセージ・セキュリティ」画面に入力したキーが、キーストア内で見つかりません。
解決方法
OWSMキーストア構成内の署名鍵および暗号化鍵の別名が、OWSMキーストアに存在することを確認するには:
Fusion Middleware Controlを使用して、「OWSMキーストアの構成」の手順を実行して、OWSMキーストア構成内の署名鍵および暗号化鍵の別名を識別します。
JKSキーストアの場合は、手順1で識別した別名がOWSMキーストア・ファイルに存在することを確認します。
「秘密鍵の生成およびJavaキーストアの作成」
の手順4に従って、OWSMキーストア・ファイルでkeytool -listコマンドを使用します。keytoolユーティリティの使用の詳細は、次のURLでkeytool - キーおよび証明書管理ツールのドキュメントを参照してください。
http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
注意: 前述のURLでドキュメントが見つからない場合は、Java SEテクニカル・ドキュメントの検索Webページで検索してアクセスできます。 |
各別名が、資格証明ストア内のキーストア・ファイルとOWSMキーストア構成で同期していることを確認します。同期していない場合は、「OWSMキーストアの構成」の手順に従って、OWSMキーストア構成内の別名を編集できます。keytool -changealias
コマンドを使用すると、OWSMキーストア・ファイル内の別名を編集できます。
注意: 別名を編集する前に、この操作が他のWebサービスに影響を及ぼさないことを確認します。 |
署名鍵または暗号化鍵の別名がOWSMキーストア・ファイルに存在しない場合は、「秘密鍵の生成およびJavaキーストアの作成」の説明に従って追加します。
KSSキーストアの場合は、手順1で識別した別名がOWSMキーストア・ファイルに存在することを確認します。
Fusion Middleware Controlを使用して、キーストアの内容を管理し、別名が一致することを確認します。詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
JKSキーストアの場合、署名鍵、暗号化鍵およびOWSMキーストア・ファイルのパスワードが、OWSMのキーストア・ファイルとキーストア構成の間でそれぞれ同期していることを確認するには:
keytool
を使用して、OWSMキーストア・ファイル内のパスワードを再設定します。パスワードは表示されないため、両方の場所でそれぞれ同じパスワード値を設定するには、パスワードの再設定が唯一の方法です。
keytool -storepasswd
コマンドを使用して、OWSMキーストア・ファイルのパスワードを再設定します。
keytool -keypasswd
コマンドを使用して、署名鍵パスワードおよび暗号化鍵パスワードを再設定します。
Fusion Middleware Controlを使用して、「OWSMキーストアの構成」の説明に従って、OWSMキーストア構成内のパスワードを手順1で設定した値にそれぞれ再設定します。
アプリケーションがWebサービスを呼び出した後に、次のような信頼証明書エラーが表示されます。
WSM-00138: 証明書へのパスは例外のため無効です
問題
問題の原因として、Webサービスがその証明書をWeb Services Description Language (WSDL)で通知している場合、クライアントがその証明書または発行者を信頼するよう適切に構成されていない可能性が考えられます。
解決方法
WSDLで通知されるWebサービスの証明書または発行者を信頼するようクライアントが構成されていることを確認するには:
クライアント・キーストアに、Webサービスの証明書またはその発行者の証明書があることを確認します。
KSSキーストアの場合は、Fusion Middleware Controlを使用して、クライアント・キーストア内の証明書を識別します。詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
JKSキーストアの場合は、keytool –list
コマンドを使用して、クライアント・キーストア内の証明書を識別します。いずれかの証明書がクライアント・キーストアに不足している場合は、keytool –importcert
コマンドを使用してそれを追加します。keytoolの使用の詳細は、Java SEテクニカル・ドキュメントWebサイトにあるkeytool - キーおよび証明書管理ツール
のドキュメントを参照してください。このドキュメントには次のURLでアクセスできます。
http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
証明書がサービスのWSDLでパブリッシュされていない場合は、クライアント・ポリシーのオーバーライド・プロパティkeystore.recipient.alias
の値が、OWSMキーストア・ファイル内の証明書の別名に一致することを確認します。
詳細は、「ポリシー構成のオーバーライドの概要」を参照してください。
アプリケーションが、異なるアプリケーションを呼び出すことによりユーザーのアイデンティティの伝播を試みると、InvalidSecurityToken
、FailedAuthentication
およびSAML assertion issuer
関連エラーが発生します。
問題
次のような問題の原因が考えられます。
SAMLトークンのSAML発行者名が構成されていないか、構成が正しくありません。
subject.precedence
構成オーバーライドの設定が正しくありません。
解決方法
SAML発行者名の構成のトラブルシューティングを行うには:
クライアントが使用しているSAML発行者名が、Oracle WebLogic Serverドメイン内で構成されている発行者に含まれていることを確認します。これを行うには、「Fusion Middleware Controlを使用した信頼できるSAML発行者およびDNリストの構成」に記載されている手順を実行します。
クライアントが使用しているSAML発行者名が、Oracle WebLogic Serverドメイン内の発行者として構成されていない場合、saml.issuer.name
オーバーライドを、ドメイン内で構成されている発行者の1つに更新することによって、クライアントの発行者名を変更することをお薦めします。
クライアントの発行者名を変更できない場合は、「Fusion Middleware Controlを使用した信頼できるSAML発行者およびDNリストの構成」の手順を実行することによって、発行者名をOracle WebLogic Serverドメインに追加できます。
subject.precedence構成オーバーライドのトラブルシューティングを行うには:
現在のクライアント・ポリシー内のsubject.precedence
オーバーライド値をfalseに設定して、アイデンティティを異なるユーザーに変更します。デフォルトでは、subject.precedence
オーバーライドはtrueに設定されます。
サービスに送信するユーザーのユーザー名およびパスワードが含まれるクライアント・ポリシーで、資格証明ストア・フレームワークの適切なキー・オーバーライドを設定します。このユーザーのエントリが資格証明ストア・フレームワークに存在しない場合は、それを追加する必要があります。詳細は、「資格証明ストアの構成」を参照してください。
「アイデンティティ切替えのためのSAML Webサービス・クライアントの構成」の手順を実行することによって、クライアント・アプリケーションに対して適切なWebサービス・アイデンティティ権限が設定されていることを確認します。
アプリケーションがWebサービスの呼び出しを試みると、次のようなポリシー・アクセス・エラーが表示されます。
WSM-06156: ポリシーURIが欠落しているか、空か、無効な文字が含まれています。
WSM-06158: 参照されたポリシーがリポジトリ内にありません。
WSM-02017: ドキュメントはリポジトリに見つかりませんでした。
問題
次のような問題の原因が考えられます。
ポリシーURIが欠落しているか、ポリシー名のスペルミスです。
ポリシー・マネージャが停止しています。
ポリシーがリポジトリ内にありません。
キャッシュの遅延が原因で、ポリシー・アタッチメントが有効ではありません。
解決方法
ポリシー・アクセス問題を診断および解決する手順は、次のとおりです。
「OWSMポリシー・マネージャでの問題の診断」および「ポリシー・マネージャに接続できない」の説明に従って、ポリシー・マネージャが稼働していることを確認します。
mds-owsmデータソース接続がアクセス可能で、使用可能であることを確認します。詳細は、『Oracle Fusion Middlewareの管理』のデータ・ソースの理解と管理に関する項を参照してください。
ポリシー・マネージャのバリデータ・ページを使用してリポジトリのコンテンツを表示することによって、OWSMリポジトリにポリシーがあることを確認します。バリデータ・ページへのアクセスおよびリポジトリ・コンテンツの表示の詳細は、「OWSMポリシー・マネージャでの問題の診断」を参照してください。
リポジトリにポリシーがある場合、ポリシーURIがリポジトリ内のポリシーURIと一致することを確認します。
ポリシーがOWSMリポジトリにない場合、次のいずれかの操作を行います。
事前定義済ポリシーの場合:
upgradeWSMRepository()
コマンドを使用して、リポジトリが最新のすべての事前定義済ポリシーでアップグレードされていることを確認します。詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のupgradeWSMRepositoryに関する項を参照してください。
「OWSMリポジトリの再構築」
の説明に従って、resetWSMRepositoryコマンドを使用してリポジトリのコンテンツをリセットします。
カスタム・ポリシーの場合:
「Webサービス・ポリシーのインポート」の説明に従って、これをリポジトリにインポートします。カスタム・ポリシーの作成の詳細は、「新規Webサービス・ポリシーの作成」を参照してください。
ユーザーが、適切な権限が付与されたロールに属することを確認します。ロールまたは権限を変更するには、「ユーザーのグループまたはロールの変更」を参照してください。
ポリシー・アクセッサおよびキャッシュ遅延を確認します。
ポリシー・アタッチメントが有効になるまでにかかる時間は、OWSMポリシー・アクセッサおよびポリシー・キャッシュのプロパティ設定で決まります。デフォルトでは、この遅延は最大で11分です。遅延を縮小するには、必要に応じて、次のキャッシュ・プロパティ設定を調整できます。
「初期キャッシュ・リフレッシュ」、デフォルトは600000ミリ秒(10分)
「キャッシュ・リフレッシュ時間」、デフォルトは600000ミリ秒(10分)
これらのプロパティの調整の詳細は、次の各項を参照してください。
OWSMが資格証明ストア内のユーザーへのアクセスを試みると、次のようなエラーが発生します。
WSM-00015: ユーザー名が見つかりません
問題
OWSMが、資格証明ストア内のユーザーを見つけることができません。次のいずれかの原因が考えられます。
資格証明マップoracle.wsm.security
が資格証明ストアに存在しません。
OWSMが使用するマップにユーザーがリストされていません。
エントリのCSFキーが資格証明ストアに存在しません。
解決方法
資格証明マップoracle.wsm.security
が資格証明ストアに存在することを確認します。OWSMは、この資格証明ストア・マップからのみ読み取ります。
資格証明マップoracle.wsm.security
が資格証明ストアに存在することを確認するには、「資格証明ストアの構成」の手順を参照してください。
アプリケーションがoracle.wsm.security
以外の資格証明マップを使用する場合は、OWSMがアクセスする必要があるユーザーがoracle.wsm.security
資格証明マップに複製されていることを確認します。
アプリケーションがWebサービスの呼び出しを試みると、次のようなエラーが表示されます。
java.security.AccessControlException: access denied (oracle.wsm.security.WSFunctionPermission
問題
一般に、これは実際には問題ではなく、むしろ意図的な動作です。つまり、システムは、ユーザーが試みたアクションについて、ユーザーを認可できませんでした。デバッグを行うには、コール元サーバーの診断ログで認可エラーを確認します。次のようなエラーが表示されます。
2011-01-06T22:15:43.691-08:00] [SalesServer_2] [ERROR] [] [oracle.jbo.server.svc.ServicePermissionCheckInterceptor_w2f8f5_Impl] [tid: [ACTIVE].ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: FMW_APPS_CRM_SELFSERVICE_ADF_APPID] [ecid: 004aIPwzJDGE8TQRyaI7T00001WJ00EJ8f,0:1:3:1:11:0x5f5e189:6:1] [WEBSERVICE_PORT.name: PartnerServiceSoapHttpPort] [APP:SalesApp#V2.0
] [J2EE_MODULE.name: partnerCenterCorePublicModel] [WEBSERVICE.name: PartnerService] [J2EE_APP.name: SalesApp_V2.0] [URI: /partnerCenterCorePublicModel/PartnerService] [[ java.security.AccessControlException: access denied (oracle.wsm.security.WSFunctionPermissionhttp://xmlns.oracle.com/apps/partnerMgmt/partnerCenter/PartnerService#updatePartner
invoke
) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at oracle.jbo.server.svc.ServicePermissionCheckInterceptor.checkPermission(ServicePermissionCheckInterceptor.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
解決方法
ログ内の次の情報に注意を払います。これらは、前述の例では太字で示されています。
アプリケーション・ストライプ名。前述のログではSalesApp#V2.0
です。これが、アプリケーション用に構成したものと一致していることを確認します。ストライプ名の構成方法の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のサーブレット・フィルタおよびEJBインターセプタの構成に関する項を参照してください。
権限の付与。次のもので構成されています。
リソース名。前述のログではhttp://xmlns.oracle.com/apps/partnerMgmt/partnerCenter/PartnerService#updatePartner
です。
アクション。前述のログではinvoke
です。
どちらの情報も、権限付与の中で正しく指定されている必要があります。詳細は、「認可権限の決定」を参照してください。
アプリケーションがLDAPベースのオーセンティケータを使用しており、すべてのロールをLDAPに格納している場合は、「デフォルト・ユーザーの変更」の説明に従って、OWSMがユーザーおよびロールにアクセスできることを確認します。
アプリケーションがWebサービスを呼び出した後に、次のようなタイムスタンプ・エラーまたは時間差エラーが発生します。
WSM-00060: タイムスタンプの検証中にエラーが発生しました
問題
この問題は、次のようなタイムスタンプ検証または時間差エラーとして出現します。
Caused By: FAULT CODE: InvalidSecurityToken FAULT MESSAGE: Found invalid condition "on or after" in SAML assertion. Current Time:Fri Feb 11 22:16:42 IST 2011, clockSkew:300000 milli seconds, NotOnOrAfter Time:Fri Feb 11 14:21:42 IST 2011.
この問題は、通常、サーバーとクライアントのクロックが同じタイムゾーンに変換された後、その差が5分を超えると発生します。
解決方法
次のいずれかの方法でクライアントまたはサーバーのクロックを変更して、両方を正しい時間に設定し、その差が5分以内になるようにします。
「Fusion Middleware Controlを使用したセキュリティ・ポリシー強制の構成」の説明に従って、「クロック・スキュー」を調整します。
システム・クロックを設定します。
ntpサーバーを使用して時間を維持します。
アプリケーションがWebサービスを呼び出した後に、ログに複数のポリシー・エラー(WSM-01823
)が表示されます。このエラーは、たとえば、複数の認証ポリシーがサブジェクトにアタッチされている場合に発生します。
問題
2つ以上の認証ポリシーがサブジェクトにアタッチされています。2つのポリシー・セットがあり、それぞれが、Webサービスなど、同じリソース・タイプに認証ポリシーをアタッチする場合に、この問題が発生します。たとえば、ドメインのOWSMリポジトリに2つのポリシー・セットが定義されており、一方はポリシー・スコープをDomain("domain_name")として定義し、他方はDomain ("*")として定義しているものとします。次のリストは、このシナリオの例を示しています。
wls:/base_domain/serverConfig> displayWSMPolicySet('default-domain-ws-domain_gpa') Policy Set Details: ------------------- Display Name: default-domain-ws-domain_gpa Type of Resources: SOAP Web Service Scope of Resources: DOMAIN("base_domain") Description: Global policy attachments for Web Service Endpoint resources. Enabled: true Policy Reference: URI=oracle/wss11_saml_or_username_token_with_message_protection_service_policy, category=security, enabled=true wls:/base_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
この例では、異なる名前の2つのポリシー・セットがあり、そこに含まれる異なる認証ポリシーがドメイン上の同じリソース・タイプを指しています。
注意: サブジェクトにアタッチされている認証ポリシーが、構成オーバーライドを含めて、お互いの完全な複製の場合、ポリシー・アタッチメントは複製として表示され、構成は有効です。 |
解決方法
認証ポリシーのアタッチを試みている複数のポリシー・セットがあるかどうかを確認する手順は、次のとおりです。
listWSMPolicySets()
コマンドを使用して、ドメイン内のポリシー・セットのリストを表示します。このコマンドの詳細は、「ポリシー・セットのリストの表示」を参照してください。
detail
引数をtrue
に設定した状態でlistWSMPolicySubjects
コマンドを使用して、ドメイン内のすべてのアプリケーションおよびコンポジットに関するエンドポイント(ポート)とポリシーの詳細、エンドポイントのセキュア・ステータス、構成オーバーライドと制約、およびエンドポイントに有効な構成があるかどうかを表示します。
例のシナリオで定義されているポリシー・セットを使用すると、listWSMPolicySubjects(detail=true)
コマンドからの出力は、次のようになります。2つのポリシーは重複しており、それらが関連するポリシー・セットは太字のテキストで示されます。
wls:/base_domain/serverConfig> listWSMPolicySubjects(detail=true) Application: /WLS/base_domain/jaxwsejb30ws Assembly: #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="local.policy.reference.source", value="IMPLIED_FEATURE" 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 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 "default-domain-ws-domain_gpa", scope="DOMAIN('base_domain')"; reference-status=enabled; effective=true URI="oracle/wss_saml_or_username_token_service_policy", category=security, policy-status=enabled; source=global policy set "default-domain-ws-domain", scope="DOMAIN('*')"; reference-status=enabled; effective=true The policy subject is invalid in this context because of the following error: WSM-01827 : Attaching multiple policies of category "security/authentication" is not supported. Policies in list [ "oracle/wss11_saml_or_username_token_with_message_protection_service_policy" ] already have the category, current policy "oracle/wss_saml_or_username_token_service_policy" also has that category.
重複が見つかった場合は、次のいずれかを行います。
「WLSTを使用したポリシー・セットの削除」の説明に従って、いずれかのポリシー・セットを削除します。
「ポリシー・セットの有効化および無効化」の説明に従って、いずれかのポリシー・セットを無効にします。
詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。
直接アタッチされたポリシーと、ポリシー・セットを使用してグローバルにアタッチされたポリシーが競合しないことを確認するには、WLSTコマンドのlistWSMPolicySubjects
(detail="true")
を使用します。
このコマンドは、エンドポイントの構成、各エンドポイントにアタッチされた有効なポリシー・セット、エンドポイントのセキュア・ステータス、構成オーバーライドと制約、およびエンドポイントに有効な構成があるかどうかを含めて、ドメイン内のWebサービスまたはWebサービス・クライアントのリストを表示します。このコマンドの使用の詳細は、『Webサービスの管理』のWLSTコマンドを使用したドメイン内のWebサービスの表示に関する項を参照してください。
注意: エンドポイントは、(直接またはポリシー・セットを使用して外部で)アタッチされたポリシーで認証、認可またはメッセージ保護の操作が強制される場合にセキュアであると判断されます。 |
ポリシー・セットを使用してグローバルにアタッチされたポリシーが構成に含まれる場合、次のコマンドを使用してポリシー・セットに関する情報を表示できます。
listWSMPolicySets()
: リポジトリ内のポリシー・セットのリストを表示します。このコマンドの使用の詳細は、「ポリシー・セットのリストの表示」を参照してください。
displayWSMPolicySet()
: 特定のポリシー・セットの構成を表示します。このコマンドの使用の詳細は、「ポリシー・セットの構成の表示」を参照してください。
Fusion Middleware Controlを使用してエンドポイントで有効なポリシーを表示するには、「Fusion Middleware Controlを使用したWebサービスにアタッチされたポリシーの表示」を参照してください。
エンドポイントがセキュアで、構成が有効かどうかについての判断の詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。
グローバルにアタッチされたポリシーおよび直接アタッチされたポリシーが含まれる、有効な構成のサンプル出力
次の例は、有効な構成に対するlistWSMPolicySubjects(detail=true)
コマンドからのサンプル出力を示しています。グローバルにアタッチされたポリシーまたは直接アタッチされたポリシーの優先度を指定できるため(reference.priority
構成オーバーライドを使用)、effective
フィールドには、直接アタッチされたポリシーがエンドポイントで有効かどうかが示されます。グローバルにアタッチされたポリシーおよび直接アタッチされたポリシーは太字で示されています。
注意: エンドポイント管理を簡単にするために、エンドポイントで有効かどうかにかかわらず、すべての直接アタッチされたポリシーが出力に表示されます。対照的に、グローバルにアタッチされたポリシーは、エンドポイントに対して有効であるもののみが表示されます。 |
Application: /WLS/base_domain/jaxwsejb30ws Assembly: #jaxwsejb Subject: WS-Service({http://www.oracle.com/jaxws/tests/concrete}WsdlConcreteService#WsdlConcretePort) URI="oracle/wss_saml_or_username_token_service_policy", category=security, policy-status=enabled; source=global policy set "default-domain-ws-domain", 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="local.policy.reference.source", value="IMPLIED_FEATURE" 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 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/wss10_saml20_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=false Property name="local.policy.reference.source", value="LOCAL_ATTACHMENT" The policy subject is secure in this context.
直接アタッチされたポリシーのみが含まれる、有効な構成のサンプル出力
次の例は、有効な構成に対するlistWSMPolicySubjects(detail=true)
コマンドからのサンプル出力を示しています。直接アタッチされたポリシーは太字で示されています。
Application: /WLS/base_domain/jaxwsejb30ws Assembly: #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="local.policy.reference.source", value="IMPLIED_FEATURE" 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 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/wss10_saml20_token_with_message_protection_service_policy", category=security, policy-status=enabled; source=local policy set; reference-status=enabled; effective=true Property name="local.policy.reference.source", value="ANNOTATION" The policy subject is secure in this context.
ドメインの構成に関して問題がないことを確認するには、checkWSMStatus
WLSTコマンドを使用します。checkWSMStatus
コマンドは、ポリシー・マネージャ(wsm-pm
)、エージェント(agent
)および資格証明ストアとキーストア構成(credstore
)のステータスを戻します。コンポーネントのステータスは、まとめて確認することも、個別に確認することもできます。
このコマンドは、WSMで保護されているWebサービスのプロビジョニングの後に実行できます。最初の呼出しの後まで待機する必要はありません。
注意: checkWSMStatus コマンドが正しく機能するためには、ポリシー・マネージャ(wsm-pm )アプリケーションがデプロイされ、実行されている必要があります。 |
このコマンドの引数の詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のWebサービス・カスタムWLSTコマンドに関する項を参照してください。
次の例では、checkWSMStatus
コマンドは、キーkeystore-csf-key
が欠如しているため、資格証明ストアの失敗を戻します。
wls:/base_domain/serverConfig> checkWSMStatus('credstore')
Credential Store Configuration:
FAILED.
Message(s):
keystore.pass.csf.key : Property is configured and its value is "keystore-csf-key".
Description: The "keystore.pass.csf.key" property points to the CSF alias that is mapped to the username and password of the keystore. Only the password is used; username is redundant in the case of the keystore.
keystore-csf-key : Credentials not configured.
Credential Store Diagnostic Messages:
Message(s):
The csf-key keystore-csf-key is not present in the credential store.
Perform the following steps to update the credential store (using WLST commands):-
1. connect()
2. createCred(map="oracle.wsm.security", key="keystore-csf-key", user="keystore-csf-key", password="<keystore-password>", desc="Keystore Password CSF Key")
NOTE:- All the above commands are based on the Domain level configurations. The actual csf key may be overridden at runtime due to config override. See Documentation for more details.
false
次の例では、checkWSMStatus
コマンドは、ドメインbase_domain
の資格証明ストアとキー、ポリシー・マネージャおよび強制エージェントのステータスを戻します。
wls:/base_domain/serverConfig> checkWSMStatus()
Credential Store Configuration:
PASSED.
Message(s):
keystore.pass.csf.key : Property is configured and its value is "keystore-csf-key".
Description: The "keystore.pass.csf.key" property points to the CSF alias that is mapped to the username and password of the keystore. Only the password is used; username is redundant in the case of the keystore.
keystore-csf-key : Credentials configured.
keystore.sig.csf.key : Property is configured and its value is "sign-csf-key".
Description: The "keystore.sig.csf.key" property points to the CSF alias that is mapped to the username and password of the private key that is used for signing.
sign-csf-key : Credentials configured.
Sign Key : Key configured.
Alias - orakey
Sign Certificate : Certificate configured.
Alias - CN=weblogic, OU=Orakey Test Encryption Purposes Only, O=Oracle, C=US
Expiry - June 28, 2020 11:17:12 AM PDT
keystore.enc.csf.key : Property is configured and its value is "enc-csf-key".
Description: The "keystore.enc.csf.key" property points to the CSF alias that is mapped to the username and password of the private key that is used for decryption.
enc-csf-key : Credentials configured.
Encrypt Key : Key configured.
Alias - orakey
Encrypt Certificate : Certificate configured.
Alias - CN=weblogic, OU=Orakey Test Encryption Purposes Only, O=Oracle, C=US
Expiry - June 28, 2020 11:17:12 AM PDT
Policy Manager:
PASSED.
Message(s):
OWSM Policy Manager connection state is OK.
OWSM Policy Manager connection URL is "t3://host.example.com:7001".
Enforcement Agent:
PASSED.
Message(s):
Enforcement is successful.
Service URL: http://host.example.com:7001/Diagnostic/DiagnosticService?wsdl
表16-1は、エンドツーエンドのWS-Trustユースケース・シナリオで発生する可能性のある一般的なOWSM例外およびエラーを示しています。考えられる原因と推奨する解決策も示されています。サポートされているWS-Trustユースケースの構成方法の詳細は、『Oracle Web Services ManagerによるWebサービスの保護のユース・ケース』の次の章を参照してください。
「Microsoft ADFS 2.0 STSがIP-STS、Oracle STSがRP-STSのFederationの構成」
「Oracle STSがIP-STS、Microsoft ADFS 2.0 STSがRP-STSのFederationの構成」
「WS-TrustとOpenSSO STSを使用したSAML HOKの構成」
「WS-TrustとOpenSSO STSを使用したSAML送信者保証の構成」
「WS-TrustとOpenSSO STSを使用したSAMLベアラーの構成」
表16-1 WS-Trustユースケースの一般的なOWSM例外およびエラー
例外/エラー | 考えられる原因 | 解決方法 |
---|---|---|
|
|
STS発行済トークンのクライアント・ポリシーの |
|
SSLチャネルを介してサービスと通信する際、使用環境のJREディストリビューションの信頼されたキーストアに、サービスの有効なSSL証明書が存在する必要があります。ほとんどの場合、SSL証明書は次のディレクトリに存在します。
この例外は次のいずれかの原因で発生した可能性があります。
|
サービスの有効なSSL証明書が |
|
この例外は、クライアントおよびサービスの両方にSTS信頼構成ポリシーがアタッチされていないために発生します。単純なWS-Trustユースケースでは、STS信頼構成ポリシーがクライアントまたはサービス・アプリケーションのいずれかにアタッチされている必要があります。ポリシーがアタッチされていないため、クライアントはSAMLトークンを取得するためにどのSTSと通信すればよいのかを決定できません。 |
構成の必要性に合せてSTS信頼構成ポリシーをクライアントまたはサービス・アプリケーションにアタッチしてください。詳細は、「WS-Trustの構成」を参照してください。 |
|
Webサービス・プロバイダまたはリライイング・パーティが、受信したSAMLトークンの発行者署名を検証できません。 |
発行者の公開鍵/証明書が、サービスが使用するJKS/KSSキーストアにインポートされていることを確認してください。 詳細な手順は、「メッセージ保護に関するキーストアの構成」を参照してください。 |
|
SAMLアサーション発行者名が、リライイング・パーティがデプロイされているドメインの信頼された発行者リストに構成されていません。 |
サービスが実行されているドメインの信頼された発行者リストに、発行者を追加してください。 詳細な手順は、次を参照してください。 |
|
サード・パーティ製のSTSサーバーを保護しているポリシーと互換性のあるクライアント・ポリシーがOWSMに存在しない場合、この例外が発生する可能性があります。 クライアントが通信を試みているいずれかのSTSエンドポイントが、セキュリティ・ポリシーによって保護されています。Oracle STSでは、互換性のあるクライアントおよびサービス・ポリシーを備えたOWSMを使用しています。この場合、通常はクライアントによる対応するクライアント・ポリシーの検出に問題は起こりません。 |
OWSM信頼クライアントは、ほとんどの一般的なSTSサーバーとテストされているため、この例外が発生する可能性は低いです。 この例外が発生した場合、回避策として、 |