PowerProtect. Сбой проверки подлинности с помощью Active Directory после модернизации до версии 19.19

Summary: Пользователи не могут войти в PowerProtect Data Manager с помощью учетных данных 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

Пользователи не могут аутентифицироваться с помощью своих учетных данных Microsoft Active Directory (AD) после обновления PowerProtect до версии 19.19.0-15.

Отобразится сообщение об ошибке, подобное следующему:

"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."


В keycloak.log файле на устройстве 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

Это происходит, когда для контроллеров домена настроен высокий уровень доступности. В PowerProtect Data Manager 19.19 произошли значительные изменения в архитектуре, касающиеся работы аутентификации и управления пользователями. В рамках модернизации существующая конфигурация переносится в новую архитектуру. После переноса в случае отсутствия сертификата корневого CA, используемого для контроллеров домена в PowerProtect Data Manager, цепочка доверия разрывается

: проверка завершается сбоем при изменении подключения к Active Directory для автоматического извлечения корневого сертификата CA в цепочку доверия.

Resolution

В выпусках PowerProtect Data Manager после 19.19.0-15 архитектурные изменения влияют на валидацию цепочки сертификатов. Чтобы добавить корневой сертификат CA в цепочку доверия, выполните следующие действия:

  1. Убедитесь, что файл сертификата корневого источника сертификатов, используемый на контроллерах домена, доступен.
  2. Удалите существующее подключение к Active Directory. 
  3. Нажмите кнопку Add на странице Directory Settings.
  4. Выберите AD, установите флажок Безопасное подключение и заполните сведения об Active Directory.
  5. В разделе Сертификат выберите параметр Загрузить сертификат.
  6. При выборе параметра Загрузить сертификат можно загрузить или вставить корневой сертификат или сертификат хоста.
Для загрузки сертификата хоста или корневого сертификата:
  • Выберите параметр Загрузить файл сертификата.
  • Выберите тип сертификации: Host, ICA или Root. Если необходимо загрузить корневой сертификат CA, выберите вариант Root.
  • Нажмите «Загрузить файл сертификата» и выберите сертификат в системе или на сервере.
ПРИМЕЧАНИЕ. Поддерживаемые типы файлов: .pem и .crt.
 
Для вставки корневого сертификата:
  • Выберите параметр «Paste Certificate».
  • Выберите тип сертификации: Host, ICA или Root. Если добавляется корневой сертификат CA, выберите вариант Корневой.
  • Вставьте сертификат в пустое поле.
  1. Просмотрите информацию в разделе «Show Advanced Settings» и нажмите кнопку Apply
  2. Перейдите в меню Administration , выберите Certificates , а затем вкладку External Servers . Убедитесь, что для используемого номера порта отображается сертификат корневого источника сертификатов с состоянием «Approved» (636 — порт по умолчанию).
  3. Перейдите на страницу Группы пользователей в раздел Управление доступом, чтобы добавить пользователей и группы из Active Directory. 
  4. Выполните проверку подлинности с использованием учетных данных Active Directory. Пользователи должны использовать userPrincipalName (UPN) при добавлении имени пользователя на странице входа. 

Руководство по настройке безопасности PowerProtect Data Manager содержит дополнительные параметры для LDAP (Lightweight Directory Access Protocol) или подключений AD.

Additional Information

Начиная с PowerProtect Data Manager 19.19, в имени пользователя рекомендуется использовать userPrincipalName (UPN), заданное в Active Directory. Имя домена, используемое в UPN, может отличаться от имени, используемого при добавлении домена в PowerProtect Data Manager. В более ранних версиях пользователям нужно было добавить доменное имя, добавленное в PowerProtect Data Manager.

Временное решение:
существующее подключение к Microsoft Active Directory можно удалить и добавить как LDAP без использования протокола SSL (Secure Sockets Layer). Это позволяет пользователям аутентифицироваться без использования цепочки сертификатов.

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.