PowerProtect: La autenticación falla al usar Active Directory después de actualizar a la versión 19.19

Summary: Los usuarios no pueden iniciar sesión en PowerProtect Data Manager con las credenciales de Active Directory.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Los usuarios no pueden autenticarse con sus credenciales de Microsoft Active Directory (AD) después de actualizar PowerProtect a la versión 19.19.0-15.

Se muestra un mensaje de error similar al siguiente:

"Failed to authenticate the user with identity provider. Please check for any network connectivity issues with the external identity provider if configured. Also check for expired certificates or credential issues with the configured provider."


Aparece un mensaje de error similar al siguiente en el archivo keycloak.log en el dispositivo PowerProtect:

2025-04-02 01:11:20,715 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-23) Uncaught server error: org.keycloak.models.ModelException: LDAP Query failed
	at org.keycloak.storage.ldap.idm.query.internal.LDAPQuery.getResultList(LDAPQuery.java:178)
	at org.keycloak.storage.ldap.idm.query.internal.LDAPQuery.getFirstResult(LDAPQuery.java:185)
	at org.keycloak.storage.ldap.LDAPStorageProvider.loadLDAPUserByUsername(LDAPStorageProvider.java:1052)
	at org.keycloak.storage.ldap.LDAPStorageProvider.getUserByUsername(LDAPStorageProvider.java:649)
	at org.keycloak.storage.ldap.LDAPStorageProvider.getUserById(LDAPStorageProvider.java:373)
	at org.keycloak.storage.UserStorageManager.getUserById(UserStorageManager.java:395)
	at org.keycloak.models.cache.infinispan.UserCacheSession.getUserById(UserCacheSession.java:222)
	at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.wrap(PersistentUserSessionProvider.java:642)
	at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSession(PersistentUserSessionProvider.java:287)
	at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSession(PersistentUserSessionProvider.java:282)
	at org.keycloak.services.managers.AuthenticationManager.verifyIdentityToken(AuthenticationManager.java:1493)
	at org.keycloak.services.managers.AuthenticationManager.authenticateIdentityCookie(AuthenticationManager.java:862)
	at org.keycloak.services.managers.AuthenticationSessionManager.getUserSessionFromAuthenticationCookie(AuthenticationSessionManager.java:259)
	at org.keycloak.protocol.AuthorizationEndpointBase.createAuthenticationSession(AuthorizationEndpointBase.java:184)
	at org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.process(AuthorizationEndpoint.java:193)
	at org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.buildGet(AuthorizationEndpoint.java:115)
	at org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint$quarkusrestinvoker$buildGet_4b690b27439f19dd29733dc5fd4004f24de0adb6.invoke(Unknown Source)
	at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
	at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
	at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
	at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:635)
	at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
	at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
	at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.keycloak.models.ModelException: Querying of LDAP failed org.keycloak.storage.ldap.idm.query.internal.LDAPQuery@29377815
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPIdentityStore.fetchQueryResults(LDAPIdentityStore.java:294)
	at org.keycloak.storage.ldap.idm.query.internal.LDAPQuery.getResultList(LDAPQuery.java:174)
	... 27 more
Caused by: javax.naming.CommunicationException: yourcompany.com:636 [Root exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
	at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:251)
	at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:141)
	at java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1620)
	at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2848)
	at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:349)
	at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:229)
	at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189)
	at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:247)
	at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)
	at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)
	at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:520)
	at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
	at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
	at java.naming/javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.createLdapContext(LDAPContextManager.java:74)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.getLdapContext(LDAPContextManager.java:93)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPOperationManager.execute(LDAPOperationManager.java:709)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPOperationManager.execute(LDAPOperationManager.java:704)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPOperationManager.search(LDAPOperationManager.java:255)
	at org.keycloak.storage.ldap.idm.store.ldap.LDAPIdentityStore.fetchQueryResults(LDAPIdentityStore.java:278)
	... 28 more
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:378)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:316)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:647)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:467)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:363)
	at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476)
	at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447)
	at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)
	at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
	at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)
	at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)
	at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)
	at java.naming/com.sun.jndi.ldap.Connection.initialSSLHandshake(Connection.java:370)
	at java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:288)
	at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:230)
	... 47 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:388)
	at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:271)
	at java.base/sun.security.validator.Validator.validate(Validator.java:256)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:230)
	at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
	at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:631)
	... 61 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:148)
	at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:129)
	at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
	at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:383)
	... 66 more

Cause

Este comportamiento se observa cuando se configura alta disponibilidad para controladoras de dominio. En PowerProtect Data Manager 19.19, hay un cambio importante en la arquitectura con respecto a cómo funciona la autenticación y la administración de usuarios. Como parte de la actualización, la configuración existente se migra a la nueva arquitectura. Después de la migración, ante la ausencia del certificado de CA raíz que se utiliza para las controladoras de dominio de la cadena de confianza de PowerProtect Data Manager se interrumpe

, la validación falla cuando se modifica la conexión de Active Directory para extraer automáticamente el certificado de CA raíz a la cadena de confianza.

Resolution

En las versiones de PowerProtect Data Manager posteriores a 19.19.0-15, los cambios de arquitectura afectan la validación de la cadena de certificados. Realice los siguientes pasos para agregar un certificado de CA raíz a la cadena de confianza:

  1. Asegúrese de que el archivo de certificado de CA raíz que se utiliza en las controladoras de dominio esté disponible.
  2. Elimine la conexión existente a Active Directory. 
  3. Seleccione el botón Add en la página Directory Settings.
  4. Seleccione AD, marque la casilla de verificación Conexión segura y complete los detalles de Active Directory.
  5. En la sección Certificate, seleccione la opción Upload Certificate.
  6. La selección de la opción Cargar certificado le permite cargar o pegar el certificado raíz o de host.
Para cargar un certificado raíz o de host:
  • Seleccione la opción Cargar archivo de certificado.
  • Seleccione el tipo de certificación, ya sea Host, ICA o Raíz. Si se va a cargar un certificado de CA raíz, seleccione la opción Raíz.
  • Haga clic en Cargar archivo de certificado y seleccione el certificado de su sistema/servidor.
NOTA: Los tipos de archivos compatibles son .pem y .crt.
 
Para pegar un certificado raíz:
  • Seleccione la opción "Paste Certificate ".
  • Seleccione el tipo de certificación, ya sea Host, ICA o Raíz. Si se agrega un certificado de CA raíz, seleccione la opción Raíz.
  • Pegue el certificado en el campo vacío.
  1. Revise la información en Show Advanced Settings y seleccione el botón Apply
  2. Vaya al menú Administración , seleccione Certificados y, a continuación, la pestaña Servidores externos . Valide que puede encontrar un certificado de CA raíz en la lista con el estado Aprobado para el número de puerto utilizado (636 es el puerto predeterminado).
  3. Vaya a la página Grupos de usuarios en la sección Control de acceso para agregar usuarios y grupos desde Active Directory. 
  4. Pruebe mediante la autenticación con las credenciales de Active Directory. Los usuarios deben usar userPrincipalName(UPN) al agregar el nombre de usuario en la página de inicio de sesión. 

La Guía de configuración de seguridad de PowerProtect Data Manager contiene más opciones para las conexiones del protocolo ligero de acceso a directorios (LDAP) o AD.

Additional Information

Desde PowerProtect Data Manager 19.19 en adelante, en el nombre de usuario se recomienda utilizar userPrincipalName (UPN) configurado en Active Directory. El nombre de dominio utilizado en UPN puede ser diferente al nombre utilizado al agregar un dominio a PowerProtect Data Manager. En versiones anteriores, los usuarios tenían que agregar un nombre de dominio que se agregaba a PowerProtect Data Manager.

Solución alternativa
: la conexión existente de Microsoft Active Directory se puede quitar y agregar como LDAP sin usar la capa de sockets seguros (SSL). Esto permite que los usuarios se autentiquen sin utilizar la cadena de certificados.

Affected Products

PowerProtect Data Manager, PowerProtect Data Manager Essentials
Article Properties
Article Number: 000308292
Article Type: Solution
Last Modified: 05 Nov 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.