Dicas de resolução de problemas de componentes de segurança
Este documento explica os recursos básicos e as etapas para diagnosticar problemas relacionados à segurança no WebSphere Application Server.
Quais Arquivos de log consultar e o que procurar neles.
- O que consultar e o que procurar em Utilizando SDSF.
- Abordagem geral para resolução de problemas relacionados à segurança para isolar e resolver problemas de segurança.
- Quando e como Segurança de Rastreio.
Definindo o Rastreio de Componente (CTRACE) é um tópico que irá ajudá-lo com suas atividades de rastreio.
Uma visão geral e uma tabela de Códigos Secundários CSIv2 CORBA.
- Erros e problemas de acesso depois de ativar a segurança
Depois de ativar a segurança, uma degradação no desempenho é realizada. Consulte Ativando a segurança global para obter informações sobre a utilização dos arquivos de políticas irrestritos.
- Erros depois de desativar SSL ou mensagens de erro relacionadas à SSL
Erros ao tentar configurar e ativar a segurança
Se nenhuma destas etapas resolver o problema, verifique se o problema foi identificado e documentado utilizando os links no artigo Diagnosticando e Corrigindo Problemas: Recursos para Aprendizagem.
Se não encontrar
um problema semelhante ao seu, ou se as informações fornecidas não
solucionarem seu problema, consulte a ajuda para Resolução de Problemas da IBM para obter mais assistência.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Arquivos de 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: 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
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
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>.
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. Check the SSL configuration to ensure
that the SSL keyStore and trustStore properties are set properly. If the problem
persists, contact support for assistance. org.omg.CORBA.OBJ_ADAPTER:
ORB_CONNECT_ERROR (5) - couldn't get Server Subcontract minor code:
4942FB8F completed: No
Utilizando SDSF
Para a resolução de problemas do componente de segurança, utilize o SDSF (System Display and Search Facility) para procurar registro do servidor hospedando o recurso que está tentando acessar. A amostra de mensagens a seguir ajuda a ver um servidor no qual o serviço de segurança foi iniciado com êxito:
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
+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
![[z/OS]](../images/ngzos.gif)
BBOM0001I security_zOS_domainName: NOT SET.
BBOM0001I security_zOS_domainType: 0.
BBOM0001I security_SMF_record_first_auth_user: NOT SET, DEFAULT=1.
BBOJ0077I: java.security.policy = /WebSphere/V8R5/AppServer/profil
BBOJ0077I: es/default/properties/server.pol
BBOJ0077I: icy
BBOJ0077I: java.security.auth.login.config = /WebSphere/V8R5/AppServer
BBOJ0077I: /profiles/default/properties/wsj
BBOJ0077I: aas.conf
BBOO0222I: SECJ6004I: Security Auditing is disabled.
BBOO0222I: SECJ0215I: Successfully set JAAS login provider
configuration class to com.ibm.ws.security.auth.login.Configuration.
BBOO0222I: JSAS0001I: Security configuration initialized.
BBOO0222I: JSAS0003I: Authentication mechanism: LTPA
BBOO0222I: JSAS0004I: Principal name: DEFAULT/CBSYMSR1
BBOO0222I: JSAS0006I: Security connection interceptor initialized.
BBOO0222I: JSAS0009I: IOR interceptor registered.
BBOO0222I: SECJ0136I: Custom
Registry:com.ibm.ws.security.registry.zOS.SAFRegistryImpl has been
initialized
BBOO0222I: SECJ6214I: SAF authorization is enabled.
BBOO0222I: ACWA0002I: WorkArea service not enabled on server1.
BBOO0222I: SECJ6216I: SAF delegation is enabled.
BBOO0222I: SECJ6216I: SAF delegation is enabled.
BBOO0222I: SECJ6216I: SAF delegation is enabled.
BBOO0222I: SRVE0169I: Loading Web Module: WIM.
BBOO0222I: CHFW0019I: The Transport Channel Service has started chain
WCInboundAdmin.
BBOO0222I: CHFW0019I: The Transport Channel Service has started chain
WCInboundDefault.
BBOO0222I: CHFW0019I: The Transport Channel Service has started chain
WCInboundAdminSecure.
BBOO0222I: CHFW0019I: The Transport Channel Service has started chain
WCInboundDefaultSecure.
BBOO0222I: WSVR0001I: Server SERVANT PROCESS server1 open for
e-business
BBOO0020I INITIALIZATION COMPLETE FOR WEBSPHERE FOR Z/OS SERVANT
PROCESS BBOS001.
./bborjtr.cpp+953 ... BBOO0222I: SECJ0231I: The Security component's FFDC Diagnostic Module com.ibm.ws.security.core.Sec
urityDM registered
successfully: true.
BossLog: { 0013} 2013/07/12 16:46:00.104 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... BBOO0222I: SECJ0309I: o Java 2 Security foi desativado.
BossLog: { 0014} 2013/07/12 16:46:00.143 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... BBOO0222I: SECJ0212I: WCCM JAAS configuration information successfully pushed to login provider
.
BossLog: { 0015} 2013/07/12 16:46:00.258 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... BBOO0222I: SECJ0240I: Security service initialization completed successfully
BossLog: { 0016} 2013/07/12 16:46:00.448 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... FFDC0009I: FFDC opened incident stream file /WebSphere/V8R5/AppServer/profiles/default/logs/ffdc/S
Y1_SY1_server1_STC
00042_BBOS001S_06.07.12_16.46.00_0.txt
BossLog: { 0017} 2013/07/12 16:46:00.532 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... FFDC0010I: FFDC closed incident stream file /WebSphere/V8R5/AppServer/profiles/default/logs/ffdc/S
Y1_SY1_server1_STC
00042_BBOS001S_06.07.12_16.46.00_0.txt
./bborjtr.cpp+953 ... BBOO0222I: SECJ0243I: Security service started successfully
BossLog: { 0035} 2013/07/12 16:46:24.670 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
./bborjtr.cpp+953 ... BBOO0222I: SECJ0210I: Security enabled true
BossLog: { 0036} 2013/07/12 16:46:24.795 01 SYSTEM=SY1 SERVER=BBOS001 PID=0X02010022 TID=0X266AF610 00000000 c=UNK
Abordagem geral para resolução de problemas relacionados à segurança
- O problema ocorre quando a segurança está desativada?
- Essa questão é um bom teste decisivo para determinar se um problema está relacionado à segurança. No entanto, simplesmente porque um problema ocorre somente quando a segurança está ativada, nem sempre isso o torna um problema de segurança. Mais investigação é necessária para assegurar que o problema esteja realmente relacionado à segurança.
- Parece que a segurança iniciou corretamente?
- Muito código de segurança é visitado durante a inicialização. Assim, é possível ver os problemas lá primeiro, caso eles sejam
relacionados à configuração.
A sequência a seguir das mensagens geradas no SystemOut.log indica uma inicialização de código normal de um servidor de aplicativos. Ela varia com base na configuração, mas as mensagens são semelhantes:
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
A seqüência a seguir das mensagens geradas no log ativo do SDSF indica uma inicialização de código normal de um servidor de aplicativos. As mensagens que não se referem à segurança foram removidas da sequência a seguir. Ela irá variar com base na configuração, mas as mensagens são semelhantes:Trace: 2013/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/V8R5M0/AppServer/profiles/default/pr Trace: 2013/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/V8R5M0/AppServer/profiles/default/pr Trace: 2013/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: 2013/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: 2013/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: 2013/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: 2013/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 mensagem de erro: BBOO0222I: SECJ0309I: O Java 2 Security está desativado. Trace: 2013/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: 2013/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: 2013/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: 2013/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: 2013/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: 2013/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 está desativado. Trace: 2013/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: 2013/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: 2013/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: 2013/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: 2013/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: 2013/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 mensagem de erro: BBOO0222I: SECJ0210I: Segurança ativou true
- Existe um rastreio de pilha ou exceção impressa no arquivo de log do sistema?
- Um único rastreio de pilha indica muitas coisas sobre o problema. Qual código iniciou o código que falhou? Qual é o componente em falha? De que classe a falha realmente veio? Às vezes, apenas o rastreio de pilha é necessário para solucionar o problema e ele pode determinar a causa raiz. Outras vezes, ele fornece apenas uma pista e pode, na verdade, ser enganoso. Quando o pessoal de suporte analisa um rastreio de pilha, eles podem solicitar rastreio adicional se não estiver claro qual é o problema. Se ele se parecer com um problema relacionado a segurança e a solução não puder ser determinada a partir do rastreio de pilha ou da descrição de problema, você será solicitado a obter a seguinte especificação de rastreio: SASRas=all=enabled:com.ibm.ws.security.*=all=enabled a partir de todos os processos envolvidos.
- Esse é um problema de segurança distribuída ou um problema de segurança local?
- Se o problema for local, ou seja, o código envolvido não faz uma chamada de método remota, então a resolução de problemas é isolada a um único processo. É importante saber quando um problema é local ou distribuído, porque o comportamento do ORB (object request broker), entre outros componentes, é diferente nos dois casos. Quando uma chamada de método remoto ocorre, um caminho de código de segurança completamente diferente é inserido.
- Quando você sabe que o problema envolve dois ou mais servidores, as técnicas de resolução de problemas mudam. Será necessário rastrear todos os servidores envolvidos simultaneamente
para que o rastreio mostre os lados do cliente e do servidor do problema. Verifique se as timestamps em todas as máquinas correspondem tudo o que é
possível de modo que seja possível localizar o par pedido e resposta a
partir de dois processos diferentes. Ative o SAS (Secure Authentication Services) ou z/SAS e o rastreio de
segurança utilizando a especificação de rastreio:
SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
Para obter informações adicionais sobre a ativação de rastreio, consulte o artigo Configuração de Rastreio e de Criação de Log.
Para obter informações adicionais sobre como ativar o rastreio, consulte Trabalhando com Rastreio.
- O problema está relacionado a autenticação ou autorização?
- A maioria dos problemas de segurança está em uma dessas duas categorias. A autenticação é o processo para determinar quem é o responsável pela chamada. Autorização é o processo para validar se o responsável pela chamada possui a autoridade apropriada para chamar o método solicitado. Quando a autenticação falha, normalmente essa falha está relacionada ao protocolo de autenticação, mecanismo de autenticação ou registro de usuário. Quando a autorização falha, normalmente isso está relacionado às ligações do aplicativo da montagem e implementação para a identidade do responsável pela chamada que está acessando o método e funções requeridas pelo método.
- Esta é uma solicitação da Web ou EJB?
Os pedidos da Web possuem um caminho de código completamente diferente dos pedidos de EJB (Enterprise JavaBeans). Os recursos de segurança diferentes que existem para as solicitações da web e não para as solicitações EJB requerem um conhecimento completamente diferente para resolver. Por exemplo, quando usar o mecanismo de autenticação Lightweight Third-Party Authentication (LTPA), o recurso de conexão única (SSO) está disponível para as solicitações da web e não para as solicitações EJB. Os pedidos da Web envolvem informações de cabeçalho HTTP não-requeridas pelos pedidos EJB devido às diferenças de protocolo. Além disso, o mecanismo do contêiner da Web ou de servlet é envolvido no processo inteiro. Qualquer um desses componentes pode estar envolvido no problema e todos devem ser considerados durante a resolução de problemas baseada no tipo de pedido e onde a falha ocorre.
Os pedidos EJB protegidos envolvem muito os componentes ORB e de Nomenclatura, já que passam pelo protocolo RMI/IIOP. Além disso, quando o WLM (Work Manager) é ativado, outras mudanças de comportamento no código podem ser observadas. Todos esses componentes interagem de forma próxima para que a segurança funcione corretamente no ambiente. Às vezes, o rastreio de algum ou todos esses componentes pode ser necessário para a resolução de problemas nesta área.
A especificação de rastreio inicial é SASRas=all=enabled:com.ibm.ws.security.*=all=enabled. O rastreio de ORB também é muito benéfico quando o rastreio de SAS/Segurança não parece indicar o problema.
Pedidos de EJB seguros são transmitidos do controlador para o servant. A maioria dos pedidos da Web é ignorada pelo controlador. Como resultado, os pedidos EJB são processados e autenticados primeiro pelas camadas de segurança do zSAS ou CSIv2 (Common Security Interoperability Versão 2). A autorização é feita pelo servant. Se ocorrer uma falha de autenticação, o nível do tipo zSAS de rastreio deve ser ativado para diagnosticar o problema. Outros problemas podem ser diagnosticados usando o recurso Rstreio de Componente (CTRACE) do WebSphere Application Server.
- O problema parece estar relacionado a SSL (Secure Socket Layer)?
O SSL é uma camada de segurança totalmente separada e distinta. A resolução dos problemas do SSL normalmente ocorre de modo separado da resolução dos problemas de autenticação e autorização, e há muitas considerações. Normalmente, os problemas do SSL são problemas da primeira instalação, já que a configuração pode ser difícil. Cada cliente deve conter o certificado do signatário do servidor. Durante autenticação mútua, cada servidor deve conter o certificado de assinante do cliente. Além disso, pode haver diferenças de protocolo (SSLv3 versus TLS [Transport Layer Security]) e problemas de portas do listener relacionados à IORs (Interoperable Object References) vencidas, ou seja, as IORs de um servidor, que espelhem a porta antes da reinicialização do servidor.
No z/OS, são utilizadas duas variações de SSL. Para determinar a causa de um problema SSL no z/OS, você deve observar o protocolo que está sendo utilizado.
- O SSL do Sistema é utilizado pelos protocolos IIOP (Internet Inter-ORB Protocol) e HTTPS.
- O JSSE (Java Secure Socket Extension) é utilizado por todos os outros protocolos, por exemplo, SOAP.
- Pedidos de SSL do sistema são manipulados no controlador e são utilizados pela segurança z/SAS e CSIv2.
- O SJSSE é predominantemente utilizado pelo servant, contudo há casos nos quais o JSSE é utilizado também no controlador.
Para problemas de SSL, às vezes solicitamos um rastreio de SSL para determinar o que está acontecendo com o protocolo de reconhecimento SSL. O protocolo de reconhecimento SSL é o processo que ocorre quando um cliente abre um soquete para um servidor. Se ocorrer algum erro na troca de chaves, de cifras e assim por diante, o protocolo de reconhecimento falhará e o soquete será inválido. O rastreio do JSSE (a implementação SSL utilizada no WebSphere Application Server) envolve as etapas a seguir:- Defina a propriedade de sistema a seguir nos processos do cliente e do servidor: -Djavax.net.debug=true. Para o servidor, inclua a propriedade de sistema na propriedade Argumentos JVM Genéricos da página de configurações da JVM (Java Virtual Machine).
Ative também o rastreio de ORB.
- Recrie o problema.
O SystemOut.log dos dois processos contém o rastreio de JSSE. É possível localizar rastreio similar ao seguinte exemplo:
SSLConnection: install <com.ibm.sslite.e@3ae78375> >> handleHandshakeV2 <com.ibm.sslite.e@3ae78375> >> handshakeV2 type = 1 >> clientHello: SSLv2. Versão do cliente SSL: 3.0 ... ... ... JSSEContext: handleSession[Socket[addr=null,port=0,localport=0]] << sendServerHello. Versão de SSL: 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.
O conjunto de dados SYSOUT para a tarefa iniciada pela região contém o rastreio de JSSE. Com o SDSF, o rastreio é similar ao que segue:
JSSEContext: handleConnection[Socket [addr=boss0106.plex1.l2.ibm.com/9.38.48.108,port=2139,localport=8878]] JSSEContext: handleConnection[Socket [addr=boss0106.plex1.l2.ibm.com/9.38.48.108,port=2140,localport=8878]] TrustManagerFactoryImpl: trustStore is : /WebSphere/V8R50M0/AppServer/etc/DummyServerTrustFile.jks TrustManagerFactoryImpl: trustStore type is : JKS TrustManagerFactoryImpl: init truststore JSSEContext: handleConnection[Socket [addr=boss0106.plex1.l2.ibm.com/9.38.48.108,port=2142,localport=8878]] KeyManagerFactoryImpl: keyStore is : /WebSphere/V8R5M0/AppServer/etc/DummyServerKeyFile.jks KeyManagerFactoryImpl: keyStore type is : JKS KeyManagerFactoryImpl: init keystore KeyManagerFactoryImpl: init keystore JSSEContext: handleConnection[Socket [addr=boss0106.plex1.l2.ibm.com/9.38.48.108,port=2143,localport=8878]] JSSEContext: handleSession[Socket [addr=BOSSXXXX.PLEX1.L2.IBM.COM/9.38.48.108,port=8879,localport=2145]] JSSEContext: confirmPeerCertificate [Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM/9.38.48.108,port=8879, localport=2145]] X509TrustManagerImpl: checkServerTrusted X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=jserver, OU=SWG, O=IBM, C=US Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 0 Key: IBMJCE RSA Public Key: modulus: 10094996692239509074796828756118539107568369566313889955538950668 6622953008589748001058216362638201577071902071311277365773252660799 128781182947273802312699983556527878615792292244995317112436562491 489904381884265119355037731265408654007388863303101746314438337601 264540735679944205391693242921331551342247891 public exponent: 65537 0 Validity: [From: Fri Jun 21 20:08:18 GMT 2013, To: Thu Mar 17 20:08:18 GMT 2014] Issuer: CN=jserver, OU=SWG, O=IBM, C=US SerialNumber: [ 3d1387b2 ] 0] Algorithm: [MD5withRSA] Signature: 0000: 54 DC B5 FA 64 C9 CD FE B3 EF 15 22 3D D0 20 31 T...d......"=. 1 0010: 99 F7 A7 86 F9 4C 82 9F 6E 4B 7B 47 18 2E C6 25 .....L..nK.G...% 0020: 5B B2 9B 78 D8 76 5C 82 07 95 DD B8 44 62 02 62 [..x.v\.....Db.b 0030: 60 2A 0A 6D 4F B9 0A 98 14 27 E9 BB 1A 84 8A D1 `*.mO....'...... 0040: C2 22 AF 70 9E A5 DF A2 FD 57 37 CE 3A 63 1B EB .".p.....W7.:c.. 0050: E8 91 98 9D 7B 21 4A B5 2C 94 FC A9 30 C2 74 72 .....!J.,...0.tr 0060: 95 01 54 B1 29 E7 F8 9E 6D F3 B5 D7 B7 D2 9E 9B ..T.)...m....... 0070: 85 D8 E4 CF C2 D5 3B 64 F0 07 17 9E 1E B9 2F 79 ......;d....../y 0] X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=jserver, OU=SWG, O=IBM, C=US Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 0 Key: IBMJCE RSA Public Key: modulus: 1009499669223950907479682875611853910756836956631388995553895066866 22953008589748001058216362638201577071902071311277365773252660799 1287811829472738023126999835565278786157922922449953171124365624914 89904381884265119355037731265408654007388863303101746314438337601 264540735679944205391693242921331551342247891 public exponent: 65537 0 Validity: [From: Fri Jun 21 20:08:18 GMT 2013, To: Thu Mar 17 20:08:18 GMT 2015] Issuer: CN=jserver, OU=SWG, O=IBM, C=US SerialNumber: [ 3d1387b2 ] 0] Algorithm: [MD5withRSA] Signature: 0000: 54 DC B5 FA 64 C9 CD FE B3 EF 15 22 3D D0 20 31 T...d......"=. 1 0010: 99 F7 A7 86 F9 4C 82 9F 6E 4B 7B 47 18 2E C6 25 .....L..nK.G...% 0020: 5B B2 9B 78 D8 76 5C 82 07 95 DD B8 44 62 02 62 [..x.v\.....Db.b 0030: 60 2A 0A 6D 4F B9 0A 98 14 27 E9 BB 1A 84 8A D1 `*.mO....'...... 0040: C2 22 AF 70 9E A5 DF A2 FD 57 37 CE 3A 63 1B EB .".p.....W7.:c.. 0050: E8 91 98 9D 7B 21 4A B5 2C 94 FC A9 30 C2 74 72 .....!J.,...0.tr 0060: 95 01 54 B1 29 E7 F8 9E 6D F3 B5 D7 B7 D2 9E 9B ..T.)...m....... 0070: 85 D8 E4 CF C2 D5 3B 64 F0 07 17 9E 1E B9 2F 79 ......;d....../y 0] JSSEContext: handleConnection[Socket[addr=boss0106.plex1.l2.ibm.com /9.38.48.108,port=2144,localport=8878]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2145]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2146]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2147]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2148]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2149]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2150]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2151]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2152]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2153]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2154]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2155]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2156]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2157]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2158]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2159]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2160]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2161]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2162]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2163]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2164]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2165]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2166]] JSSEContext: handleSession[Socket[addr=boss0106.plex1.l2.ibm.com /9.38.48.108,port=9443,localport=2167]] JSSEContext: confirmPeerCertificate[Socket[addr=boss0106.plex1.l2.ibm.com /9.38.48.108,port=9443,localport=2167]] X509TrustManagerImpl: checkServerTrusted X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=WAS z/OS Deployment Manager, O=IBM Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5 0 Key: IBMJCE RSA Public Key: modulus: 12840948267119651469312486548020957441946413494498370439558603901582589 8755033448419534105183133064366466828741516428176579440511007 6258795528749232737808897160958348495006972731464152299032614592135114 19361539962555997136085140591098259345625853617389396340664766 649957749527841107121590352429348634287031501 public exponent: 65537 0 Validity: [From: Fri Jun 25 05:00:00 GMT 2013, To: Mon Jun 26 04:59:59 GMT 2015] Issuer: CN=WAS CertAuth, C=US SerialNumber: [ 02] 0Certificate Extensions: 3 [1]: ObjectId: 2.16.840.1.113730.1.13 Criticality=false Extension unknown: DER encoded OCTET string = 0000: 04 3C 13 3A 47 65 6E 65 72 61 74 65 64 20 62 79 .<.:Generated by 0010: 20 74 68 65 20 53 65 63 75 72 65 57 61 79 20 53 the SecureWay S 0020: 65 63 75 72 69 74 79 20 53 65 72 76 65 72 20 66 ecurity Server f 0030: 6F 72 20 7A 2F 4F 53 20 28 52 41 43 46 29 or z/OS (RACF) -[2]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 05 6A CD 7F AE AF 89 78 99 A8 F1 5B 64 8B 9F AF .j.....x...[d... 0010: 73 1B 58 65 s.Xe ] ] 0[3]: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 7E D1 7B 17 74 D3 AD D1 7D D8 F8 33 85 19 04 F8 ....t......3.... 0010: 36 51 57 16 6QW. ] 0] 0] Algorithm: [SHA1withRSA] Signature: 0000: 73 0D FC E1 8A B3 42 E1 04 73 72 B1 C6 C9 87 54 s.....B..sr....T 0010: 87 57 02 FA 41 32 D8 B0 39 09 86 CB 6B 03 B6 F9 .W..A2..9...k... 0020: 62 8D 95 36 56 0E D4 D2 F7 7A 8D 4B FB 0B FD 91 b..6V....z.K.... 0030: 89 A8 08 41 30 E2 27 DC 15 5F 2C F4 CD 2F 6B 8E ...A0.'.._,../k. 0040: 21 2A 88 53 46 27 68 9B 55 14 38 8E 1F 50 95 BC !*.SF'h.U.8..P.. 0050: A8 46 F6 68 97 9E 7B 65 9E E8 A7 34 B2 C8 63 CF .F.h...e...4..c. 0060: 73 C8 4E 25 0A EF C5 8F 04 A4 EB 8C CC 33 84 26 s.N%.........3.& 0070: 5D FD 7C AD 7B 02 13 5A 86 A1 89 93 1E A4 93 63 ]......Z.......c 0] X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=WAS CertAuth, C=US Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5 0 Key: IBMJCE RSA Public Key: modulus: 1167408593733331602218385578183389496484587418638676352829560040529918 40558681208199977833401609895748222369066230329785148883251144 2382911186804921983976695395381692334250582278359056431484427844566504 41491799952592864895242987037929408453455627552772317382077015 828713585220212502839546496071839496308430393 public exponent: 65537 0 Validity: [From: Fri Jun 25 05:00:00 GMT 2013, To: Sat Jun 24 04:59:59 GMT 2015] Issuer: CN=WAS CertAuth, C=US SerialNumber: [ 0 ] 0Certificate Extensions: 4 [1]: ObjectId: 2.16.840.1.113730.1.13 Criticality=false Extension unknown: DER encoded OCTET string = 0000: 04 3C 13 3A 47 65 6E 65 72 61 74 65 64 20 62 79 .<.:Generated by 0010: 20 74 68 65 20 53 65 63 75 72 65 57 61 79 20 53 the SecureWay S 0020: 65 63 75 72 69 74 79 20 53 65 72 76 65 72 20 66 ecurity Server f 0030: 6F 72 20 7A 2F 4F 53 20 28 52 41 43 46 29 or z/OS (RACF) -[2]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 7E D1 7B 17 74 D3 AD D1 7D D8 F8 33 85 19 04 F8 ....t......3.... 0010: 36 51 57 16 6QW. ] ] 0[3]: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ Key_CertSign Crl_Sign ] 0[4]: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] 0] Algorithm: [SHA1withRSA] Signature: 0000: 43 88 AB 19 5D 00 54 57 5E 96 FA 85 CE 88 4A BF C...].TW^.....J. 0010: 6E CB 89 4C 56 BE EF E6 8D 2D 74 B5 83 1A EF 9C n..LV....-t..... 0020: B3 82 F2 16 84 FA 5C 50 53 2A B4 FD EB 27 98 5D ......\PS*...'.] 0030: 43 48 D3 74 85 21 D1 E1 F2 63 9E FB 58 2A F3 6A CH.t.!...c..X*.j 0040: 44 D2 F5 7D B2 55 B9 5E 32 11 78 B6 34 8E 4B 1D D....U.^2.x.4.K. 0050: F3 82 1D C1 5F 7B 3F AD C9 29 FA FF D1 D1 13 2C ...._.?..)....., 0060: 57 F7 7B 51 02 99 6F ED 54 E1 51 34 B8 51 BE 97 W..Q..o.T.Q4.Q.. 0070: 30 AC 4F 89 AB AA 8A B2 E1 40 89 2E 18 C7 0E 15 0.O......@...... 0] JSSEContext: handleConnection[Socket[addr=boss0106.plex1.l2.ibm.com /9.38.48.108,port=9443,localport=2167]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2168]] JSSEContext: handleConnection[Socket[addr=boss0106.plex1.l2.ibm.com /9.38.48.108,port=2235,localport=8878]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8879,localport=2236]] JSSEContext: handleSession[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8880,localport=2238]] JSSEContext: confirmPeerCertificate[Socket [addr=BOSSXXXX.PLEX1.L2.IBM.COM /9.38.48.108,port=8880,localport=2238]] X509TrustManagerImpl: checkServerTrusted X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=jserver, OU=SWG, O=IBM, C=US Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 0 Key: IBMJCE RSA Public Key: modulus: 100949966922395090747968287561185391075683695663138899555389506686622953 008589748001058216362638201577071902071311277365773252660799 1287811829472738023126999835565278786157922922449953171124365624914 89904381884265119355037731265408654007388863303101746314438337601 264540735679944205391693242921331551342247891 public exponent: 65537 0 Validity: [From: Fri Jun 21 20:08:18 GMT 2013, To: Thu Mar 17 20:08:18 GMT 2015] Issuer: CN=jserver, OU=SWG, O=IBM, C=US SerialNumber: [ 3d1387b2 ] 0] Algorithm: [MD5withRSA] Signature: 0000: 54 DC B5 FA 64 C9 CD FE B3 EF 15 22 3D D0 20 31 T...d......"=. 1 0010: 99 F7 A7 86 F9 4C 82 9F 6E 4B 7B 47 18 2E C6 25 .....L..nK.G...% 0020: 5B B2 9B 78 D8 76 5C 82 07 95 DD B8 44 62 02 62 [..x.v\.....Db.b 0030: 60 2A 0A 6D 4F B9 0A 98 14 27 E9 BB 1A 84 8A D1 `*.mO....'...... 0040: C2 22 AF 70 9E A5 DF A2 FD 57 37 CE 3A 63 1B EB .".p.....W7.:c.. 0050: E8 91 98 9D 7B 21 4A B5 2C 94 FC A9 30 C2 74 72 .....!J.,...0.tr 0060: 95 01 54 B1 29 E7 F8 9E 6D F3 B5 D7 B7 D2 9E 9B ..T.)...m....... 0070: 85 D8 E4 CF C2 D5 3B 64 F0 07 17 9E 1E B9 2F 79 ......;d....../y 0] X509TrustManagerImpl: Certificate [ [ Version: V3 Subject: CN=jserver, OU=SWG, O=IBM, C=US Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 0 Key: IBMJCE RSA Public Key: modulus: 100949966922395090747968287561185391075683695663138899555389506 686622953008589748001058216362638201577071902071311277365773252660799 12878118294727380231269998355652787861579229224499531711243656249 1489904381884265119355037731265408654007388863303101746314438337601 264540735679944205391693242921331551342247891 public exponent: 65537 0 Validity: [From: Fri Jun 21 20:08:18 GMT 2013, To: Thu Mar 17 20:08:18 GMT 2015] Issuer: CN=jserver, OU=SWG, O=IBM, C=US SerialNumber: [ 3d1387b2 ] 0] Algorithm: [MD5withRSA] Signature: 0000: 54 DC B5 FA 64 C9 CD FE B3 EF 15 22 3D D0 20 31 T...d......"=. 1 0010: 99 F7 A7 86 F9 4C 82 9F 6E 4B 7B 47 18 2E C6 25 .....L..nK.G...% 0020: 5B B2 9B 78 D8 76 5C 82 07 95 DD B8 44 62 02 62 [..x.v\.....Db.b 0030: 60 2A 0A 6D 4F B9 0A 98 14 27 E9 BB 1A 84 8A D1 `*.mO....'...... 0040: C2 22 AF 70 9E A5 DF A2 FD 57 37 CE 3A 63 1B EB .".p.....W7.:c.. 0050: E8 91 98 9D 7B 21 4A B5 2C 94 FC A9 30 C2 74 72 .....!J.,...0.tr 0060: 95 01 54 B1 29 E7 F8 9E 6D F3 B5 D7 B7 D2 9E 9B ..T.)...m....... 0070: 85 D8 E4 CF C2 D5 3B 64 F0 07 17 9E 1E B9 2F 79 ......;d....../y 0] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM/ 9.38.48.108,port=8880,localport=2238]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM/ 9.38.48.108,port=8880,localport=2239]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM/ 9.38.48.108,port=8880,localport=2240]] JSSEContext: handleConnection[Socket[addr=BOSSXXXX.PLEX1.L2.IBM.COM/ 9.38.48.108,port=8880,localport=2241]]
Segurança de Rastreio
- com.ibm.ws.security.*
- com.ibm.websphere.security.*
- com.ibm.WebSphereSecurityImpl.*
SASRas
- com.ibm.ws.wim.* para rastreio com um repositório VMM (Virtual Member Manager)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- com.ibm.ws.security.*=all=enabled:com.ibm.WebSphereSecurityImpl.*=all=enabled:com.ibm.websphere.security.*=all=enabled. Essa instrução de rastreio coleta o rastreio para o tempo de execução da segurança.
- com.ibm.ws.console.security.*=all=enabled. Esta instrução de rastreio coleta o rastreio para o console administrativo do centro de segurança.
- SASRas=all=enabled. Essa instrução de rastreio coleta o rastreio para SAS (lógica de autenticação de baixo nível).
- com.ibm.ws.wim.*=all=enabled:com.ibm.websphere.wim.*=all=enabled. Essa instrução de rastreio coleta o rastreio para VMM.
Ajustando rastreios de SAS:
Se um subconjunto de classes precisar ser rastreado para o componente SAS/CSIv2, uma propriedade do sistema pode ser especificada com os nomes de classes separados por vírgulas: com.ibm.CORBA.securityTraceFilter=SecurityConnectionInterceptorImpl, VaultImpl, ...
- Ajustando rastreios de Segurança:
- Se um subconjunto de pacotes precisar ser rastreado, especifique uma especificação de rastreio mais detalhada do que com.ibm.ws.security.*=all=enabled. Por exemplo, para rastrear somente código de critérios dinâmicos, você pode especificar com.ibm.ws.security.policy.*=all=enabled. Para desativar o rastreio de critérios dinâmicos, você pode especificar com.ibm.ws.security.policy.*=all=disabled.
Configurando Definições de Rastreio CSIv2, ou z/SAS
Surgem situações nas quais rever o rastreio para os protocolos de autenticação CSIv2 e z/SAS pode auxiliar na resolução de problemas difíceis. Esta seção descreve como ativar o rastreio CSIv2 e z/SAS.
- Ativando Rastreio CSIv2 e z/SAS do Lado Cliente
- Para ativar o rastreio de CSIv2 e de z/SAS em um cliente puro, as seguintes etapas
precisam ser executadas:
- Edite o arquivo TraceSettings.properties no diretório /WebSphere/AppServer/properties.
- Nesse arquivo, altere traceFileName= para apontar para o caminho no qual você deseja o arquivo de saída criado. Certifique-se de colocar duas barras invertidas (\\) entre os subdiretórios. Por exemplo, traceFileName=c:\\WebSphere\\AppServer\\logs\\sas_client.log
- Nesse arquivo, adicione a cadeia de especificação de rastreio: SASRas=all=enabled. As cadeias de rastreio adicionais podem ser adicionadas em linhas separadas.
- Aponte para esse arquivo a partir do aplicativo cliente. Na linha de comandos Java
em que o cliente é ativado, inclua a seguinte propriedade de sistema: -DtraceSettingsFile=TraceSettings.properties.Nota: Não forneça o caminho completo para o arquivo TraceSettings.properties. Certifique-se de que o arquivo TraceSettings.properties esteja em seu caminho de classe.
Ativando Rastreio CSIv2 e z/SAS do Lado do Servidor
Para ativar o rastreio de z/SAS em um servidor de aplicativos, faça o seguinte:
- Inclua a especificação de rastreio, SASRas=all=enabled, no arquivo server.xml ou inclua-a nas Configurações de Rastreio no console administrativo.
- Geralmente, é melhor rastrear também o tempo de execução da segurança de autorização além do tempo de execução do protocolo de autenticação. Para fazer isso, utilize as duas especificações de rastreio a seguir combinadas: SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
- Para a resolução de problemas de um tipo de conexão, rastreie CSIv2 e SAS ou CSIv2 e z/SAS e o ORB. Para fazer isso, utilize as três especificações de rastreio a seguir: SASRas=all=enabled:com.ibm.ws.security.*=all=enabled:ORBRas=all=enabled.
- Além de incluir essas especificações de rastreio, para o rastreio de ORB há algumas propriedades do sistema que também precisam ser definidas. Para configurar estas propriedades, clique em Rastreio de ORB. Essa opção configura duas propriedades que precisavam ser configuradas manualmente em um release anterior. Para obter informações adicionais, consulte o tópico sobre configurações do serviço Object Request Broker. . Selecione a opção
Configurando Definições de Rastreio CSIv2 ou SAS
Surgem situações nas quais rever o rastreio para os protocolos de autenticação CSIv2 ou SAS pode auxiliar na resolução de problemas difíceis. Esta seção descreve como ativar o rastreio para CSIv2 e SAS.
Ativando Rastreio CSIv2 e SAS do Lado Cliente
Para ativar o rastreio de CSIv2 e de SAS em um cliente puro, as seguintes etapas precisam ser executadas:
- Edite o arquivo TraceSettings.properties no diretório /WebSphere/AppServer/properties.
- Nesse arquivo, altere traceFileName= para apontar para o caminho no qual você deseja o arquivo de saída criado. Certifique-se de colocar duas barras invertidas (\\) entre os subdiretórios. Por exemplo, traceFileName=c:\\WebSphere\\AppServer\\logs\\sas_client.log
- Nesse arquivo, adicione a cadeia de especificação de rastreio: SASRas=all=enabled. As cadeias de rastreio adicionais podem ser adicionadas em linhas separadas.
- Aponte para esse arquivo a partir do aplicativo cliente. Na linha de comandos Java
em que o cliente é ativado, inclua a seguinte propriedade de sistema: -DtraceSettingsFile=TraceSettings.properties.Nota: Não forneça o caminho completo para o arquivo TraceSettings.properties. Certifique-se de que o arquivo TraceSettings.properties esteja em seu caminho de classe.
Ativando Rastreio CSIv2 e SAS do Lado Cliente
Para ativar o rastreio de CSIv2 e de SAS em um cliente puro, as seguintes etapas precisam ser executadas:
- Edite o arquivo TraceSettings.properties no diretório /WebSphere/AppServer/properties. Por exemplo, edite o arquivo profile_root/properties/TraceSettings.properties.
- Nesse arquivo, altere traceFileName= de modo a apontar para o caminho em que deseja criar o arquivo de saída. Por exemplo, traceFileName=profile_root/logs/sas_client.
- Nesse arquivo, adicione a cadeia de especificação do rastreio: SASRas=all=enabled. As cadeias de rastreio adicionais podem ser adicionadas em linhas separadas.
- Aponte para esse arquivo a partir do aplicativo cliente. Na linha de comandos Java
em que o cliente é ativado, inclua a seguinte propriedade de sistema: -DtraceSettingsFile=TraceSettings.properties.Nota: Não forneça o caminho completo para o arquivo TraceSettings.properties. Certifique-se de que o arquivo TraceSettings.properties esteja em seu caminho de classe.
- Ativando Rastreio CSIv2 e SAS do Lado do Servidor
- Para ativar o rastreio de SAS em um servidor de aplicativos, faça o seguinte:
- Inclua a especificação de rastreio SASRas=all=enabled ao arquivo server.xml ou inclua-a às definições de rastreio na GUI do Console da Web.
- Geralmente, é melhor rastrear também o tempo de execução da segurança de autorização além do tempo de execução do protocolo de autenticação. Para fazer isso, utilize as duas especificações de rastreio a seguir combinadas: SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
- Para a resolução de problemas de um tipo de conexão, rastreie CSIv2 e SAS ou CSIv2 e z/SAS e o ORB. Para fazer isso, utilize as três especificações de rastreio a seguir: SASRas=all=enabled:com.ibm.ws.security.*=all=enabled:ORBRas=all=enabled.
- Além de incluir essas especificações de rastreio, para o rastreio de ORB há algumas propriedades do sistema que também precisam ser definidas. Vá para as definições de ORB na GUI e inclua as duas propriedades a seguir: com.ibm.CORBA.Debug=true e com.ibm.CORBA.CommTrace=true.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
Códigos Secundários CSIv2 CORBA
Todas as vezes que ocorrerem exceções no código de segurança do cliente ou servidor, a exceção eventual se tornará uma exceção CORBA (Common Object Request Broker Architecture). Qualquer exceção que ocorra será incorporada numa exceção CORBA, porque a arquitetura CORBA é utilizada pelo serviço de segurança para sua própria comunicação entre processos. As exceções CORBA são genéricas e indicam um problema de comunicação entre dois componentes. Os códigos secundários CORBA são mais específicos e indicam a razão subjacente pela qual um componente não pode concluir um pedido.
A seguir, apresentamos os códigos secundários CORBA que um cliente pode esperar receber depois de executar um pedido relacionado à segurança, por exemplo, autenticação. Inclui também o tipo de exceção CORBA no qual o código secundário aparece.
A exceção a seguir mostra um exemplo de uma exceção CORBA na qual o código secundário é 49424300, e indica Falha de Autenticação. Geralmente, uma mensagem descritiva também é incluída na exceção para auxiliar na resolução do problema. Aqui, a mensagem de detalheé: "Exceção capturada chamando authenticateBasicAuthData do SecurityServer para usuário jdoe. Razão: com.ibm.WebSphereSecurity.AuthenticationFailedException" que indica que a autenticação falhou para o usuário jdoe.
O campo preenchido na exceção indica se o método foi concluído ou não. No caso de um NO_PERMISSION, nunca chame a mensagem; portanto ele é sempre completed:No. Outras exceções que são capturadas no lado do servidor podem ter um status concluído de "Talvez" ou "Sim".
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. Razão:
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)
Nome do código secundário | Valor do código secundário (em hexadecimal) | Tipo de exceção (todas no pacote do org.omg.CORBA.*) | Descrição do código secundário | Nova tentativa executada pelo cliente independente (quando authenticationRetryEnabled = true) | Nova tentativa executada pelo servidor que age como um cliente (quando authenticationRetryEnabled = true) |
---|---|---|---|---|---|
AuthenticationFailed | 49424300 | NO_PERMISSION | Esse código é um erro genérico de falha de autenticação. Ele não fornece nenhum detalhe sobre a validade do ID do usuário ou senha. Alguns registros de usuário podem optar por usar esse tipo de código de erro, outros podem optar por usar os três tipos a seguir, mais específicos. | Yes | Sim |
InterceptLocateException | 494210B8 | INTERNO | Indica um problema ao processar um pedido de localização de entrada. | Não | Não |
InvalidUserid | 49424301 | NO_PERMISSION | Esse código ocorre quando o registro retorna um ID de usuário inválido. | Yes | Não |
InvalidPassword | 49424302 | NO_PERMISSION | Esse código ocorre quando o registro retorna uma senha inválida. | Sim | Não |
InvalidSecurityCredentials | 49424303 | NO_PERMISSION | Esse é um erro genérico indicando que as credenciais são inválidas por algum motivo. Pode ser que os atributos corretos não estão configurados. | Sim, caso o cliente possua a credencial BasicAuth (credencial baseada em token foi rejeitada na primeira tentativa). | Sim |
InvalidRealm | 49424304 | NO_PERMISSION | Esse código ocorre quando o REALM do token recebido do cliente não corresponde à região atual do servidor. | Não | Não |
ValidationFailed | 49424305 | NO_PERMISSION | Uma falha de validação ocorre quando um token é enviado do cliente ou servidor para um servidor de destino, mas o formato do token ou a expiração é inválida. | Sim, caso o cliente possua a credencial BasicAuth (credencial baseada em token foi rejeitada na primeira tentativa). | Yes |
CredentialTokenExpired | 49424306 | NO_PERMISSION | Esse código é mais específico sobre o porquê da falha de validação. Nesse caso, o token tem um tempo de vida absoluto e esse expirou. Portanto, não é mais um token válido e não pode ser utilizado. | Sim, caso o cliente possua a credencial BasicAuth (credencial baseada em token foi rejeitada na primeira tentativa). | Yes |
InvalidCredentialToken | 49424307 | NO_PERMISSION | É mais específico sobre a razão da falha na autenticação. Nesse caso, o token não pode ser decriptografado ou os dados não podem ser lidos. | Sim, caso o cliente possua a credencial BasicAuth (credencial baseada em token foi rejeitada na primeira tentativa). | Não |
SessionDoesNotExist | 49424308 | NO_PERMISSION | Isso indica que a sessão CSIv2 não existe no servidor. Normalmente, uma nova tentativa ocorre automaticamente e criará uma nova sessão com êxito. | Sim | Yes |
SessionConflictingEvidence | 49424309 | NO_PERMISSION | Isso indica a existência de uma sessão no servidor correspondente ao context_id enviado pelo cliente. Contudo, as informações fornecidas pelo cliente para essa mensagem EstablishContext é diferente das informações originalmente fornecidas para estabelecer a sessão. | Yes | Yes |
SessionRejected | 4942430A | NO_PERMISSION | Isso indica que a sessão referida pelo cliente foi anteriormente rejeitada pelo servidor. | Sim | Sim |
SecurityServerNotAvailable | 4942430B | NO_PERMISSION | Esse erro ocorre quando o servidor não pode entrar em contato com o servidor de segurança local ou remoto para fins de autenticação ou validação. | Não | Não |
InvalidIdentityToken | 4942430C | NO_PERMISSION | Esse erro indica que a identidade não pode ser obtida do token de identidade quando Asserção de Identidade estiver ativada. | Não | Não |
IdentityServerNotTrusted | 4942430D | NO_PERMISSION | Isso indica que o ID do servidor de envio não está na lista de
proprietários confiáveis do servidor de destino.
|
Não | Não |
InvalidMessage | 4942430E | NO_PERMISSION | Isso indica que o formato de mensagem CSIv2 é inválido para o servidor de recepção. | Não | Não |
MappingFailed | 4942430F | NO_PERMISSION | Isso indica um erro ocorrido ao mapear um assunto de entrada usando a configuração de login do sistema de Entrada RMI. | Não | Não |
RevokedSecurityName | 49424310 | NO_PERMISSION | Isso indica que o ID do usuário é chamado. | Yes | Não |
ExpiredPassword | 49424311 | NO_PERMISSION | Isso indica que a senha expirou. | Yes | Não |
AuthenticationNotSupported | 49421090 | NO_PERMISSION | Esse erro ocorre quando um mecanismo não suporta autenticação (muito raro). | Não | Não |
InvalidSecurityMechanism | 49421091 | NO_PERMISSION | É emitido para indicar que o mecanismo de segurança especificado não é conhecido. | Não | Não |
CredentialNotAvailable | 49421092 | NO_PERMISSION | Indica que uma credencial não está disponível quando requerida. | Não | Não |
SecurityMechanismNotSupported | 49421093 | NO_PERMISSION | Esse erro ocorre quando um mecanismo de segurança especificado no token CSIv2 não está implementado no servidor. | Não | Não |
ValidationNotSupported | 49421094 | NO_PERMISSION | Esse erro ocorre quando um mecanismo não suporta validação, por exemplo, o LocalOS. Esse erro não ocorre porque a credencial do LocalOS não admite encaminhamento; assim, não há a necessidade de chamar a validação nessa credencial. | Não | Não |
CredentialTokenNotSet | 49421095 | NO_PERMISSION | Isso é usado para indicar que o token dentro da credencial seja nulo. | Não | Não |
InvalidEvidence | 49421096 | NO_PERMISSION | Este erro indica que a autenticação de cliente é necessária no servidor. No entanto, as informações sobre autenticação não estão presentes no pedido de método do cliente. | Não | Não |
UserRegistryMethod_Protected | 49421098 | NO_PERMISSION | Este erro indica que foi feita uma tentativa de acessar remotamente um método UserRegistry protegido. | Não | Não |
ServerConnectionFailed | 494210A0 | COMM_FAILURE | Esse erro é utilizado quando uma tentativa de conexão falha. | Sim (via ORB retry) | Sim (via ORB retry) |
CorbaSystemException | 494210B0 | INTERNO | Esse código é uma exceção genérica específica do CORBA no código do sistema. | Não | Não |
JavaException | 494210B1 | INTERNO | Esse é um erro genérico que indicou que ocorreu uma exceção de Java inesperada. | Não | Não |
ValueIsNull | 494210B2 | INTERNO | Esse código é utilizado para indicar que um valor ou parâmetro transmitido é nulo. | Não | Não |
EffectivePolicyNotPresent | 494210B3 | INTERNO | Isso indica que um objeto de critério efetivo para CSIv2 não está presente. Esse objeto é utilizado para determinar quais recursos da configuração de segurança estão especificados. | Não | Não |
NullPointerException | 494210B4 | INTERNO | Esse código é utilizado para indicar que uma NullPointerException foi capturada no tempo de execução. | Não | Não |
ErrorGettingClassInstance | 494210B5 | INTERNO | Indica um problema em carregar uma classe dinamicamente. | Não | Não |
MalFormedParameters | 494210B6 | INTERNO | Indica que os parâmetros não são válidos. | Não | Não |
DuplicateSecurityAttributeType | 494210B7 | INTERNO | Indica que um atributo de credencial duplicado foi especificado durante a operação set_attributes. | Não | Não |
MethodNotImplemented | 494210C0 | NO_IMPLEMENT | Indica que um método chamado não está implementado. | Não | Não |
GSSFormatError | 494210C5 | BAD_PARAM | Esse código indica que uma rotina de codificação ou decodificação dos serviços GSS (Generic Security Services) criou uma exceção. | Não | Não |
TagComponentFormatError | 494210C6 | BAD_PARAM | Esse código indica que um componente da tag não pode ser lido corretamente. | Não | Não |
InvalidSecurityAttributeType | 494210C7 | BAD_PARAM | Esse código indica que um tipo de atributo especificado durante a operação set_attributes não é um tipo válido. | Não | Não |
SecurityConfigError | 494210CA | INITIALIZE | Esse código indica a existência de um problema entre a configuração do cliente e do servidor. | Não | Não |
Para obter informações atuais disponíveis do IBM Support sobre problemas conhecidos e sua resolução, consulte a página IBM Support.
A página IBM Support contém documentos que podem economizar tempo ao coletar informações necessários para resolver este problema. Antes de abrir um PMR, consulte a página IBM Support.