WebSphere Application Server, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

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

セキュリティー・コンポーネントのトラブルシューティングのヒント

ここでは、WebSphere Application Server のセキュリティー関連の問題を診断するための 基本的なリソースとステップについて説明します。

WebSphere Application Server のセキュリティー関連の問題を診断するための 基本的なリソースとステップは、以下のとおりです。
セキュリティー関連の以下の問題については、 インフォメーション・センターの別の箇所で扱っています。

これらのステップで問題が解決されない場合は 、問題の診断および修正: 学習用リソースのリンクを使用して、問題が特定され、文書化されているかどうかを確認してください。

類似した問題が見つからない場合、 または提供されている情報では問題が解決されない場合は、IBM サポートに連絡してください。

[この情報が適用されるのはバージョン 6.0.x と、バージョン 6.1 セルに統合された以前のサーバーだけです。] Secure Authentication Services (SAS) などの WebSphere Application Server セキュリティー・コンポーネントの概要とその動作については、セキュリティー入門を参照してください。
重要: SAS がサポートされるのは、バージョン 6.1 セルに統合されたバージョン 6.0.x と、それより前のバージョンの間のサーバーに限られます。

ログ・ファイル

セキュリティー・コンポーネントのトラブルシューティングを行う場合は、 アクセスしようとしているリソースをホストするサーバーの Java 仮想マシン (JVM) ログを参照します。 以下は、セキュリティー・サービスが正常に開始したサーバーから表示されるメッセージのサンプルです。
SASRas        A CWWSA0001I: Security configuration initialized. 
SASRas        A CWWSA0002I: Authentication protocol: CSIV2/IBM 
SASRas        A CWWSA0003I: Authentication mechanism: SWAM 
SASRas        A CWWSA0004I: Principal name: MYHOSTNAME/aServerID 
SASRas        A CWWSA0005I: SecurityCurrent registered. 
SASRas        A CWWSA0006I: Security connection interceptor initialized. 
SASRas        A CWWSA0007I: Client request interceptor registered. 
SASRas        A CWWSA0008I: Server request interceptor registered. 
SASRas        A CWWSA0009I: IOR interceptor registered. 
NameServerImp I CWNMS0720I: Do Security service listener registration. 
SecurityCompo A CWSCJ0242A: Security service is starting 
UserRegistryI A CWSCJ0136I: Custom Registry:com.ibm.ws.security.registry.nt.
NTLocalDomainRegistryImpl has been initialized 
SecurityCompo A CWSCJ0202A: Admin application initialized successfully 
SecurityCompo A CWSCJ0203A: Naming application initialized successfully 
SecurityCompo A CWSCJ0204A: Rolebased authorizer initialized successfully 
SecurityCompo A CWSCJ0205A: Security Admin mBean registered successfully 
SecurityCompo A CWSCJ0243A: Security service started successfully 
SecurityCompo A CWSCJ0210A: Security enabled true 
以下は、セキュリティー・サービスを開始できないサーバーから出されるメッセージの例です。 この例では、メッセージの原因は、 ユーザー・レジストリーと通信するために入力された管理ユーザー ID とパスワードが誤っていること、 あるいはユーザー・レジストリー自体が停止しているか正しく構成されていないことです。
SASRas        A CWWSA0001I: Security configuration initialized. 
SASRas        A CWWSA0002I: Authentication protocol: CSIV2/IBM 
SASRas        A CWWSA0003I: Authentication mechanism: SWAM 
SASRas        A CWWSA0004I: Principal name: MYHOSTNAME/aServerID 
SASRas        A CWWSA0005I: SecurityCurrent registered. 
SASRas        A CWWSA0006I: Security connection interceptor initialized. 
SASRas        A CWWSA0007I: Client request interceptor registered. 
SASRas        A CWWSA0008I: Server request interceptor registered. 
SASRas        A CWWSA0009I: IOR interceptor registered. 
NameServerImp I CWNMS0720I: Do Security service listener registration. 

SecurityCompo A CWSCJ0242A: Security service is starting 
UserRegistryI A CWSCJ0136I: Custom Registry:com.ibm.ws.security.
registry.nt.NTLocalDomainRegistryImpl has been initialized 
Authenticatio E CWSCJ4001E: Login failed for badID/<null> 
javax.security.auth.login.LoginException: authentication failed: bad user/password 
以下は、セキュリティー・メカニズムとして Lightweight Directory Access Protocol (LDAP) が指定されているにもかかわらず、LDAP 鍵が正しく構成されていない場合にサーバーから出されるメッセージの例です。
SASRas        A CWWSA0001I: Security configuration initialized. 
SASRas        A CWWSA0002I: Authentication protocol: CSIV2/IBM 
SASRas        A CWWSA0003I: Authentication mechanism: LTPA 
SASRas        A CWWSA0004I: Principal name: MYHOSTNAME/anID 
SASRas        A CWWSA0005I: SecurityCurrent registered. 
SASRas        A CWWSA0006I: Security connection interceptor initialized. 
SASRas        A CWWSA0007I: Client request interceptor registered. 
SASRas        A CWWSA0008I: Server request interceptor registered. 
SASRas        A CWWSA0009I: IOR interceptor registered. 
NameServerImp I CWNMS0720I: Do Security service listener registration. 
SecurityCompo A CWSCJ0242A: Security service is starting 
UserRegistryI A CWSCJ0136I: Custom Registry:com.ibm.ws.security.registry.nt.
NTLocalDomainRegistryImpl has been initialized 
SecurityServe E CWSCJ0237E: One or more vital LTPAServerObject configuration 
attributes are null or not available. The attributes and values are password : 
LTPA password does exist, expiration time 30, private key <null>, public key <null>,
and shared key <null>.
Secure Sockets Layer (SSL) 構成に問題があると、以下のメッセージが発行される場合があります。 鍵ストアのロケーションと鍵ストアのパスワードが有効であるか確認する必要があります。 また、鍵ストアに有効な個人証明書があること、および個人証明書の公開鍵または認証局 (CA) ルートが抽出されてトラストストアに入れられていることを確認してください。
SASRas        A CWWSA0001I: Security configuration initialized.
SASRas        A CWWSA0002I: Authentication protocol: CSIV2/IBM 
SASRas        A CWWSA0003I: Authentication mechanism: SWAM 
SASRas        A CWWSA0004I: Principal name: MYHOSTNAME/aServerId 
SASRas        A CWWSA0005I: SecurityCurrent registered. 
SASRas        A CWWSA0006I: Security connection interceptor initialized. 
SASRas        A CWWSA0007I: Client request interceptor registered. 
SASRas        A CWWSA0008I: Server request interceptor registered. 
SASRas        A CWWSA0009I: IOR interceptor registered. 
SASRas        E CWWSA0026E: [SecurityTaggedComponentAssistorImpl.register] 
Exception connecting object to the ORB.  SSL 構成をチェックして、SSL keyStore と trustStore のプロパティーが正しく設定されていることを確認してください。  
問題が解決しない場合は、サポートに連絡して支援を得てください。
org.omg.CORBA.OBJ_ADAPTER: ORB_CONNECT_ERROR (5) - couldn't get Server Subcontract  minor code: 4942FB8F  completed: No

SDSF の使用

セキュリティー・コンポーネントのトラブルシューティングを行う場合は、システム表示/検索機能 (SDSF) を使用して、アクセスしようとしているリソースをホストするサーバーのログを参照します。 以下は、セキュリティー・サービスが正常に開始したサーバーから表示されるメッセージのサンプルです。

 +BBOM0001I com_ibm_authMechanisms_type_OID: No OID for this mechanism.
 +BBOM0001I com_ibm_security_SAF_unauthenticated: WSGUEST.
 +BBOM0001I com_ibm_security_SAF_EJBROLE_Audit_Messages_Suppress: 0.
 +BBOM0001I com_ibm_ws_logging_zos_errorlog_format_cbe: NOT SET, 280
 DEFAULT=0.
 +BBOM0001I com_ibm_CSI_performClientAuthenticationRequired: 0.
 +BBOM0001I com_ibm_CSI_performClientAuthenticationSupported: 1.
 +BBOM0001I com_ibm_CSI_performTransportAssocSSLTLSRequired: 0.
 +BBOM0001I com_ibm_CSI_performTransportAssocSSLTLSSupported: 1.
 +BBOM0001I com_ibm_CSI_rmiInboundPropagationEnabled: 1.
 +BBOM0001I com_ibm_CSI_rmiOutboundLoginEnabled: 0.
 +BBOM0001I com_ibm_CSI_rmiOutboundPropagationEnabled: 1.
 +BBOM0001I security_assertedID_IBM_accepted: 0.
 +BBOM0001I security_assertedID_IBM_sent: 0.
 +BBOM0001I security_disable_daemon_ssl: NOT SET, DEFAULT=0.
 +BBOM0001I security_sslClientCerts_allowed: 0.
 +BBOM0001I security_sslKeyring: NOT SET. 
 +BBOM0001I security_zOS_domainName: NOT SET.
 +BBOM0001I security_zOS_domainType: 0.
 +BBOM0001I security_zSAS_ssl_repertoire: SY1/DefaultIIOPSSL.
 +BBOM0001I security_EnableRunAsIdentity: 0.
 +BBOM0001I security_EnableSyncToOSThread: 0.
 +BBOM0001I server_configured_system_name: SY1.
 +BBOM0001I server_generic_short_name: BBOC001.
 +BBOM0001I server_generic_uuid:  457
  *** Message beginning with BBOO0222I apply to Java within ***
  *** WebSphere Application Server Security ***
 +BBOO0222I: SECJ6004I: Security Auditing is disabled.
 +BBOO0222I: SECJ0215I: Successfully set JAAS login provider 631
 configuration class to com.ibm.ws.security.auth.login.Configuration.
 +BBOO0222I: SECJ0136I: Custom 632
 Registry:com.ibm.ws.security.registry.zOS.SAFRegistryImpl has been  initialized
 +BBOO0222I: SECJ0157I: Loaded Vendor AuthorizationTable: 633
 com.ibm.ws.security.core.SAFAuthorizationTableImpl

セキュリティー関連の問題をトラブルシューティングするための一般的な方法

セキュリティー関連の問題をトラブルシューティングする際は、以下の質問が非常に役立ちます。
問題は、セキュリティーを使用不可にしたときに発生するか。
この質問は、問題がセキュリティーに関連しているかどうかを判別するのに適切な質問です。 ただし、問題がセキュリティーを使用可能にしたときに発生するということだけでは、必ずしもセキュリティーに問題があるとは限りません。 問題が本当にセキュリティーに関連していることを確認するために、さらにトラブルシューティングが必要です。
セキュリティーは正しく初期化されているか。
初期化中には、多くのセキュリティー・コードが使用されます。 そのため、問題が構成に関連しているものであれば、通常はまず初期化の時点で問題が発生します。

SystemOut.log 内に 生成される以下の一連のメッセージは、アプリケーション・サーバーの通常のコード初期化を示しています。 このシーケンスは構成によって異なりますが、メッセージは似たものになります。

SASRas        A CWWSA0001I: Security configuration initialized.
SASRas        A CWWSA0002I: Authentication protocol: CSIV2/IBM 
SASRas        A CWWSA0003I: Authentication mechanism: SWAM 
SASRas        A CWWSA0004I: Principal name: BIRKT20/pbirk 
SASRas        A CWWSA0005I: SecurityCurrent registered. 
SASRas        A CWWSA0006I: Security connection interceptor initialized. 
SASRas        A CWWSA0007I: Client request interceptor registered. 
SASRas        A CWWSA0008I: Server request interceptor registered. 
SASRas        A CWWSA0009I: IOR interceptor registered. 
NameServerImp I CWNMS0720I: Do Security service listener registration. 
SecurityCompo A CWSCJ0242A: Security service is starting 
UserRegistryI A CWSCJ0136I: Custom Registry:com.ibm.ws.security.registry.nt.
NTLocalDomainRegistryImpl has been initialized 
SecurityCompo A CWSCJ0202A: Admin application initialized successfully 
SecurityCompo A CWSCJ0203A: Naming application initialized successfully 
SecurityCompo A CWSCJ0204A: Rolebased authorizer initialized successfully 
SecurityCompo A CWSCJ0205A: Security Admin mBean registered successfully 
SecurityCompo A CWSCJ0243A: Security service started successfully 

SecurityCompo A CWSCJ0210A: Security enabled true 
SDSF アクティブ・ログ内に生成される以下の一連のメッセージは、 アプリケーション・サーバーの通常のコード初期化を示しています。 セキュリティー以外のメッセージは、 その後に続くシーケンスから除去されています。 このシーケンスは構成によって異なりますが、 メッセージは似たものになります。
 Trace: 2005/05/06 17:27:31.539 01 t=8E96E0 c=UNK key=P8 (13007002)
   ThreadId: 0000000a   
   FunctionName: printProperties 
   SourceId: com.ibm.ws390.orb.CommonBridge 
   Category: AUDIT
   ExtendedMessage: BBOJ0077I java.security.policy = /WebSphere/V6R1M0/AppServer/profiles/default/pr
Trace: 2005/05/06 17:27:31.779 01 t=8E96E0 c=UNK key=P8 (13007002) 
   ThreadId: 0000000a   
   FunctionName: printProperties 
   SourceId: com.ibm.ws390.orb.CommonBridge 
   Category: AUDIT
   ExtendedMessage: BBOJ0077I java.security.auth.login.config = /WebSphere/V6R1M0/AppServer/profiles/default/pr
Trace: 2005/05/06 17:27:40.892 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.SecurityDM
   SourceId: com.ibm.ws.security.core.SecurityDM
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0231I: The Security component's FFDC Diagnostic Module com.ibm.ws.security.core.Secur
red successfully: true. 
 Trace: 2005/05/06 17:27:40.892 01 t=8E96E0 c=UNK key=P8 (0000000A) 
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0231I: The Security component's FFDC Diagnostic Module com.ibm.ws.security.core.Securit
d successfully: true. 
 Trace: 2005/05/06 17:27:41.054 01 t=8E96E0 c=UNK key=P8 (13007002) 
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.audit.AuditServiceImpl 
   SourceId: com.ibm.ws.security.audit.AuditServiceImpl 
   Category: AUDIT
   ExtendedMessage: BBOO0222I: SECJ6004I: Security Auditing is disabled. 
 Trace: 2005/05/06 17:27:41.282 01 t=8E96E0 c=UNK key=P8 (13007002) 
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.distSecurityComponentImpl 
   SourceId: com.ibm.ws.security.core.distSecurityComponentImpl   
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0309I: Java 2 Security is disabled.  
 Trace: 2005/05/06 17:27:41.282 01 t=8E96E0 c=UNK key=P8 (0000000A)   
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0309I: Java 2 Security is disabled.   
 Trace: 2005/05/06 17:27:42.239 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.auth.login.Configuration
   SourceId: com.ibm.ws.security.auth.login.Configuration
   Category: AUDIT
   ExtendedMessage: BBOO0222I: SECJ0215I: Successfully set JAAS login provider configuration class to com.ibm.ws.securit
Configuration.  
 Trace: 2005/05/06 17:27:42.253 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.distSecurityComponentImpl 
   SourceId: com.ibm.ws.security.core.distSecurityComponentImpl   
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0212I: WCCM JAAS configuration information successfully pushed to login provider clas
Trace: 2005/05/06 17:27:42.254 01 t=8E96E0 c=UNK key=P8 (0000000A)   
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0212I: WCCM JAAS configuration information
           successfully pushed to login provider class.
 Trace: 2005/05/06 17:27:42.306 01 t=8E96E0 c=UNK key=P8 (13007002) 
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.distSecurityComponentImpl 
   SourceId: com.ibm.ws.security.core.distSecurityComponentImpl   
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0240I: Security service initialization
          completed successfully
 Trace: 2005/05/06 17:27:42.306 01 t=8E96E0 c=UNK key=P8 (0000000A)   
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0240I: Security service initialization
           completed successfully
 Trace: 2005/05/06 17:27:42.952 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.objectpool.ObjectPoolService  
   SourceId: com.ibm.ws.objectpool.ObjectPoolService   
   Category: INFO
   ExtendedMessage: BBOO0222I: OBPL0007I: Object Pool Manager service is disabled.  
Trace: 2005/05/06 17:27:53.512 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.registry.UserRegistryImpl
   SourceId: com.ibm.ws.security.registry.UserRegistryImpl
   Category: AUDIT
   ExtendedMessage: BBOO0222I: SECJ0136I: Custom Registry:com.ibm.ws.security.registry.zOS.SAFRegistryImpl has been init
Trace: 2005/05/06 17:27:55.229 01 t=8E96E0 c=UNK key=P8 (13007002)   
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.role.PluggableAuthorizationTableProxy 
   SourceId: com.ibm.ws.security.role.PluggableAuthorizationTableProxy  
   Category: AUDIT
   ExtendedMessage: BBOO0222I: SECJ0157I: Loaded Vendor AuthorizationTable: com.ibm.ws.security.core.SAFAuthorizationTab
Trace: 2005/05/06 17:27:56.481 01 t=8E96E0 c=UNK key=P8 (13007002) 
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.distSecurityComponentImpl 
   SourceId: com.ibm.ws.security.core.distSecurityComponentImpl   
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0243I: Security service started successfully   
 Trace: 2005/05/06 17:27:56.481 01 t=8E96E0 c=UNK key=P8 (0000000A) 
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0243I: Security service started successfully  
 Trace: 2005/05/06 17:27:56.482 01 t=8E96E0 c=UNK key=P8 (13007002)  
   ThreadId: 0000000a   
   FunctionName: com.ibm.ws.security.core.distSecurityComponentImpl 
   SourceId: com.ibm.ws.security.core.distSecurityComponentImpl   
   Category: INFO
   ExtendedMessage: BBOO0222I: SECJ0210I: Security enabled true  
 Trace: 2005/05/06 17:27:56.483 01 t=8E96E0 c=UNK key=P8 (0000000A)   
   Description: Log Boss/390 Error
   from filename: ./bborjtr.cpp
   at line: 932   
   error message: BBOO0222I: SECJ0210I: Security enabled true  
スタック・トレースまたは例外がシステム・ログ・ファイルに出力されているか。
単一のスタック・トレースで問題について多くのことがわかります。失敗したコードを開始したのはどのコードか。失敗したコンポーネントはどれか。 失敗が実際にどのクラスで発生したか。問題の解決に必要なものがスタック・トレースだけであり、スタック・トレースで根本原因を特定できる場合もあります。または、スタック・トレースが手掛かりにしかならない場合や、実際には誤った方向に導く場合もあります。 サポート部門でスタック・トレースを分析する際、問題が何であるか明確でないときには追加のトレースが要求される場合があります。 問題がセキュリティー関連であると判断され、 スタック・トレースまたは問題の説明から解決法を決定できない場合は、 関連するすべてのプロセスから SASRas=all=enabled:com.ibm.ws.security.*=all=enabledトレース仕様を収集するように求められます。
分散セキュリティー問題か、ローカル・セキュリティー問題か。
  • 問題がローカルである場合、つまり関係するコードがリモート・メソッド呼び出しを行わない場合は、トラブルシューティングは単一のプロセスに切り分けられます。 コンポーネントの中でも、特にオブジェクト・リクエスト・ブローカー (ORB) の振る舞いはローカルと分散のいずれであるかによって異なるため、問題がどちらであるかを知ることは重要です。 リモート・メソッド呼び出しが行われると、完全に異なるセキュリティー・コード・パスに入ります。
  • [この情報が適用されるのはバージョン 6.0.x と、バージョン 6.1 セルに統合された以前のサーバーだけです。] 複数のサーバーが問題に関係していることがわかっている場合は、トラブルシューティングの手法は異なります。関係するすべてのサーバーを同時にトレースし、問題に関するクライアント・サイドおよびサーバー・サイドの情報がトレースに示されるようにする必要があります。 2 つの異なるプロセスから要求と応答の対を見つけることができるように、すべてのマシンのタイム・スタンプをできるだけ一致させるようにします。 トレース仕様 SASRas=all=enabled:com.ibm.ws.security.*=all=enabled を使用して、Secure Authentication Service (SAS) または z/SAS と、セキュリティー・トレースの両方を使用可能にします。

    トレースの使用可能化について詳しくは、 トレースの使用可能化を参照してください。

    トレースの使用可能化について詳しくは、トレースの操作を参照してください。

問題は認証または許可に関連しているか。
ほとんどのセキュリティー問題は、これらの 2 つのカテゴリーのいずれかに分類されます。 認証は、呼び出し元を確認するプロセスです。 許可は、要求されたメソッドを呼び出すための適切な権限が呼び出し元にあるかどうかを検証するプロセスです。 認証が失敗した場合、通常は、認証プロトコル、認証メカニズムまたはユーザー・レジストリーのいずれかが関連しています。 許可が失敗した場合、通常は、アセンブリーおよびデプロイメントからのアプリケーション・バインディング、およびメソッドにアクセスしている呼び出し元の ID と、メソッドに必要な役割が関連しています。
Web 要求か EJB 要求か。

Web 要求と Enterprise JavaBeans (EJB) 要求はコード・パスが完全に異なります。 Web 要求には EJB 要求とは異なるセキュリティー・フィーチャーがあり、解決に必要な知識の内容はまったく異なります。 例えば、Lightweight Third Party Authentication (LTPA) 認証メカニズムを使用する場合、Web 要求にはシングル・サインオン (SSO) フィーチャーを使用できますが、EJB 要求には使用できません。 プロトコルの違いにより、Web 要求には EJB 要求に必要のない HTTP ヘッダー情報が含まれています。 また、プロセス全体に Web コンテナーまたはサーブレット・エンジンが関係しています。 これらのコンポーネントのいずれもが問題に関係する可能性があるため、要求のタイプおよび失敗が発生した箇所に基づいて、トラブルシューティング時にはすべてを考慮する必要があります。

セキュアな EJB 要求は RMI/IIOP プロトコル経由で送信されるため、この要求には ORB コンポーネントおよびネーミング・コンポーネントが大きく関係しています。さらに、作業負荷マネージャー (WLM) が使用可能になっている場合は、コード内のその他の振る舞いの変更を監視できます。 この環境では、セキュリティーが適切に動作するように、これらのコンポーネントがすべて密接に相互作用します。場合によっては、この領域の問題をトラブルシューティングするために、これらのコンポーネントのいずれか、またはすべてのトレースが必要になります。

[この情報が適用されるのはバージョン 6.0.x と、バージョン 6.1 セルに統合された以前のサーバーだけです。] 最初のトレース仕様は SASRas=all=enabled:com.ibm.ws.security.*=all=enabled です。 SAS/Security トレースで問題を特定できない場合は、ORB トレースも非常に有用です。

問題は Secure Sockets Layer (SSL) に関連していると考えられるか?

SSL は、完全に独立した別個のセキュリティー・レイヤーです。 SSL の問題のトラブルシューティングは、認証および許可の問題のトラブルシューティングとは別のものであり、いくつもの考慮事項があります。 通常、SSL の問題は、構成の難しさによる初回セットアップの問題です。 各クライアントにはサーバーの署名者証明書が格納されている必要があります。 相互認証の際、各サーバーにクライアントの署名者証明書がなければなりません。 また、プロトコルの相違 (SSLv3 と Transport Layer Security (TLS))、および失効した相互運用オブジェクト参照 (IOR)、つまり、サーバー再始動前のポートを反映しているサーバーの IOR に関連したリスナー・ポート問題の可能性もあります。

[Windows]
[この情報は、Microsoft Windows Vista オペレーティング・システムで稼動するバージョン 6.1.0.9 以降のものにだけ適用されます。] Microsoft® Windows Vista™ オペレーティング・システム上で SSLv3 プロトコルを使用する上での制限: Microsoft Windows Vista オペレーティング・システム上のクライアント・ブラウザーおよび WebSphere Application Server の両方の Secure Sockets Layer (SSL) 構成に SSLv3 プロトコルのみが構成されている場合、サーバーおよびクライアントの両方に SSLv3 AES 暗号のみを使用すると、SSL 接続に失敗することがあります。
SSL 問題については、SSL ハンドシェークで起こっていることを確認するために、SSL トレースが必要になる場合があります。 SSL ハンドシェークは、クライアントがサーバーとのソケットをオープンする際に発生するプロセスです。 鍵交換や暗号の交換などで問題が起きると、ハンドシェークは失敗し、ソケットは有効になりません。 JSSE (WebSphere Application Server で使用される SSL の実装) のトレースには以下のステップがあります。
  • クライアント・プロセスおよびサーバー・プロセスにシステム・プロパティー -Djavax.net.debug=true を設定する。 サーバーの場合は、 システム・プロパティーを Java 仮想マシン設定ページの「汎用 JVM 引数」プロパティーに追加します。
  • ORB トレースもオンにします。
  • 問題を再現する。
    両方のプロセスの SystemOut.log に JSSE トレースが含まれています。 次の例のようなトレースが出力されます。
    SSLConnection: install <com.ibm.sslite.e@3ae78375> 
    >> handleHandshakeV2 <com.ibm.sslite.e@3ae78375>
    >> handshakeV2 type = 1
    >> clientHello: SSLv2.
    SSL client version: 3.0
    ... 
    ... 
    ... 
    JSSEContext: handleSession[Socket[addr=null,port=0,localport=0]]
    
    << sendServerHello.
    SSL version: 3.0
    SSL_RSA_WITH_RC4_128_MD5
    HelloRandom
    ... 
    ... 
    ... 
    << sendCertificate.
    << sendServerHelloDone.
    >> handleData <com.ibm.sslite.e@3ae78375>
    >> handleHandshake <com.ibm.sslite.e@3ae78375>
    >> handshakeV3 type = 16
    
    >> clientKeyExchange.
    >> handleData <com.ibm.sslite.e@3ae78375>
    >> handleChangeCipherSpec <com.ibm.sslite.e@3ae78375>
    >> handleData <com.ibm.sslite.e@3ae78375>
    >> handleHandshake <com.ibm.sslite.e@3ae78375>
    >> handshakeV3 type = 20
    >> finished.
    << sendChangeCipherSpec.
    << sendFinished.
    

トレースのセキュリティー

WebSphere Application Server セキュリティーを実装するクラスは次のとおりです。
  • com.ibm.ws.security.*
  • com.ibm.websphere.security.*
  • com.ibm.WebSphereSecurityImpl.*
  • SASRas
  • Virtual Member Manager (VMM) リポジトリーでトレースするための com.ibm.ws.wim.*
セキュリティーのランタイムの振る舞いに関する詳細な情報を表示するには、 以下のコンポーネントについてトレースを使用可能にするとともに、 出力を見直します。
  • com.ibm.ws.security.*=all=enabled:com.ibm.WebSphereSecurityImpl.*= all=enabled:com.ibm.websphere.security.*=all=enabled。このトレース・ステートメントはセキュリティー・ランタイム用のトレースを収集します。
  • com.ibm.ws.console.security.*=all=enabled。このトレー ス・ステートメントは、セキュリティー・センター管理コンソール用のトレースを収集します。
  • [この情報が適用されるのはバージョン 6.0.x と、バージョン 6.1 セルに統合された以前のサーバーだけです。] SASRas=all=enabled。このトレース・ステートメントは、 SAS (下位の認証ロジック) のトレースを収集します。
  • com.ibm.ws.wim.*=all=enabled:com.ibm.websphere.wim.*=all=enabled。 このトレース・ステートメントは VMM 用のトレースを収集します。
[この情報が適用されるのはバージョン 6.0.x と、バージョン 6.1 セルに統合された以前のサーバーだけです。]
SAS トレースの微調整:
SAS/CSIv2 コンポーネントについてクラスのサブセットをトレースする必要がある場合は、 以下のように複数のクラス名をコンマで区切って、システム・プロパティーを指定できます。com.ibm.CORBA.securityTraceFilter=SecurityConnectionInterceptorImpl, VaultImpl, ...
セキュリティーのトレースの微調整:
パッケージのサブセットをトレースする必要がある場合は、com.ibm.ws.security.*=all=enabled よりも詳細なトレース仕様を指定します。 例えば、動的ポリシー・コードのみをトレースするには、com.ibm.ws.security.policy.*=all=enabled を指定します。 動的ポリシーのトレースを使用不可にするには、com.ibm.ws.security.policy.*=all=disabled を指定します。
CSIv2、または SAS トレース設定の構成
CSIv2 または SAS 認証プロトコルのトレースを調べると、難しい問題のトラブルシューティングに役立つ場合があります。 このセクションでは、CSIv2 と SAS トレースを使用可能にする方法について説明します。
クライアント・サイドの CSIv2 と SAS トレースの使用可能化
ピュア・クライアント上で CSIv2 と SAS トレースを使用可能にするには、以下のステップを実行する必要があります。
  • /WebSphere/AppServer/properties ディレクトリーの TraceSettings.properties ファイルを編集します。
  • このファイルで、traceFileName= が出力ファイルの作成先となるパスを指すように変更します。 それぞれのサブディレクトリーの間に二重の円記号 (¥¥) を入れるようにしてください。例えば、traceFileName=c:¥¥WebSphere¥¥AppServer¥¥logs¥¥sas_client.log のようになります。
  • このファイルに、トレース仕様ストリング SASRas=all=enabled を追加します。 追加のトレース・ストリングは、別々の行に追加できます。
  • クライアント・アプリケーション内から、このファイルを参照します。クライアントを立ち上げる Java コマンド行で、システム・プロパティー -DtraceSettingsFile=TraceSettings.properties を追加します。
    注: TraceSettings.properties ファイルには、完全修飾パスを指定しないでください。 クラスパスに TraceSettings.properties ファイルがあることを確認してください。
サーバー・サイドの CSIv2 と SAS トレースの使用可能化
アプリケーション・サーバーで SAS トレースを使用可能にするには、以下を実行します。
  • トレース仕様 SASRas=all=enabledserver.xml ファイルに追加するか、 または WebConsole GUI 内でトレース設定に追加します。
  • 通常、これは、認証プロトコル・ランタイムに加えて、認証セキュリティー・ランタイムもトレースする最適な方法です。 これを行うには、SASRas=all=enabled:com.ibm.ws.security.*=all=enabled の 2 つのトレース仕様を組み合わせて使用します。
  • 接続タイプ問題のトラブルシューティング時には、 CSIv2 と SAS または CSIv2 と z/SAS および ORB の両方をトレースすると役立 ちます。 これを行うには、SASRas=all=enabled:com.ibm.ws.security.*=all=enabled:ORBRas=all=enabled の 3 つのトレース仕様を使用します。
  • これらのトレース仕様に加えて、ORB トレースには、同様に設定が必要ないくつかのシステム・プロパティーがあります。 GUI の ORB 設定に進み、com.ibm.CORBA.Debug=true および com.ibm.CORBA.CommTrace=true の 2 つのプロパティーを追加してください。

CSIv2 CORBA マイナー・コード

クライアントまたはサーバーのセキュリティー・コード内で起こる例外はすべて、 結局は Common Object Request Broker Architecture (CORBA) 例外になります。 したがって、どのような例外が発生しても、それは CORBA 例外に組み込まれます。これは、セキュリティー・サービスが独自のプロセス間通信に CORBA アーキテクチャーを使用するためです。 CORBA 例外は一般的であり、2 つのコンポーネント間の通信における問題を示します。 CORBA マイナー・コードはそれよりも具体的で、 コンポーネントが要求を完了できなかった根底の理由を示します。

次に示すのは、クライアントが認証など、 セキュリティー関連の要求を実行した後に受け取ることがある CORBA マイナー・コードです。 ここには、マイナー・コードが表示される CORBA 例外タイプも示されています。

以下の例外は CORBA 例外の一例で、マイナー・コードは 49424300 であり、認証障害を示します。 通常、例外には記述メッセージも組み込まれていて、 問題のトラブルシューティングに役立ちます。この場合、詳細なメッセージは、「Exception caught invoking authenticateBasicAuthData from SecurityServer for user jdoe.Reason: com.ibm.WebSphereSecurity.AuthenticationFailedException」となります。 これは、ユーザー jdoe に対する認証が失敗したことを示しています。

例外の完了フィールドには、メソッドが完了したかどうかが示されます。 NO_PERMISSION の場合は、メッセージが呼び出されないため、 状況は常に completed:No です。サーバー・サイドでキャッチされるその他の例外では、完了状況は「Maybe」または「Yes」となります。

org.omg.CORBA.NO_PERMISSION: Caught WSSecurityContextException in
WSSecurityContext.acceptSecContext(),
reason: Major Code[0] Minor Code[0] Message[Exception caught invoking
authenticateBasicAuthData from SecurityServer for user jdoe.  Reason:
com.ibm.WebSphereSecurity.AuthenticationFailedException]  minor code: 49424300 
completed: No

at com.ibm.ISecurityLocalObjectBaseL13Impl.PrincipalAuthFailReason.map_auth_fail_to_minor_code(PrincipalAuthFailReason.java:83)
at com.ibm.ISecurityLocalObjectBaseL13Impl.CSIServerRI.receive_request(CSIServerRI.java:1569)
at com.ibm.rmi.pi.InterceptorManager.iterateReceiveRequest(InterceptorManager.java:739)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:398)
        at com.ibm.rmi.iiop.ORB.process(ORB.java:313)
        at com.ibm.CORBA.iiop.ORB.process(ORB.java:1581)
        at com.ibm.rmi.iiop.GIOPConnection.doWork(GIOPConnection.java:1827)
        at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:81)
        at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:91)
        at com.ibm.ws.util.CachedThread.run(ThreadPool.java:149)

次の表に示すのは、クライアントが認証などのセキュリティー関連要求を 実行した後に受け取ることがある CORBA マイナー・コードです。 ここには、マイナー・コードが表示される CORBA 例外タイプも含まれています。

表 1.
マイナー・コード名 マイナー・コード値 (16 進数) 例外タイプ (すべてパッケージ org.omg.CORBA.* 内にある) マイナー・コードの説明 再試行の実行 (authenticationRetryEnabled = true の場合)
AuthenticationFailed 49424300 NO_PERMISSION このコードは、一般的な認証障害エラーです。 ユーザー ID またはパスワードが有効かどうかについての詳細は提供されません。 このタイプのエラー・コードを使用できるユーザー・レジストリーもありますが、 もっと詳細な次の 3 つのタイプの使用を選択するレジストリーもあります。 はい
InvalidUserid 49424301 NO_PERMISSION このコードは、レジストリーが不正なユーザー ID を戻した場合に発生します。 はい
InvalidPassword 49424302 NO_PERMISSION このコードは、レジストリーが不正なパスワードを戻した場合に発生します。 はい
InvalidSecurityCredentials 49424303 NO_PERMISSION これは、何らかの理由でクレデンシャルが無効であることを示す一般エラーです。 属性が正しく設定されていない可能性があります。 クライアントが BasicAuth クレデンシャルを持っている場合は、 あり (トークン・ベースのクレデンシャルは最初に拒否されます)。
InvalidRealm 49424304 NO_PERMISSION このコードは、クライアントから受け取ったトークンの REALM が、 サーバーの現行レルムと一致しない場合に発生します。 いいえ
ValidationFailed 49424305 NO_PERMISSION 妥当性検査失敗は、 トークンがクライアントまたはサーバーからターゲット・サーバーに送信されたものの、 トークンのフォーマットまたは有効期限が無効である場合に起こります。 クライアントが BasicAuth クレデンシャルを持っている場合は、 あり (トークン・ベースのクレデンシャルは最初に拒否されます)。
CredentialTokenExpired 49424306 NO_PERMISSION このコードは、妥当性検査が失敗した理由をより詳しく説明したものです。 この場合、トークンは絶対存続時間を持っており、この存続時間は有効期限切れとなっています。 したがって、このトークンは有効ではなくなり、使用できません。 クライアントが BasicAuth クレデンシャルを持っている場合は、 あり (トークン・ベースのクレデンシャルは最初に拒否されます)。
InvalidCredentialToken 49424307 NO_PERMISSION この例外は、妥当性検査が失敗した理由をより詳しく説明したものです。 この場合は、トークンを暗号化解除できないか、 トークン内のデータを読み取れないかのいずれかです。 クライアントが BasicAuth クレデンシャルを持っている場合は、 あり (トークン・ベースのクレデンシャルは最初に拒否されます)。
SessionDoesNotExist 49424308 NO_PERMISSION このコードは、CSIv2 セッションがサーバー上に存在しないことを示しています。 通常は、再試行が自動的に行われ、新規セッションが正常に作成されます。 はい
SessionConflictingEvidence 49424309 NO_PERMISSION この例外は、 クライアントが送信した context_id と一致するセッションがサーバー上に既に存在していることを示しています。 ただし、この EstablishContext メッセージにクライアントが提供した情報が、 そのセッションの確立のために最初に提供された情報とは異なります。 はい
SessionRejected 4942430A NO_PERMISSION この例外は、クライアントが参照したセッションが、 以前にサーバーに拒否されたことがあることを示しています。 はい
SecurityServerNotAvailable 4942430B NO_PERMISSION このエラーが発生するのは、サーバーが、 認証または妥当性検査のためにローカルまたはリモートのセキュリティー・サーバーに接続できない場合です。 いいえ
InvalidIdentityToken 4942430C NO_PERMISSION このエラーは、ID アサーションが使用可能になっているときに、識別トークンから識別が取得できないことを示しています。 いいえ
IdentityServerNotTrusted 4942430D NO_PERMISSION このコードは、送信サーバーのサーバー ID が、 ターゲット・サーバーのトラステッド・プリンシパル・リストにないことを示しています。 いいえ
InvalidMessage 4942430E NO_PERMISSION このコードは、 CSIv2 メッセージ・フォーマットが受信サーバーでは無効であることを示しています。 いいえ
AuthenticationNotSupported 49421090 NO_PERMISSION このエラーが発生するのは、 メカニズムが認証をサポートしていない場合です (ほとんどないケースです)。 いいえ
InvalidSecurityMechanism 49421091 NO_PERMISSION これは、 指定されたセキュリティー・メカニズムが不明であることを示すのに使用されます。 いいえ
CredentialNotAvailable 49421092 NO_PERMISSION これは、クレデンシャルが必要なときに利用できないことを示しています。 いいえ
SecurityMechanismNotSupported 49421093 NO_PERMISSION このエラーが発生するのは、 CSIv2 トークンで指定したセキュリティー・メカニズムが、サーバー上で実装されていない場合です。 いいえ
ValidationNotSupported 49421094 NO_PERMISSION このエラーが発生するのは、 メカニズムが LocalOS などの妥当性検査をサポートしていない場合です。 LocalOS クレデンシャルは転送できないため、このエラーが起こるはずはなく、 したがって、このクレデンシャルでは、妥当性検査の呼び出しが必要になることはありません。 いいえ
CredentialTokenNotSet 49421095 NO_PERMISSION これは、クレデンシャル内のトークンがヌルであることを示すために使用されます。 いいえ
ServerConnectionFailed 494210A0 COMM_FAILURE このエラーが使用されるのは、接続の試みに失敗した場合です。 あり (ORB 再試行を介して)
CorbaSystemException 494210B0 INTERNAL このコードは、システム・コードでの CORBA 固有の一般例外です。 いいえ
JavaException 494210B1 INTERNAL これは一般エラーで、予期しない Java 例外が発生したことを示しています。 いいえ
ValueIsNull 494210B2 INTERNAL このコードは、 渡された値またはパラメーターがヌルであったことを示すために使用されます。 いいえ
EffectivePolicyNotPresent 494210B3 INTERNAL これは、CSIv2 で有効なポリシー・オブジェクトが存在しないことを示しています。 このオブジェクトは、指定されたセキュリティー構成フィーチャーを判別するために使用されます。 いいえ
NullPointerException 494210B4 INTERNAL これは、 実行時に NullPointerException がキャッチされたことを示す場合に使用されます。 いいえ
ErrorGettingClassInstance 494210B5 INTERNAL これは、クラスを動的にロードする際に問題があることを示しています。 いいえ
MalFormedParameters 494210B6 INTERNAL これは、パラメーターが無効であることを示しています。 いいえ
DuplicateSecurityAttributeType 494210B7 INTERNAL これは、set_attributes オペレーション中に、重複クレデンシャル属性が指定されたことを示します。 いいえ
MethodNotImplemented 494210C0 NO_IMPLEMENT これは、呼び出されたメソッドが実装されていないことを示します。 いいえ
GSSFormatError 494210C5 BAD_PARAM このコードは、Generic Security Service (GSS) エンコードまたはデコード・ルーチンで例外が作成されたことを示します。 いいえ
TagComponentFormatError 494210C6 BAD_PARAM このコードは、タグ・コンポーネントを正しく読み取れないことを示しています。 いいえ
InvalidSecurityAttributeType 494210C7 BAD_PARAM このコードは、set_attributes オペレーション中に指定した属性タイプが、無効なタイプであることを示しています。 いいえ
SecurityConfigError 494210CA INITIALIZE このコードは、クライアント構成とサーバー構成の間に問題が存在することを示しています。 いいえ

IBM サポートから入手可能な既知の問題およびその解決法に関する最新の情報については、IBM サポート・ページを参照してください。

IBM サポートの資料を利用すると、 この問題の解決に必要な情報収集の時間を節約できます。 PMR を開く前に、IBM サポート・ページを参照してください。




関連タスク
セキュリティー構成のトラブルシューティング
関連資料
インストールの問題
参照トピック    

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

最終更新: Jan 21, 2008 5:05:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/rtrb_securitycomp.html