ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理
12c (12.1.3)
E59414-02
  目次へ移動
目次

前
 
次
 

16 OWSMでの問題の診断

この章では、Oracle Web Services Manager (OWSM)を使用して問題を診断する方法を説明します。Oracle Web Services Managerでは、鍵と資格証明、証明書、ポリシー・アクセス、アサーションなどのセキュリティ問題を検出できます。WLSTを使用して問題を診断することもできます。

この章の内容は次のとおりです。

16.1 OWSMポリシー・マネージャでの問題の診断

OWSMポリシー・マネージャはすべてのOWSMポリシーを管理しており、OWSMポリシー・フレームワークを使用するためには、稼働している必要があります。たとえば、OWSMポリシー・マネージャを使用できない場合は、ADFサービスおよびクライアントのポリシー・アタッチメントに対して行う変更がOWSMリポジトリに保存されません。

Oracle Enterprise Manager Fusion Middleware ControlのOWSMポリシー・マネージャのページで、ポリシー・マネージャの現在の状態を確認し、そのレスポンス時間、負荷およびその他のデータを確認できます。

OWSMポリシー・マネージャのページを表示するには:

  1. ターゲット・ナビゲーション・ペインで、「アプリケーションのデプロイ」を開きます。

  2. 「アプリケーションのデプロイ」の下にある「内部アプリケーション」を開きます。

  3. 「wsm-pm」を開き、「wsm-pm」アプリケーションを選択します。

    OWSMポリシー・マネージャのホームページが表示されます。

    図16-1 OWSMポリシー・マネージャのページ

    図16-1の説明が続きます
    「図16-1 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リポジトリの管理」を参照してください。

16.2 OWSMでの一般的な問題の診断

次の各項では、OWSMの使用中に発生する可能性がある一般的な問題と、その解決方法について説明します。

16.2.1 ポリシー・マネージャに接続できない

ポリシー・マネージャへの接続を試みると、次のエラー・メッセージが表示されます。

  • WSM-06157: リポジトリ・データベースが正しく構成されていないか稼働していません。

  • WSM-06160: ポリシー・マネージャ・アプリケーションがデプロイされていないか稼働していません。

  • WSM-06161: ポリシー・マネージャ・アプリケーションがデプロイされていません。

  • WSM-06162: ポリシー・マネージャが稼働していないか正しく構成されていません。

  • WSM-06159: 資格証明の問題が原因でポリシー・マネージャに接続できません。

  • WSM-02120 : ポリシー・アクセス・サービスに接続できません。

問題

次のような問題の原因が考えられます。

  • ポリシー・マネージャが停止しています。ポリシー・マネージャが停止しているかどうかは、次のようにして判断できます。

    • 「OWSMポリシー・マネージャでの問題の診断」に示されている、OWSMポリシー・マネージャのホーム・ページの「一般」領域で、ポリシー・マネージャの状態がShutdownとして表示されます。

    • 図16-2に示されているように、Fusion Middleware Controlのドメインのホームページ上のwsm-pm内部アプリケーションの状態が「停止中」です。ドメインのホーム・ページにアクセスするには、ページの左隅にある「WebLogicドメイン」メニューから「ホーム」を選択します。

      図16-2 OWSMポリシー・マネージャの停止(「ファーム」ページ)

      図16-2の説明が続きます
      「図16-2 OWSMポリシー・マネージャの停止(「ファーム」ページ)」の説明

    • Fusion Middleware ControlでOWSMのポリシー管理ページへのアクセスを試みると、エラー・ダイアログ・ボックスが表示されます。このエラー情報は、『Webサービスの管理』のサンプル・ログの確認に関する項に記載されているように、診断ログ・ファイルにも書き込まれます。

  • ドメインがSSLを使用した自動検出を使用するように構成されています。

    OWSMは自動検出機能をサポートしており、この機能を使用してOWSMポリシー・マネージャを検索し、接続します。ドメインがSSLを使用した自動検出を使用するように構成されている場合、自動検出ロジックでは、SSL対応サーバーへの検出を常に試みます。安全な接続を保持するために、自動検出ロジックは、SSL対応サーバーが停止中であっても、非SSLサーバー上のポリシー・マネージャへの接続は試みません。したがって、稼働中のポリシー・マネージャがあっても、それがSSLに対応していないサーバーで稼働している場合は無視され、エラー・メッセージが表示されます。

  • ポリシー・マネージャへのアクセスで必要な資格証明が無効または認可されません。

  • リポジトリが正しく構成されていない可能性があります。

  • ポリシー・マネージャおよびエージェントのクロスコンポーネント・ワイヤリングが最新でない可能性があります。

解決方法

ポリシー・マネージャが停止している場合:

『Oracle Fusion Middlewareの管理』のアプリケーションの開始と停止に関する項に従って、wsm-pmアプリケーションを再起動します。

ドメインがSSLを使用した自動検出を使用するように構成されている場合:

ポリシー・マネージャへのアクセスを試みると資格証明の問題が発生する場合:

デフォルトでは、OWSMランタイムはOracleSystemUserアカウントを使用します。デフォルトのユーザー・アカウントを使用していない場合は、「デフォルト・ユーザーの変更」の説明に従って、構成を変更する必要があります。

リポジトリ構成に関する問題がある場合:

  • データベースとMDSスキーマが正しくセットアップされていることを確認します。この構成は、インストール・プロセスの一環として行われます。詳細は、『Oracle Fusion Middleware Infrastructureのインストールと構成』のデータベース・スキーマの作成に関する項を参照してください。

  • JDBC構成が正しいことを確認します。JDBC構成は、Fusion Middleware構成ウィザードを使用してドメインを作成するときに定義されます。詳細は、『Oracle Fusion Middleware Infrastructureのインストールと構成』のWebLogicドメインの構成に関する項を参照してください。

クロスコンポーネント・ワイヤリングに関する問題がある場合:

  • OWSMポリシー・マネージャに対応するサービス表エントリに正しいURLが含まれていることを確認します。

  • OWSMエージェント・フックとOWSMポリシー・マネージャの間のワイヤリングがwired状態であることを確認します。

詳細は、次のトピックを参照してください。

16.2.2 アプリケーションがWebサービスを呼び出した後のキーまたは資格証明ストア・エラー

アプリケーションが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キーストアに存在することを確認するには:

  1. Fusion Middleware Controlを使用して、「OWSMキーストアの構成」の手順を実行して、OWSMキーストア構成内の署名鍵および暗号化鍵の別名を識別します。

  2. 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ページで検索してアクセスできます。

    http://download.oracle.com/javase/search.html


    • 各別名が、資格証明ストア内のキーストア・ファイルとOWSMキーストア構成で同期していることを確認します。同期していない場合は、「OWSMキーストアの構成」の手順に従って、OWSMキーストア構成内の別名を編集できます。keytool -changealiasコマンドを使用すると、OWSMキーストア・ファイル内の別名を編集できます。


      注意:

      別名を編集する前に、この操作が他のWebサービスに影響を及ぼさないことを確認します。

    • 署名鍵または暗号化鍵の別名がOWSMキーストア・ファイルに存在しない場合は、「秘密鍵の生成およびJavaキーストアの作成」の説明に従って追加します。

  3. KSSキーストアの場合は、手順1で識別した別名がOWSMキーストア・ファイルに存在することを確認します。

    Fusion Middleware Controlを使用して、キーストアの内容を管理し、別名が一致することを確認します。詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。

JKSキーストアの場合、署名鍵、暗号化鍵およびOWSMキーストア・ファイルのパスワードが、OWSMのキーストア・ファイルとキーストア構成の間でそれぞれ同期していることを確認するには:

  1. keytoolを使用して、OWSMキーストア・ファイル内のパスワードを再設定します。パスワードは表示されないため、両方の場所でそれぞれ同じパスワード値を設定するには、パスワードの再設定が唯一の方法です。

    • keytool -storepasswdコマンドを使用して、OWSMキーストア・ファイルのパスワードを再設定します。

    • keytool -keypasswdコマンドを使用して、署名鍵パスワードおよび暗号化鍵パスワードを再設定します。

  2. Fusion Middleware Controlを使用して、「OWSMキーストアの構成」の説明に従って、OWSMキーストア構成内のパスワードを手順1で設定した値にそれぞれ再設定します。

16.2.3 アプリケーションがWebサービスを呼び出した後の信頼証明書エラー

アプリケーションがWebサービスを呼び出した後に、次のような信頼証明書エラーが表示されます。

WSM-00138: 証明書へのパスは例外のため無効です

問題

問題の原因として、Webサービスがその証明書をWeb Services Description Language (WSDL)で通知している場合、クライアントがその証明書または発行者を信頼するよう適切に構成されていない可能性が考えられます。

解決方法

WSDLで通知されるWebサービスの証明書または発行者を信頼するようクライアントが構成されていることを確認するには:

  1. クライアント・キーストアに、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

  2. 証明書がサービスのWSDLでパブリッシュされていない場合は、クライアント・ポリシーのオーバーライド・プロパティkeystore.recipient.aliasの値が、OWSMキーストア・ファイル内の証明書の別名に一致することを確認します。

    詳細は、「ポリシー構成のオーバーライドの概要」を参照してください。

16.2.4 アイデンティティ伝播時に発生するSAMLアサーション・エラー

アプリケーションが、異なるアプリケーションを呼び出すことによりユーザーのアイデンティティの伝播を試みると、InvalidSecurityTokenFailedAuthenticationおよび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構成オーバーライドのトラブルシューティングを行うには:

  1. 現在のクライアント・ポリシー内のsubject.precedenceオーバーライド値をfalseに設定して、アイデンティティを異なるユーザーに変更します。デフォルトでは、subject.precedenceオーバーライドはtrueに設定されます。

  2. サービスに送信するユーザーのユーザー名およびパスワードが含まれるクライアント・ポリシーで、資格証明ストア・フレームワークの適切なキー・オーバーライドを設定します。このユーザーのエントリが資格証明ストア・フレームワークに存在しない場合は、それを追加する必要があります。詳細は、「資格証明ストアの構成」を参照してください。

  3. 「アイデンティティ切替えのためのSAML Webサービス・クライアントの構成」の手順を実行することによって、クライアント・アプリケーションに対して適切なWebサービス・アイデンティティ権限が設定されていることを確認します。

16.2.5 アプリケーションがWebサービスを呼び出した後のポリシー・アクセス・エラー

アプリケーションがWebサービスの呼び出しを試みると、次のようなポリシー・アクセス・エラーが表示されます。

  • WSM-06156: ポリシーURIが欠落しているか、空か、無効な文字が含まれています。

  • WSM-06158: 参照されたポリシーがリポジトリ内にありません。

  • WSM-02017: ドキュメントはリポジトリに見つかりませんでした。

問題

次のような問題の原因が考えられます。

  • ポリシーURIが欠落しているか、ポリシー名のスペルミスです。

  • ポリシー・マネージャが停止しています。

  • ポリシーがリポジトリ内にありません。

  • キャッシュの遅延が原因で、ポリシー・アタッチメントが有効ではありません。

解決方法

ポリシー・アクセス問題を診断および解決する手順は、次のとおりです。

  1. 「OWSMポリシー・マネージャでの問題の診断」および「ポリシー・マネージャに接続できない」の説明に従って、ポリシー・マネージャが稼働していることを確認します。

  2. mds-owsmデータソース接続がアクセス可能で、使用可能であることを確認します。詳細は、『Oracle Fusion Middlewareの管理』のデータ・ソースの理解と管理に関する項を参照してください。

  3. ポリシー・マネージャのバリデータ・ページを使用してリポジトリのコンテンツを表示することによって、OWSMリポジトリにポリシーがあることを確認します。バリデータ・ページへのアクセスおよびリポジトリ・コンテンツの表示の詳細は、「OWSMポリシー・マネージャでの問題の診断」を参照してください。

  4. リポジトリにポリシーがある場合、ポリシーURIがリポジトリ内のポリシーURIと一致することを確認します。

  5. ポリシーがOWSMリポジトリにない場合、次のいずれかの操作を行います。

    • 事前定義済ポリシーの場合:

      • upgradeWSMRepository()コマンドを使用して、リポジトリが最新のすべての事前定義済ポリシーでアップグレードされていることを確認します。詳細は、『インフラストラクチャ・コンポーネントのためのWLSTコマンド・リファレンス』のupgradeWSMRepositoryに関する項を参照してください。

      • 「OWSMリポジトリの再構築」の説明に従って、resetWSMRepositoryコマンドを使用してリポジトリのコンテンツをリセットします。

    • カスタム・ポリシーの場合:

  6. ユーザーが、適切な権限が付与されたロールに属することを確認します。ロールまたは権限を変更するには、「ユーザーのグループまたはロールの変更」を参照してください。

  7. ポリシー・アクセッサおよびキャッシュ遅延を確認します。

    ポリシー・アタッチメントが有効になるまでにかかる時間は、OWSMポリシー・アクセッサおよびポリシー・キャッシュのプロパティ設定で決まります。デフォルトでは、この遅延は最大で11分です。遅延を縮小するには、必要に応じて、次のキャッシュ・プロパティ設定を調整できます。

    • 「初期キャッシュ・リフレッシュ」、デフォルトは600000ミリ秒(10分)

    • 「キャッシュ・リフレッシュ時間」、デフォルトは600000ミリ秒(10分)

    これらのプロパティの調整の詳細は、次の各項を参照してください。

16.2.6 資格証明ストア内のユーザーにアクセスできない

OWSMが資格証明ストア内のユーザーへのアクセスを試みると、次のようなエラーが発生します。

WSM-00015: ユーザー名が見つかりません

問題

OWSMが、資格証明ストア内のユーザーを見つけることができません。次のいずれかの原因が考えられます。

  • 資格証明マップoracle.wsm.securityが資格証明ストアに存在しません。

  • OWSMが使用するマップにユーザーがリストされていません。

  • エントリのCSFキーが資格証明ストアに存在しません。

解決方法

資格証明マップoracle.wsm.securityが資格証明ストアに存在することを確認します。OWSMは、この資格証明ストア・マップからのみ読み取ります。

資格証明マップoracle.wsm.securityが資格証明ストアに存在することを確認するには、「資格証明ストアの構成」の手順を参照してください。

アプリケーションがoracle.wsm.security以外の資格証明マップを使用する場合は、OWSMがアクセスする必要があるユーザーがoracle.wsm.security資格証明マップに複製されていることを確認します。

16.2.7 アプリケーションがWebサービスを呼び出した後の認可エラー

アプリケーションが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.WSFunctionPermission 
http://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)

解決方法

ログ内の次の情報に注意を払います。これらは、前述の例では太字で示されています。

  1. アプリケーション・ストライプ名。前述のログではSalesApp#V2.0です。これが、アプリケーション用に構成したものと一致していることを確認します。ストライプ名の構成方法の詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のサーブレット・フィルタおよびEJBインターセプタの構成に関する項を参照してください。

  2. 権限の付与。次のもので構成されています。

    1. リソース名。前述のログではhttp://xmlns.oracle.com/apps/partnerMgmt/partnerCenter/PartnerService#updatePartnerです。

    2. アクション。前述のログではinvokeです。

    どちらの情報も、権限付与の中で正しく指定されている必要があります。詳細は、「認可権限の決定」を参照してください。

アプリケーションがLDAPベースのオーセンティケータを使用しており、すべてのロールをLDAPに格納している場合は、「デフォルト・ユーザーの変更」の説明に従って、OWSMがユーザーおよびロールにアクセスできることを確認します。

16.2.8 アプリケーションがWebサービスを呼び出した後のタイムスタンプ・エラー

アプリケーションが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分以内になるようにします。

16.2.9 アプリケーションがWebサービスを呼び出した後の複数の認証セキュリティ・ポリシー・エラー

アプリケーションが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つのポリシー・セットがあり、そこに含まれる異なる認証ポリシーがドメイン上の同じリソース・タイプを指しています。


注意:

サブジェクトにアタッチされている認証ポリシーが、構成オーバーライドを含めて、お互いの完全な複製の場合、ポリシー・アタッチメントは複製として表示され、構成は有効です。

解決方法

認証ポリシーのアタッチを試みている複数のポリシー・セットがあるかどうかを確認する手順は、次のとおりです。

  1. listWSMPolicySets()コマンドを使用して、ドメイン内のポリシー・セットのリストを表示します。このコマンドの詳細は、「ポリシー・セットのリストの表示」を参照してください。

  2. 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.
    
  3. 重複が見つかった場合は、次のいずれかを行います。

詳細は、「エンドポイントのセキュア・ステータスの決定」を参照してください。

16.3 WLSTを使用したポリシー・アタッチメントに関する問題の診断

直接アタッチされたポリシーと、ポリシー・セットを使用してグローバルにアタッチされたポリシーが競合しないことを確認するには、WLSTコマンドのlistWSMPolicySubjects (detail="true")を使用します。

このコマンドは、エンドポイントの構成、各エンドポイントにアタッチされた有効なポリシー・セット、エンドポイントのセキュア・ステータス、構成オーバーライドと制約、およびエンドポイントに有効な構成があるかどうかを含めて、ドメイン内のWebサービスまたはWebサービス・クライアントのリストを表示します。このコマンドの使用の詳細は、『Webサービスの管理』のWLSTコマンドを使用したドメイン内のWebサービスの表示に関する項を参照してください。


注意:

エンドポイントは、(直接またはポリシー・セットを使用して外部で)アタッチされたポリシーで認証、認可またはメッセージ保護の操作が強制される場合にセキュアであると判断されます。

ポリシー・セットを使用してグローバルにアタッチされたポリシーが構成に含まれる場合、次のコマンドを使用してポリシー・セットに関する情報を表示できます。

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.

16.4 WLSTを使用したドメイン構成に関する問題の診断

ドメインの構成に関して問題がないことを確認するには、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.5 WS-Trustユースケースの一般的なOWSM例外の診断

表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例外およびエラー

例外/エラー 考えられる原因 解決方法

WSM-00015: ユーザー名が見つかりません

  1. sts.auth.user.csf.key構成プロパティが、STS発行済トークンのクライアント・ポリシーでオーバーライドされていない可能性があります。

  2. プロパティがオーバーライドされている場合は、CSFキーが資格証明ストアに存在しないか、またはオーバーライドが正しい値を指定していない可能性があります。

STS発行済トークンのクライアント・ポリシーのsts.auth.user.csf.keyプロパティを資格証明ストアの正しい値を使用してオーバーライドしてください。

javax.net.ssl.SSLHandshakeException: PKIXパス検証が失敗しました: java.security.cert.CertPathValidatorException: 証明書のチェックが失敗しました

SSLチャネルを介してサービスと通信する際、使用環境のJREディストリビューションの信頼されたキーストアに、サービスの有効なSSL証明書が存在する必要があります。ほとんどの場合、SSL証明書は次のディレクトリに存在します。

JAVA_HOME/jre/lib/security/cacerts

この例外は次のいずれかの原因で発生した可能性があります。

  • 信頼されたキーストアでサービスのSSL証明書が検出できない。

  • 信頼されたキーストアに存在するSSL証明書が有効期限切れである。

サービスの有効なSSL証明書がJAVA_HOME/jre/lib/security/cacertsの信頼されたキーストアにインポート済であることを確認してください。詳細は、「SSLに関するキーストアの構成」を参照してください。

WSM-00323: WSDLから取得したSTS ISSUER_ADDRESSがNULLです。ローカルSTS構成も使用できません。

この例外は、クライアントおよびサービスの両方にSTS信頼構成ポリシーがアタッチされていないために発生します。単純なWS-Trustユースケースでは、STS信頼構成ポリシーがクライアントまたはサービス・アプリケーションのいずれかにアタッチされている必要があります。ポリシーがアタッチされていないため、クライアントはSAMLトークンを取得するためにどのSTSと通信すればよいのかを決定できません。

構成の必要性に合せてSTS信頼構成ポリシーをクライアントまたはサービス・アプリケーションにアタッチしてください。詳細は、「WS-Trustの構成」を参照してください。

FailedAuthentication: セキュリティ・トークンを認証できません: リクエスト取得時エラー: oracle.wsm.security.SecurityException: WSM-00062: 署名に使用された証明書のパスが無効です。

Webサービス・プロバイダまたはリライイング・パーティが、受信したSAMLトークンの発行者署名を検証できません。

発行者の公開鍵/証明書が、サービスが使用するJKS/KSSキーストアにインポートされていることを確認してください。

詳細な手順は、「メッセージ保護に関するキーストアの構成」を参照してください。

InvalidSecurityToken: セキュリティ・トークンが有効ではありません。SAMLアサーション発行者名が無効です。

WSM-00376: SAMLトークンの認証が発行者"<発行者名>"について失敗しました。

SAMLアサーション発行者名が、リライイング・パーティがデプロイされているドメインの信頼された発行者リストに構成されていません。

サービスが実行されているドメインの信頼された発行者リストに、発行者を追加してください。

詳細な手順は、次を参照してください。

WSM-00231: クライアントと互換性のあるポリシーをSTS <STS WSDL URI>、ポート名<STSポート名>"について検出できません

サード・パーティ製のSTSサーバーを保護しているポリシーと互換性のあるクライアント・ポリシーがOWSMに存在しない場合、この例外が発生する可能性があります。

クライアントが通信を試みているいずれかのSTSエンドポイントが、セキュリティ・ポリシーによって保護されています。Oracle STSでは、互換性のあるクライアントおよびサービス・ポリシーを備えたOWSMを使用しています。この場合、通常はクライアントによる対応するクライアント・ポリシーの検出に問題は起こりません。

OWSM信頼クライアントは、ほとんどの一般的なSTSサーバーとテストされているため、この例外が発生する可能性は低いです。

この例外が発生した場合、回避策として、oracle/sts_trust_config_client_policyの新規バージョンまたはクローンを作成したバージョンをクライアント側にアタッチし、STSとの通信に使用するクライアント・ポリシーで構成することができます。詳細は、「Webサービス・クライアントからのSTS構成ポリシーの手動による構成: メイン手順」を参照してください。