WebSphere Application Server for z/OS, Version 6.1   
             オペレーティング・システム: z/OS

             目次と検索結果のパーソナライズ化

Web サービス・セキュリティーのトラブルシューティングのヒント

Web サービス・セキュリティーのトラブルシューティングを行う場合は、 アセンブリー・ツールで構成を確認し、クライアントとサーバーの要求および応答の構成を 一致させます。

Web サービス・セキュリティーのトラブルシューティングは、 アセンブリー・ツ ールで構成を確認し、クライアントとサーバーの要求および応答の構 成を調和させることにより最適に行えます。 これらの構成は必ず一致させる必要があります。 クライアント要求送信側の構成は、サーバー要求受信側の構成と一致している必要があります。暗号化を正常に行うには、 受信側の公開鍵が送信側に対してエクスポートされる必要があり、この鍵が暗号化情報内で正常に構成されている必要があります。認証の場合、 クライアントが使用するメソッドをサーバーのログイン・マッピングで指定する必要があります。以下は、 実行可能な汎用トラブルシューティングのステップのリストです。

このタスクのステップ

  1. クライアント・セキュリティーの拡張機能およびサーバー・セキュリティーの拡張機能が、 以下の送信側および受信側のダウンストリーム呼び出しのそれぞれについて一致していることを確認します。
    • 要求送信側と要求受信側
    • 応答送信側と応答受信側
  2. Add Created Time Stamp」オプションがクライアント・サイドで使用可能の場合に、 サーバーで「Add Received Time Stamp」オプションが構成されていることを確認します。アセンブリー・ツールで、 セキュリティーの拡張機能を構成する必要があります。
  3. クライアント・セキュリティー・バインディングおよびサーバー・セキュリティー・バインディングが 正しく構成されていることを確認します。クライアント認証メソッドがシグニチャーの場合、 サーバーにログイン・マッピングがあることを確認してください。 クライアントが公開鍵、cn=Bob,o=IBM,c=US を使用して本体を暗号化する場合、 このサブジェクトがサーバー鍵ストアにおける個人証明書であり、 これによって本体を秘密鍵で復号できることを確認してください。 アセンブリー・ツールまたは WebSphere Application Server 管理コンソールを使用して、セキュリティー・バインディングを構成できます。
  4. 問題に関する情報を提供するメッセージについては 、${USER_INSTALL_ROOT}/logs/server1 ディレクトリー (server1 はサーバー名に応じて変化します) 内の SystemOut.log ファイルをチェックします。
  5. 以下のトレース仕様を使用して Web Services Security のトレースを使用可能にします。 com.ibm.xml.soapsec.*=all=enabled:com.ibm.ws.webservices.*=all=enabled: com.ibm.wsspi.wssecurity.*=all=enabled:com.ibm.ws.security.*=all=enabled: SASRas=all=enabled

    これらの 3 行は、実際には 1 行として入力してください。

Web サービスを保護する際のエラー

Web サービスを保護する際に、以下のエラーが発生することがあります。

「CWWSI5061E: SOAP 本文に署名がありません」というエラー・メッセージが表示される [バージョン 5 のみ]

原因:

このエラーは一般に、 SOAP セキュリティー・ハンドラーが正しくロードされておらず、SOAP 本体に署名がない場合に発生します。 SOAP セキュリティー・ハンドラーは通常、サーバー側で発生する最初の検証であり、 多くの問題によりこのメッセージが表示されます。このエラーは無効な actor URI 構成により発生する場合があります。

解決策:

アセンブリー・ツール内の以下の場所で、actor Universal Resource Identifier (URI) を構成することができます。

クライアントおよびサーバー上の actor 情報は、 両方とも同一のストリングを参照する必要があります。 クライアントとサーバーの actor フィールドが一致すると、 要求または応答はダウンストリームに転送されるのではなく、処理されます。 他の Web サービスのゲートウェイとして動作する Web サービスがある場合は、「actor」フィールドが異なる場合があります。しかし、それ以外の場合、 クライアントおよびサーバーで actor 情報が一致することを検証してください。Web サービス・インプリメンテーションがゲートウェイとして動作し、 ゲートウェイを介して渡される要求同じ actor を構成していない場合、 この Web サービス・インプリメンテーションはクライアントからのメッセージを処理しません。代わりに、要求をダウンストリームに送信します。正しい actor ストリングを含むダウンストリーム・プロセスによって要求が処理されます。応答でも同じ状況が発生します。 したがって、該当するクライアントとサーバーの「actor」フィールドが同期化されていることを確認することが重要です。

また、本体をクライアント構成内で署名されるように指定しない場合には、 エラーが表示されることがあります。 アセンブリー・ツールの Web サービス・クライアント・エディターを使用 してメッセージ本文に署名するには、「セキュリティー拡張」>「Request Sender Configuration」>「保全性」をクリックして、 署名するメッセージ・パートを選択します。

「CWWSI5075E: No security token found that satisfies any one of the authentication methods」というエラー・メッセージが表示される [バージョン 5 のみ]

解決策:

セキュリティー拡張機能でクライアントとサーバーのログイン構成情報が一致しているか確認してください。 また、クライアントに有効なログイン・バインディングがあること、 およびサーバーにセキュリティー・バインディングで有効なログイン・マッピングがあることを 確認してください。この情報は、 アセンブリー・ツールの以下の場所を調べることで確認できます。

また、クライアントおよびサーバーで指定された actor URI が一致することを 確認してください。アセンブリー・ツール内の以下の場所で、actor URI を構成することができます。

「CWWSI5094E: TrustMode が BasicAuth であるときに、 トラステッド・ユーザーの UsernameToken が見つからなかったか、またはユーザーのログインが失敗しました」という エラー・メッセージが表示される

原因:

この状態は、ログイン構成で IDAssertion を認証メソッドとして構成した場合に発生します。

解決策:

送信側の Web サービスで、 ログイン・バインディング内にトラステッド基本認証エントリーを構成してください。次に、サーバー側で、 トラステッド ID エバリュエーターに基本認証エントリーのユーザー名を含むプロパティーのセットがあることを検証します。

ID アサーション用のクライアントを構成するには、以下のトピックを参照してください。 ID アサーション用にサーバーを構成するには、以下のトピックを参照してください。

「CWSCJ0053E: Authorization failed for /UNAUTHENTICATED...」というエラー・メッセージが表示される

原因:

セキュリティー名が UNAUTHENTICATED となった以下の許可エラーが発生します。CWSCJ0053E: Authorization failed for /UNAUTHENTICATED while invoking (Home)com/ibm/wssvt/tc/pli/ejb/Beneficiary findBeneficiaryBySsNo(java.lang.String):2 securityName: /UNAUTHENTICATED;accessID: null is not granted any of the required roles: AgentRole

この状態は、 ログイン構成が構成されていないため、または Web サービス・セキュリティーがクライアントから サーバーに構成されていないために発生します。 要求がサーバーに到達し、認証情報が受信されない場合、スレッドに UNAUTHENTICATED ユーザーが設定されています。 だれでもアクセスできる特殊な「Everyone」役割以外の役割がリソースに割り当てられている場合、 許可はこのエラーを戻します。

クライアントが正常に Enterprise JavaBeans (EJB) ファイルを認証しても、 EJB ファイルが Web サービス・セキュリティーまたはトランスポート・セキュリティー (HTTP ユーザー ID、 パスワードなど) で構成されていないダウンストリーム EJB ファイルを呼び出す場合、 このダウンストリーム要求に対してエラーが発生する可能性があります。

解決策:

アセンブリー・ツールを使用して、 クライアントとサーバーの両方に対するエンタープライズ・アーカイブ (EAR) ファイルのセキュリティー機能拡張およびセキュリティー・バインディングが適切であることを検証します。詳しくは、以下のトピックを 参照してください。

トークン・コンシューマーまたはトークン・ジェネレーターに対して 値のタイプのローカル名と URI を指定すると、「WSWS3243I: 情報: 例外を WebServicesFault にマップしています」という エラー・メッセージが表示される

原因:

値タイプの URI は、以下の事前定義された値タイプのローカル名に対しては必要ありません。
  • ユーザー名トークン
  • X509 証明書トークン
  • PKIPath 内の X509 証明書
  • PKCS#7 内の X509 証明書および CRL のリスト

解決策:

前述の値のタイプのローカル名の 1 つを指定した場合は、値のタイプ URI フィールドに値を入力しないでください。

WebSphere Application Server の Web サービスにアクセスする Microsoft .NET クライアントを使用すると、「Invalid URI: The format of the URI could not be determined」という エラー・メッセージが表示される

原因:

WebSphere Application Server の Web サービスにアクセスする Microsoft .NET クライアントを使用すると、 次のような例外メッセージが表示されることがあります。
Invalid URI: The format of the URI could not be determined.
例外タイプ:
System.UriFormatException 
at System.Uri.Parse() 
at System.Uri..ctor(String uriString, Boolean dontEscape) 
at System.Uri..ctor(String uriString) 
at Microsoft.Web.Services2.SoapInputFilter.CanProcessHeader(XmlElement header, SoapContext context) 
at Microsoft.Web.Services2.Security.SecurityInputFilter.ProcessMessage(SoapEnvelope envelope) 
at Microsoft.Web.Services2.Pipeline.ProcessInputMessage(SoapEnvelope envelope) 
at Microsoft.Web.Services2.InputStream.GetRawContent() 
at Microsoft.Web.Services2.InputStream.get_Length() 
at System.Xml.XmlScanner..ctor(TextReader reader, XmlNameTable ntable) 
at System.Xml.XmlTextReader..ctor(String url, TextReader input, XmlNameTable nt) 
at System.Xml.XmlTextReader..ctor(TextReader input) 
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, 
WebResponse response, Stream responseStream, Boolean asyncCall) 
WebSphere Application Server 内では Web サービス・セキュリティーが有効で、ActorURI 属性が使用されます。 このエラーが発生するのは、Microsoft .NET Web Services Enhancements (WSE) Version 2.0 Service Pack 3 が、 ActorURI 属性の相対 URI 値をサポートしていないためです。 WSE Version 2.0 Service Pack 3 は、この属性に対しては絶対 URI のみをサポートしています。

解決策:

Microsoft .NET クライアントを使用するためには、 この属性を絶対 URI として構成する必要があります。 絶対 URI とは、例えば abc://myWebService のようなものです。 相対 URI とは、例えば myWebService のようなものです。

WebSphere Application Server で使用する ActorURI 属性を 構成するには、Rational Application Developer (RAD) または Application Server Toolkit (AST) を使用して、以下のステップを実行します。
  1. Web サービス・エディターを開き、「Extensions」タブをクリックして 「Server Service Configuration」を展開します。
  2. 「Actor」フィールドに、完全な絶対 URI を入力します。
  3. Response Generator Service Configuration Details」>「詳細」と展開します。
  4. 「Actor」フィールドに、完全な絶対 URI を入力します。

「WSEC6664E: PKIXBuilderParameters にヌルは指定できません。 TrustAnchor および CertStoreList の構成は正しくありません」という例外が表示される

原因:

証明書のパス設定が正しく構成されていません。

解決策:

次のステップを実行して、証明書のパス設定を構成します。
  1. 管理コンソールで、「セキュリティー」>「Web サービス」とクリックします。
  2. 見出し「デフォルト・コンシューマー・バインディング」の下で、 「署名情報」> 「configuration_nameとクリックします。
  3. すべてを信頼」オプションまたは「専用署名情報」オプションのいずれかを選択します。

    専用署名情報」オプションを選択した場合は、 ドロップダウン・リストにある構成から、トラスト・アンカーと証明書ストアを選択してください。

  4. OK」および「保管」をクリックして、マスター構成に保管します。

Microsoft .NET エラー「WSE567: The incoming Username token must contain both a nonce and a creation time for the replay detection feature」が表示される

原因:

このシナリオでは、 WebSphere Application Server の Web サービス・クライアントと Microsoft .NET Web サービスを利用しています。 Microsoft .NET Web サービスには、構成されるユーザー名トークンに ws-security 制約があります。 Microsoft .NET サーバーから次の例外がスローされます。

WSE567: 着信ユーザー名トークンには、nonce と、 リプレイ検出機能の作成時刻の両方が含まれている必要があります。

デフォルトでは、Microsoft .NET Web サービスはユーザー名トークンの nonce (ランダム・ストリング) とタイム・スタンプを検証します。 しかし、WebSphere Application Server を使用する Web サービス・クライアントに対して nonce およびタイム・スタンプ・プロパティーを 構成するかどうかは任意です。

解決策:

以下のステップを実行して、WebSphere Application Server の Web サービス・クライアント上で、 ユーザー名トークンの nonce およびタイム・スタンプ・プロパティーを追加します。 これらのステップでは、 Rational Application Developer、Application Server Toolkit などの アセンブリー・ツールも使用します。
  1. Web サービス・クライアントのデプロイメント記述子を開き、「WS-Binding」タブをクリックします。
  2. 「Security Request Generator Binding Configuration」>「Token Generator」セクションと展開します。
  3. 既に作成済みのユーザー名トークンの名前をクリックして、「編集」をクリックします。
  4. 「トークン・ジェネレーター」ウィンドウの「プロパティー」セクションで、「追加」をクリックします。
  5. 「名前」フィールドに com.ibm.wsspi.wssecurity.token.username.addNonce と入力して、nonce プロパティーの名前を指定します。
  6. 」フィールドに「true」を入力します。
  7. 追加」をクリックします。
  8. 「名前」フィールドに com.ibm.wsspi.wssecurity.token.username.addTimestamp と入力して、タイム・スタンプ・プロパティーの名前を指定します。
  9. 「値」フィールドに true と入力します。
  10. OK」をクリックして、クライアントのデプロイメント記述子を保管します。

Java 2 セキュリティーを 有効にして com.ibm.wsspi.wssecurity.auth.token パッケージを使用すると、 Java 2 セキュリティー例外が発生する

原因:

Java 2 セキュリティーが 有効になっているときに com.ibm.wsspi.wssecurity.auth.token.* パッケージを使用すると、 アプリケーションが Java 2 セキュリティー例外を作成します。

WebSphere Application Server バージョン 6.1 では、 com.ibm.wsspi.wssecurity.auth.token.* パッケージの各種 public メソッド用に、 新しい Java 2 アクセス権が設定されました。ご使用のアプリケーションが、 Java 2 アクセス権で保護されるクラスの public メソッドのいずれかを使用するのに、 当該アクセス権を持っていない場合、そのアプリケーションは 失敗します。例外メッセージには、対応する新規 Java 2 アクセス権とともに、 影響を受けるクラスおよび public メソッドを識別する情報が含まれています。

解決策:

以下の手順で、アプリケーションの was.policy ファイルに アクセス権を付与します。
  1. PolicyTool を使用してポリシー・ファイルを編集します。オペレーティング・システムに適したステップに 従ってください。
  2. アプリケーションのエンタープライズ・アーカイブ (EAR) ファイルに パッケージ化される was.policy に、すべてのアクセス権を追加します。 アプリケーションの was.policy ファイルでアクセス権をもっと細かく 設定したい場合は、必要とするクラスごとに、アプリケーションに必要なアクセス権を 使用可能にします。
    例えば、X509BSToken のメソッドにのみ アクセスできればよい場合は、was.policy ファイルに以下のアクセス権を 追加します。
    grant codeBase "file:${application}" {
       permission com.ibm.websphere.security.WebSphereRuntimePermission
         "wssecurity.X509BSToken.setBytes";
       permission com.ibm.websphere.security.WebSphereRuntimePermission
         "wssecurity.X509BSToken.setCert";
      permission com.ibm.websphere.security.WebSphereRuntimePermission 
         "wssecurity.WSSToken.setTrusted";
      permission com.ibm.websphere.security.WebSphereRuntimePermission
         "wssecurity.WSSToken.addAttribute";
      permission com.ibm.websphere.security.WebSphereRuntimePermission
         "wssecurity.WSSToken.setUsedTokenConsumer";
    };
  3. アプリケーションの EAR ファイル内の was.policy ファイルを更新します。
  4. WebSphere Application Server からアプリケーションをアンインストールし、 新規 EAR ファイルと更新済みの was.policy ファイルと共に、再インストールします。

SOAP エレメントで 保全性または機密性を表明すると、例外が発生することがある

原因:

クライアントが SOAP エレメントの保全性または機密性を表明しているのに、 そのエレメントがメッセージに含まれていない場合は、例外が発行されます。

クライアントがシグニチャーまたは暗号化を SOAP エレメントに適用するように 要求する場合は、SOAP エレメントが必ず存在していなければなりません。このエレメントの存在は、 オプションではありません。例えば、構成で wscontext エレメントに保全性または機密 性を適用する必要があると指定されているのに、wscontext がメッセージに含まれていないと、以下の例外が発行されます。

com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5636W: Objects 
to be processed not found with the dialect 
[http://www.ibm.com/websphere/webservices/wssecurity/dialect-was] 
and the keyword [wscontext]

解決策:

クライアント開発者は、 保全性または機密性のターゲットとする SOAP エレメントが必ず SOAP メッセージに含まれていることを、 保証する必要があります。SOAP エレメントが必ず含まれていると 保証できない場合は、SOAP エレメントを保全性または機密性のターゲットにすることは できません。

JSR-101 プログラミング・モデルと JSR-109 プログラミング・モデルの違いによって、クライアント出力例外が発生する

原因:

クライアントの実行中に、 クライアント出力例外が生成されることがあります。JSR-101 プログラミング・モデルと JSR-109 プログラミング・モデルの違いが、クライアント出力例外の原因になる 場合があります。

ユーザーは、任意の Web サービス・セキュリティー 制約 (ユーザー名トークン、X509 トークン、SOAP エレメントへの署名、SOAP エレメントの暗号化など) を 構成できます。例えば、WebSphere Application Server のクライアントおよび サーバーでは、ユーザー名トークンを構成できます。クライアントは 要求でユーザー名トークンを送信するように構成され、サーバーはユーザー名トークンを予期するように 構成されます。クライアントがユーザー名トークンを送信しないと、 サーバーはその要求を拒否します。Java Naming and Directory Interface (JNDI) ネーミング・ルックアップを 実行しないクライアントは、JSR-109 クライアントではないと思われます。JSR-109 クライアントでない場合は、 JSR-109 構成情報 (セキュリティー構成など) が取得されず、 要求は失敗します。

JSR-109 プログラミング・モデルでは、 呼び出しは JNDI ルックアップから始まり、これによってセキュリティー構成情報を添付することが できます。JSR-101 プログラミング・モデルでは、JNDI ルックアップは実行されず、 セキュリティー構成情報を添付することはできません。

解決策:

JSR-101 プログラミング・モデルでも JSR-109 プログラミング・モデルでも、 この振る舞いは問題とはなりません。 Web サービス・セキュリティーは、JSR-101 クライアントに対しては、 WebSphere Application Server セキュリティー構成情報を提供しません。

Web サービス・セキュリティーの インプリメンテーションは、以下のガイドラインに従って行われます。
  • JSR-101 クライアントでは、Web サービス・セキュリティーはサポートされません。
  • Web サービス・セキュリティーを使用するように構成できるのは、JSR-109 クライアントだけです。

クライアントが Web サービス・セキュリティーを要求する場合、そのクライアントは JSR-109 クライアントでなければなりません。




関連タスク
ID アサーション用クライアントの構成: メソッドの指定
ID アサーション用クライアントの構成: 認証メソッドの収集
ID アサーション認証を処理するためのサーバーの構成
ID アサーション認証情報を検証するためのサーバーの構成
アセンブリー・ツールを使用したクライアント・セキュリティー・バインディングの構成
管理コンソールを使用してサーバー上のセキュリティー・バインディングをクライアントとして動作するように構成する
アセンブリー・ツールを使用したサーバー・セキュリティー・バインディングの構成
管理コンソールを使用したサーバー・セキュリティー・バインディングの構成
PolicyTool を使用したポリシー・ファイルの編集
Web サービスのトラブルシューティング
関連資料
インストールの問題
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 9:12:22 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.zseries.doc/info/zseries/ae/rwbs_troubleshoot.html