Conseils pour l'identification et la résolution des problèmes liés aux composants de sécurité
Ce document présente les ressources de base et les procédures de diagnostic des incidents liés à la sécurité dans WebSphere Application Server.
Fichiers journaux à consulter et les éléments à y rechercher.
- Utilisation de SDSF à consulter et les éléments à y rechercher.
- Approche globale de résolution des problèmes liés à la sécurité permettant de détecter et de résoudre des problèmes de sécurité.
- Quand et comment Sécurité de trace.
Configuration du traçage des composants (CTRACE) est une rubrique qui vous aide dans votre activité de traçage.
Présentation de la table des Codes mineurs CORBA CSIv2.
- Erreurs et incidents d'accès
après l'activation de la sécurité
Après avoir activé la sécurité, vous constatez une dégradation des performances. Pour obtenir plus d'informations sur l'utilisation des fichiers de règles non restreintes, reportez-vous à la rubrique Activation de la sécurité globale.
- Erreurs après l'activation de SSL ou messages d'erreur liés à SSL
Erreurs lors de la tentative de configuration ou d'activation de la sécurité
Lorsqu'aucune de ces opérations ne résout l'incident, vérifiez s'il a été identifié et documenté en utilisant les liens de la rubrique Diagnostics et résolution des problèmes : Ressources d'apprentissage.
Si vous ne trouvez pas d'incident similaire au vôtre, ou si les informations fournies ne permettent pas de résoudre votre problème, reportez-vous à l'aide sur l'identification et la résolution des problèmes IBM.
![[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)
Fichiers journaux
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
Utilisation de SDSF
Lors de l'identification et de la résolution des problèmes liés au composant de sécurité, utilisez SDSF (System Display and Search Facility) pour parcourir les journaux du serveur qui héberge la ressource à laquelle vous tentez d'accéder. Les messages suivants peuvent provenir d'un serveur sur lequel le service de sécurité a correctement démarré :
![[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: Java 2 Security is disabled.
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
class.
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
Approche globale de résolution des problèmes liés à la sécurité
- Le problème se produit-il lorsque la sécurité est désactivée ?
- Cette question est le test ultime permettant d'affirmer qu'un problème est lié à la sécurité. Toutefois, le fait qu'un problème ne se produise que lorsque la sécurité est activée n'implique pas toujours qu'il s'agit d'un problème de sécurité. Vous devez enquêter plus avant pour affirmer qu'il s'agir bien d'un problème lié à la sécurité.
- La sécurité s'initialise-t-elle correctement ?
- Un grand nombre de
codes de sécurité sont sont visités lors de l'initialisation. C'est donc à ce
niveau que vous décèlerez en premier les incidents liés à la configuration.
La séquence de messages ci-dessous générée dans le fichier SystemOut.log indique l'initialisation d'un code normal d'un serveur d'applications. Cette dernière varie selon la configuration, mais les messages sont similaires :
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
La séquence de messages ci-dessous générée dans le fichier actif SDSF indique l'initialisation d'un code normal d'un serveur d'applications. Les messages non liés à la sécurité ont été supprimés de la séquence qui suit. Cette dernière peut varier selon la configuration, mais les messages sont similaires :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 error message: BBOO0222I: SECJ0309I: Java 2 Security is disabled. 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 is disabled. 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 error message: BBOO0222I: SECJ0210I: Security enabled true
- Le journal système contient-t-il une trace de pile ou une exception ?
- Une seule trace de pile fournit de nombreuses informations sur l'incident Notamment, le code ayant initié le code en échec, le composant en échec et la classe d'où provient l'erreur. Parfois, la trace de pile suffit à résoudre l'incident et à en localiser avec précision la cause principale. D'autre fois, elle ne fournit qu'un indice et peut même se révéler trompeuse. Lorsque le service de support analyse une trace de pile, il peut demander une autre trace si celle fournie n'est pas suffisamment claire pour cerner l'incident. Si l'incident semble lié à la sécurité et que la trace de pile et la description de l'incident ne laissent envisager aucune solution, vous serez invité à rassembler les spécifications de trace suivantes : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled de tous les processus impliqués.
- S'agit-il d'un incident de sécurité réparti ou local ?
- Si l'incident est local, c'est-à-dire si le code impliqué n'effectue pas d'appel de méthode distante, sa résolution se cantonne à un unique processus. Il est essentiel de savoir si un incident est local ou réparti car le comportement de l'ORB (Object Request Broker), entre autres composants, diffère selon le cas. A l'appel d'une méthode distante, un code de sécurité totalement différent est entré.
- Lorsque vous savez que l'incident touche deux serveurs ou plus, les techniques pour
le résoudre changent. Vous devez lancer le traçage simultanément sur tous les serveurs
impliqués de sorte que la trace présente l'incident côté client et côté serveur. Assurez-vous que l'horodatage de toutes les machines correspond au
plus près de façon à trouver le couple requête-réponse de deux processus différents. Activez la trace SAS (Secure Authentication Services)
ou z/SAS et de la sécurité à l'aide de la spécification de trace : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
Pour plus de détails sur l'activation du traçage, consultez les informations fournies sur la configuration du traçage et de la journalisation.
Pour plus d'informations sur l'activation de la trace, voir Utilisation de la trace.
- L'incident est-il lié à l'authentification ou l'autorisation ?
- La plupart des incidents liés à la sécurité entrent dans l'une de ces deux catégories. L'authentification est le processus qui consiste à déterminer qui est l'appelant. L'autorisation est le processus qui confirme que l'appelant est autorisé à lancer l'appel de méthode demandé. Lorsque le processus d'authentification échoue, l'incident se situe généralement au niveau du protocole d'authentification, du mécanisme d'authentification ou du registre des utilisateurs. Lorsque le processus d'autorisation échoue, l'incident se situe généralement au niveau des liaisons de l'application issues de l'assemblage et du déploiement et au niveau de l'identité de l'appelant qui accède à la méthode et aux rôles que requiert cette méthode.
- S'agit-il d'une requête web ou EJB ?
Les requêtes Web ont un trajet d'exécution totalement différent de celui des requêtes EJB (Enterprise JavaBeans. Il existe des fonctions de sécurité différentes pour les requêtes web et EJB. Ces fonctions demandent des connaissances très différentes pour résoudre leurs incidents. Par exemple, lorsque vous utilisez le mécanisme d'authentification LTPA (Lightweight Third-Party Authentication), la fonction de connexion unique (SSO) est disponible pour les requêtes web mais pas pour les requêtes EJB. Les requêtes Web impliquent des informations d'en-tête HTTP non requises par les requêtes EJB en raison des différences de protocole. De plus, le conteneur web (ou moteur de servlet) est impliqué dans la totalité du processus. Tous ces composants peuvent être impliqués dans l'incident et tous nécessitent un examen lors du diagnostic en fonction du type de requête et de l'emplacement où s'est produit l'incident.
Les requêtes EJB sécurisées impliquent largement les composants de l'ORB et de nommage, qui circulent via le protocole RMI/IIOP. En outre, lorsque WLM (Workload Manager management) est activé, d'autres modifications du comportement du code se produisent. Tous ces composants interagissent étroitement pour que la sécurité fonctionne parfaitement dans cet environnement. Parfois, il est nécessaire d'activer le traçage de certains ou de tous ces composants afin de cerner un incident dans ce domaine.
La spécification de trace avec la quelle commencer est SASRas=all=enabled:com.ibm.ws.security.*=all=enabled. Le traçage de l'ORB est également très bénéfique lorsque celui de la sécurité/SAS ne permet pas d'isoler l'incident.
Les requêtes EJB sécurisées sont transmises du contrôleur à l'objet servant. Les requêtes Web sont pour la plupart ignorées du contrôleur. Par conséquent, les requêtes EJB sont d'abord traitées et authentifiées par les couches zSAS ou CSIv2 (Common Security Interoperability Version 2) de la sécurité. L'autorisation est accordée par l'objet servant. En cas d'échec de l'authentification, le niveau de traçage de type zSAS doit être activé pour diagnostiquer l'incident. Les autres incidents peuvent être diagnostiqués à l'aide de l'utilitaire WebSphere Application Server component tracing (CTRACE).
- L'incident semble-t-il lié à SSL (Secure Sockets Layer) ?
SSL est une couche séparée et distincte de la sécurité. Généralement, l'identification et la résolution des problèmes liés à SSL diffère de celles des problèmes liés à l'authentification et aux autorisations, et elle nécessite de nombreux examens. En général, les incidents SSL sont liés à la configuration de départ qui peut se révéler difficile à définir. Chaque client doit intégrer le certificat d'auto-signature du serveur. Lors de l'authentification mutuelle, chaque serveur doit disposer du certificat d'auto-signature du client. Il peut également exister des différences de protocole (SSLv3 vs. TLS (Transport Layer Security)), ainsi que des incidents au niveau du port du module d'écoute liés aux IOR (Interoperable Object References) périmés, c'est-à-dire les IOR d'un serveur reflétant le port avant redémarrage du serveur.
Dans z/OS, deux variantes de SSL sont utilisées. Pour déterminer l'origine d'un incident SSL sous z/OS, vous devez savoir quel protocole est utilisé.
- Le SSL système est utilisé par les protocoles IIOP (Internet Inter-ORB Protocol) et HTTPS.
- JSSE (Java Secure Socket Extension) est utilisé par tous les autres protocoles, tels que SOAP.
- Les requêtes du SSL système sont traitées par le contrôleur et utilisées par la sécurité z/SAS et CSIv2.
- SJSSE est principalement utilisé par l'objet servant, mais il l'est également parfois par le contrôleur.
Pour les incidents SSL, une trace SSL et parfois demandée pour déterminer ce qui s'est produit à l'établissement de la liaison SSL. L'établissement de la liaison SSL est le processus qui s'enclenche lorsqu'un client ouvre une connexion sur un serveur. Si un incident se produit lors de l'échange de clés, l'échange de codes de chiffrement, etc., la liaison n'est pas établie ce qui invalide la connexion. Le traçage de JSSE (implémentation SSL utilisée avec WebSphere Application Server) englobe les étapes suivantes :- Définissez dans les processus client et serveur la propriété système suivante : -Djavax.net.debug=true. Pour le serveur, ajoutez la propriété système à la propriété Arguments JVM génériques de la page des paramètres de la machine virtuelle Java.
Activez également la trace de l'ORB.
- Recréez l'incident.
Le fichier SystemOut.log des deux processus contient la trace JSSE. Vous pouvez trouver des données de trace de ce type :
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.
Le fichier SYSOUT pour la tâche démarrée par la région contient la trace JSSE. En utilisant SDSF, cette trace est similaire à la chaîne suivante :
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]]
Sécurité de trace
- com.ibm.ws.security.*
- com.ibm.websphere.security.*
- com.ibm.WebSphereSecurityImpl.*
SASRas
- com.ibm.ws.wim.* pour le traçage d'un référentiel (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. Cette instruction de trace collecte la trace du module d'exécution de sécurité.
- com.ibm.ws.console.security.*=all=enabled. Cette instruction de trace collecte la trace de la console d'administration du Centre de sécurité.
- SASRas=all=enabled. Cette instruction de trace collecte la trace de SAS (logique d'authentification de niveau bas).
- com.ibm.ws.wim.*=all=enabled:com.ibm.websphere.wim.*=all=enabled. Cette instruction de trace collecte la trace de VMW.
Optimisation des traces SAS :
Si un sous-ensemble de classes nécessite un traçage du composant SAS/CSIv2, vous pouvez définir une propriété système en séparant les noms des classes par une virgule : com.ibm.CORBA.securityTraceFilter=SecurityConnectionInterceptorImpl, VaultImpl, ...
- Optimisation du traçage de la sécurité :
- Si le traçage d'un un sous-ensemble de modules s'avère nécessaire, définissez une spécification de trace plus détaillée que com.ibm.ws.security.*=all=enabled. Par exemple, pour tracer uniquement le code de stratégie dynamique, définissezcom.ibm.ws.security.policy.*=all=enabled. Pour désactiver le traçage du code de stratégie dynamique, spécifiezcom.ibm.ws.security.policy.*=all=disabled.
Configuration des paramètres de traçage CSIv2 ou z/SAS
Parfois, l'analyse du traçage des protocoles d'authentification CSIv2 et de z/SAS se révèle très utile pour l'identification et la résolution de certains problèmes difficiles à déceler. La présente section décrit comment activer la trace CSIv2 et z/SAS.
- Activation de la trace CSIv2 et z/SAS côté client
- Pour activer la trace CSIv2 et z/SAS sur un client pur, procédez
comme suit :
- Modifiez le fichier TraceSettings.properties dans le répertoire /WebSphere/AppServer/properties.
- Indiquez dans traceFileName= le répertoire dans lequel le fichier de sortie doit être créé. Assurez-vous de séparer les sous-répertoires de deux barres obliques inversées (\\). Par exemple, traceFileName=c:\\WebSphere\\AppServer\\logs\\sas_client.log
- Ajoutez dans ce fichier la chaîne de spécification de trace : SASRas=all=enabled. Chaque chaîne de spécification de trace doit être indiquée sur une ligne séparée.
- Pointez sur ce fichier à partir de votre application client. Sur la ligne de commande
Java de lancement du client, ajoutez la propriété système
suivante : -DtraceSettingsFile=TraceSettings.properties.Remarque : N'indiquez pas le chemin d'accès complet au fichier TraceSettings.properties. Assurez-vous que le fichier TraceSettings.properties se trouve dans le chemin d'accès aux classes.
Activation de la trace CSIv2 et z/SAS côté serveur
Pour activer la trace z/SAS dans un serveur d'applications, procédez comme suit :
- Ajoutez la spécification de trace, SASRas=all=enabled, dans le fichier server.xml ou dans les paramètres de traçage de la console d'administration.
- En général, il est préférable d'activer en parallèle le traçage du module d'exécution de la sécurité d'autorisation et celui du module d'exécution du protocole d'authentification. Pour ce faire, combinez deux spécifications de traçage comme suit : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
- Lors de la résolution d'un incident de connexion, il est bénéfique d'activer la trace de CSIv2 et de SAS ou de CSIv2 et de z/SAS et l'ORB. Pour ce faire, utilisez les trois spécifications de traçage suivantes : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled:ORBRas=all=enabled.
- Outre ces spécifications de traçage, deux propriétés système doivent aussi être définies pour le traçage de l'ORB. Pour définir ces propriétés, cliquez sur Trace de l'ORB. Cette option définit deux propriétés qui devaient être ajoutées manuellement dans une précédente version. Pour plus d'informations, voir la rubrique Paramètres du service ORB (Object Request Broker). . Sélectionnez l'option
Configuration des paramètres de trace CSIv2 ou SAS
Parfois, l'analyse du traçage des protocoles d'authentification CSIv2 ou de SAS se révèle très utile pour l'identification et la résolution de certains problèmes difficiles à déceler. La présente section décrit comment activer la trace CSIv2 et SAS.
Activation de la trace CSIv2 et SAS côté client
Pour activer la trace CSIv2 et SAS sur un client pur, procédez comme suit :
- Modifiez le fichier TraceSettings.properties dans le répertoire /WebSphere/AppServer/properties.
- Indiquez dans traceFileName= le répertoire dans lequel le fichier de sortie doit être créé. Assurez-vous de séparer les sous-répertoires de deux barres obliques inversées (\\). Par exemple, traceFileName=c:\\WebSphere\\AppServer\\logs\\sas_client.log
- Ajoutez dans ce fichier la chaîne de spécification de trace : SASRas=all=enabled. Chaque chaîne de spécification de trace doit être indiquée sur une ligne séparée.
- Pointez sur ce fichier à partir de votre application client. Sur la ligne de commande
Java de lancement du client, ajoutez la propriété système
suivante : -DtraceSettingsFile=TraceSettings.properties.Remarque : N'indiquez pas le chemin d'accès complet au fichier TraceSettings.properties. Assurez-vous que le fichier TraceSettings.properties se trouve dans le chemin d'accès aux classes.
Activation de la trace CSIv2 et SAS côté client
Pour activer la trace CSIv2 et SAS sur un client pur, procédez comme suit :
- Modifiez le fichier TraceSettings.properties dans le répertoire /WebSphere/AppServer/properties. Par exemple, modifiez racine_profil/properties/TraceSettings.properties.
- Indiquez dans traceFileName= le répertoire dans lequel le fichier de sortie doit être créé. Par exemple, traceFileName=racine_profil/logs/sas_client.
- Ajoutez dans ce fichier la chaîne de spécification de trace : SASRas=all=enabled. Chaque chaîne de spécification de trace doit être indiquée sur une ligne séparée.
- Pointez sur ce fichier à partir de votre application client. Sur la ligne de commande
Java de lancement du client, ajoutez la propriété système
suivante : -DtraceSettingsFile=TraceSettings.properties.Remarque : N'indiquez pas le chemin d'accès complet au fichier TraceSettings.properties. Assurez-vous que le fichier TraceSettings.properties se trouve dans le chemin d'accès aux classes.
- Activation de la trace CSIv2 et SAS côté serveur
- Pour activer la trace SAS dans un serveur d'applications, procédez comme suit :
- Ajoutez la spécification de trace, SASRas=all=enabled, dans le fichier server.xml ou dans les paramètres de traçage de l'interface graphique de la console Web.
- En général, il est préférable d'activer en parallèle le traçage du module d'exécution de la sécurité d'autorisation et celui du module d'exécution du protocole d'authentification. Pour ce faire, combinez deux spécifications de traçage comme suit : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled.
- Lors de la résolution d'un incident de connexion, il est bénéfique d'activer la trace de CSIv2 et de SAS ou de CSIv2 et de z/SAS et l'ORB. Pour ce faire, utilisez les trois spécifications de traçage suivantes : SASRas=all=enabled:com.ibm.ws.security.*=all=enabled:ORBRas=all=enabled.
- Outre ces spécifications de traçage, deux propriétés système doivent aussi être définies pour le traçage de l'ORB. Accédez aux paramètres de l'ORB dans l'interface graphique et ajoutez les deux propriétés suivantes : com.ibm.CORBA.Debug=true et com.ibm.CORBA.CommTrace=true.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
![[z/OS]](../images/ngzos.gif)
Codes mineurs CORBA CSIv2
Lorsque des exceptions se produisent dans le code de sécurité sur le client ou le serveur, l'exception devient une exception CORBA (Object Request Broker Architecture). Toute exception qui se produit est imbriquée dans une exception CORBA, car le service de sécurité utilise l'architecture CORBA pour ses propres communications entre processus. Les exceptions CORBA sont génériques et signalent tout incident de communication entre deux composants. Les codes mineurs CORBA sont plus spécifiques et indiquent la raison sous-jacente pour laquelle un composant n'a pas pu exécuter une requête.
Le tableau qui suit présente les codes mineurs CORBA qu'un client peut recevoir après l'exécution d'une requête liée à la sécurité, telle qu'une authentification. Il présente également le type d'exception CORBA dans laquelle apparaît le code mineur.
L'exception ci-après est un exemple d'exception CORBA dans laquelle le code mineur est 49424300 et indique un incident d'authentification. En général, l'exception contient également un message descriptif qui permet d'identifier l'incident. Ici, le message détaillé est : "Exception interceptée à l'appel de authenticateBasicAuthData à partir de SecurityServer pour l'utilisateur jdoe. Motif : com.ibm.WebSphereSecurity.AuthenticationFailedException" qui indique que l'authentification a échoué pour l'utilisateur jdoe.
Une zone de l'exception (completed) indique si la méthode a été exécutée ou non. En cas de NO_PERMISSION, n'appelez jamais le message ; elle est donc toujours completed:No. D'autres exceptions interceptées côté serveur peuvent présenter un statut "Maybe" ou "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)
Nom du code mineur | Valeur du code mineur (en hexa) | Type d'exception (dans le module de org.omg.CORBA .*) | Description du code mineur | Tentative de relance effectuée par le client autonome (lorsque authenticationRetryEnabled = true) | Tentative de relance effectuée par le serveur faisant office de client (lorsque authenticationRetryEnabled = true) |
---|---|---|---|---|---|
AuthenticationFailed | 49424300 | NO_PERMISSION | Ce code représente une erreur générique d'échec d'authentification. Aucune détail n'est fourni concernant la validité du mot de passe ou de l'ID utilisateur. Certains registres d'utilisateurs utilisent ce type de code d'erreur, d'autres préfèrent utiliser les trois types qui suivent, plus spécifiques. | Yes | Yes |
InterceptLocateException | 494210B8 | INTERNAL | Signale un incident lors du traitement d'une localisation de requête entrante. | Non | Non |
InvalidUserid | 49424301 | NO_PERMISSION | Ce code se produit lorsque le registre renvoie un ID utilisateur incorrect. | Yes | Non |
InvalidPassword | 49424302 | NO_PERMISSION | Ce code se produit lorsque le registre renvoie un mot de passe incorrect. | Yes | Non |
InvalidSecurityCredentials | 49424303 | NO_PERMISSION | Il s'agit d'une erreur générique indiquant que les justificatifs d'identification sont incorrects pour une raison ou une autre. Les attributs corrects sont probablement pas définis. | Oui, si le client dispose d'un justificatif de type BasicAuth (identification basée sur jeton rejetée dans un premier temps). | Yes |
InvalidRealm | 49424304 | NO_PERMISSION | Ce code se produit lorsque le domaine indiqué dans le jeton reçu du client ne correspond pas au domaine en cours du serveur. | Non | Non |
ValidationFailed | 49424305 | NO_PERMISSION | Echec de validation lors de l'envoi d'un jeton à partir d'un client ou serveur vers un serveur cible alors que le format du jeton ou le délai d'expiration est incorrect. | Oui, si le client dispose d'un justificatif de type BasicAuth (identification basée sur jeton rejetée dans un premier temps). | Yes |
CredentialTokenExpired | 49424306 | NO_PERMISSION | Code plus spécifique du motif de l'échec de validation. Dans ce cas, le jeton a une durée de vie absolue, et cette durée est écoulée. Le jeton n'est donc plus valide et ne peut être utilisé. | Oui, si le client dispose d'un justificatif de type BasicAuth (identification basée sur jeton rejetée dans un premier temps). | Yes |
InvalidCredentialToken | 49424307 | NO_PERMISSION | Plus spécifique du motif de l'échec de validation. Dans ce cas, le jeton n'a pas été déchiffré ou les données qu'il contient ne sont pas lisibles. | Oui, si le client dispose d'un justificatif de type BasicAuth (identification basée sur jeton rejetée dans un premier temps). | Non |
SessionDoesNotExist | 49424308 | NO_PERMISSION | Indique que la session CSIv2 n'existe pas sur le serveur. En général, une relance est automatiquement lancée et une nouvelle session créée. | Oui | Yes |
SessionConflictingEvidence | 49424309 | NO_PERMISSION | Indique qu'il existe déjà une session sur le serveur qui correspond à l'ID de contexte transmis par le client. Toutefois, les informations fournies par le client pour ce message EstablishContext sont différentes de celles fournies à l'origine pour établir la session. | Yes | Yes |
SessionRejected | 4942430A | NO_PERMISSION | Indique que la session référencée par le client a précédemment été rejetée par le serveur. | Oui | Yes |
SecurityServerNotAvailable | 4942430B | NO_PERMISSION | Cette erreur se produit lorsque le serveur n'arrive pas à contacter le serveur de sécurité local ou distant pour authentification ou validation. | Non | Non |
InvalidIdentityToken | 4942430C | NO_PERMISSION | Cette erreur indique que l'identité ne peut pas être obtenue du jeton d'identification lorsque la vérification d'identité est activée. | Non | Non |
IdentityServerNotTrusted | 4942430D | NO_PERMISSION | Indique que l'ID du serveur émetteur ne figure pas dans
la liste des principaux sécurisés du serveur cible.
|
Non | Non |
InvalidMessage | 4942430E | NO_PERMISSION | Indique que le format du message CSIv2 est incorrect pour le serveur récepteur. | Non | Non |
MappingFailed | 4942430F | NO_PERMISSION | Indique qu'une erreur s'est produite lors du mappage d'un sujet entrant à l'aide de la configuration de connexion système entrante RMI. | Non | Non |
RevokedSecurityName | 49424310 | NO_PERMISSION | Indique que l'ID utilisateur est révoqué. | Yes | Non |
ExpiredPassword | 49424311 | NO_PERMISSION | Indique que le mot de passe est arrivé à expiration. | Yes | Non |
AuthenticationNotSupported | 49421090 | NO_PERMISSION | Cette erreur se produit lorsqu'un mécanisme ne supporte pas l'authentification (très rare). | Non | Non |
InvalidSecurityMechanism | 49421091 | NO_PERMISSION | Indique que le mécanisme de sécurité spécifié est inconnu. | Non | Non |
CredentialNotAvailable | 49421092 | NO_PERMISSION | Indique qu'un justificatif n'est pas disponible au moment requis. | Non | Non |
SecurityMechanismNotSupported | 49421093 | NO_PERMISSION | Cette erreur se produit lorsqu'un mécanisme de sécurité indiqué dans le jeton CSIv2 n'est pas implémenté sur le serveur. | Non | Non |
ValidationNotSupported | 49421094 | NO_PERMISSION | Cette erreur se produit lorsqu'un mécanisme ne supporte pas la validation, tel que LocalOS. Cette erreur ne se produit pas car le justificatif d'identification du système d'exploitation local (LocalOS) n'étant pas transmissible, la validation ne doit jamais lui être appliquée. | Non | Non |
CredentialTokenNotSet | 49421095 | NO_PERMISSION | Permet d'indiquer que le jeton qui se trouve dans le justificatif est nul. | Non | Non |
InvalidEvidence | 49421096 | NO_PERMISSION | Cette erreur indique que l'authentification du client est nécessaire sur le serveur. Cependant, la demande de méthode en provenance du client ne contient pas les informations d'authentification. | Non | Non |
UserRegistryMethod_Protected | 49421098 | NO_PERMISSION | Cette erreur signale une tentative d'accès à distance d'une méthode UserRegistry protégée. | Non | Non |
ServerConnectionFailed | 494210A0 | COMM_FAILURE | Erreur signalant qu'une tentative de connexion a échoué. | Oui (via une nouvelle tentative de l'ORB) | Oui (via une nouvelle tentative de l'ORB) |
CorbaSystemException | 494210B0 | INTERNAL | Ce code est une exception générique propre à CORBA dans le code système. | Non | Non |
JavaException | 494210B1 | INTERNAL | Il s'agit d'une erreur générique qui indique qu'une exception Java inattendue a été émise. | Non | Non |
ValueIsNull | 494210B2 | INTERNAL | Ce code est utilisé pour indiquer qu'une valeur ou un paramètre transmis est nul. | Non | Non |
EffectivePolicyNotPresent | 494210B3 | INTERNAL | Indique qu'un objet de stratégie en vigueur pour CSIv2 est manquant. Cet objet permet de déterminer les paramètres de configuration de la sécurité qui sont définis. | Non | Non |
NullPointerException | 494210B4 | INTERNAL | Ce code est utilisé pour indiquer qu'une exception NullPointerException a été interceptée dans le contexte d'exécution. | Non | Non |
ErrorGettingClassInstance | 494210B5 | INTERNAL | Signale un incident de chargement dynamique d'une classe. | Non | Non |
MalFormedParameters | 494210B6 | INTERNAL | Signale que des paramètres sont incorrects. | Non | Non |
DuplicateSecurityAttributeType | 494210B7 | INTERNAL | Indique qu'un attribut de justificatif a été spécifié deux fois au cours de l'opération set_attributes. | Non | Non |
MethodNotImplemented | 494210C0 | NO_IMPLEMENT | Indique qu'une méthode appelée n'a pas été implémentée. | Non | Non |
GSSFormatError | 494210C5 | BAD_PARAM | Ce code indique qu'une routine de codage et de décodage GSS (Generic Security Services) a créé une exception. | Non | Non |
TagComponentFormatError | 494210C6 | BAD_PARAM | Ce code indique qu'un composant marqué n'est pas lu correctement. | Non | Non |
InvalidSecurityAttributeType | 494210C7 | BAD_PARAM | Ce code indique qu'un des types d'attribut spécifiés lors de l'opération set_attributes est incorrect. | Non | Non |
SecurityConfigError | 494210CA | INITIALIZE | Ce code indique une incompatibilité entre les configurations client et serveur. | Non | Non |
Pour toutes les dernières informations disponibles auprès du support technique IBM sur les incidents recensés et leur résolution, accédez à la page IBM Support.
Le support technique d'IBM possède des documents permettant de gagner du temps lors de la collecte des informations requises pour résoudre ce problème. Avant d'ouvrir un PMR, consultez la page IBM Support du serveur qui héberge la ressource à laquelle vous tentez d'accéder.