Я надеялся, что кто-то здесь сможет мне помочь. В настоящее время мы оцениваем Artifactory - контейнерный реестр JFrog, работающий как сервис Docker, и я не могу заставить эту штуку работать должным образом с нашим экземпляром Active Directory. У меня все работало нормально в версии 6, но с выпуском версии 7 я решил начать новую с новой версией.
Итак, у меня есть artifactory-jcr: 7.3.2 и работает в нашем рое. Go в администрирование -> безопасность -> LDAP и создайте новый профиль настроек LDAP со следующими полями:
URL-адрес LDAP: ldap: //mydc.company.net: 389 / DC = компания, D C=net
Шаблон DN пользователя: blank
Атрибут электронной почты: mail
Фильтр поиска: (sAMAccountName = {0})
База поиска: OU = Пользователи компании
Поддерево поиска : проверено
DN менеджера: CN = _svcAccount, OU = учетные записи служб, OU = пользователи компании, DC = компания, D C=net
Пароль менеджера: Правильный пароль
DN менеджера указан правильно, пароль проверен и проверен. Я могу войти в систему с учетной записи службы с любого компьютера и успешно запросить каталог с помощью ADExplorer и выполнить запрос для моей учетной записи, используя только мой sAMAccountName
, который возвращает мой пользовательский объект. Таким образом, я знаю, что пароль учетной записи службы правильный, разрешения для него правильные, и он может успешно выдавать запросы.
Но при попытке протестировать учетную запись со страницы профиля настроек LDAP я получаю всплывающее сообщение об ошибке c с сообщением «Ошибка подключения к серверу LDAP:»
Для журнала: Я просматриваю файл /var/opt/artifactory/artifactory-service.log.
Вот запись, следующая сразу после неудачной попытки «тестовой учетной записи»:
2020-04-03T17:16:46.714Z [jfrt ] [ERROR] [7faa71d56a50ef2b] [o.a.s.l.AbstractLdapService:67] [http-nio-8081-exec-4] - Error connecting to the LDAP server:
org.springframework.security.authentication.AuthenticationServiceException: User myuseraccount failed to authenticate
at org.artifactory.security.ldap.ArtifactoryBindAuthenticator.authenticate(ArtifactoryBindAuthenticator.java:166)
at org.artifactory.security.ldap.LdapServiceImpl.testLdapConnection(LdapServiceImpl.java:77)
at org.artifactory.security.SecurityServiceImpl.testLdapConnection(SecurityServiceImpl.java:3193)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
at com.sun.proxy.$Proxy156.testLdapConnection(Unknown Source)
at org.artifactory.ui.rest.service.admin.security.ldap.ldapsettings.TestLdapSettingsService.testLdapConnection(TestLdapSettingsService.java:76)
at org.artifactory.ui.rest.service.admin.security.ldap.ldapsettings.TestLdapSettingsService.execute(TestLdapSettingsService.java:63)
at org.artifactory.rest.common.service.ServiceExecutor.process(ServiceExecutor.java:38)
at org.artifactory.rest.common.resource.BaseResource.runService(BaseResource.java:92)
at org.artifactory.ui.rest.resource.admin.security.ldap.LdapSettingResource.testLdapSetting(LdapSettingResource.java:90)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200)
2020-04-03T17:16:46.732Z [jfrt ] [ERROR] [7faa71d56a50ef2b] [o.a.s.l.AbstractLdapService:68] [http-nio-8081-exec-4] - Error connecting to the LDAP server:
2020-04-03T17:17:57.524Z [jfrt ] [WARN ] [81a5689d90762c9 ] [o.a.s.l.LdapServiceImpl:179 ] [http-nio-8081-exec-8] - Unexpected exception in LDAP query:for user myuseraccount vid LDAP: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580]
2020-04-03T17:17:57.547Z [jfrt ] [INFO ] [81a5689d90762c9 ] [o.a.s.l.LdapServiceImpl:129 ] [http-nio-8081-exec-8] - Couldn't find user named "myuseraccount" in ADsettings
Из логина я пытаюсь использовать только имя своей учетной записи sam. Я получаю сообщение над формой входа, в котором говорится: «Неверное имя пользователя или пароль»
Вот запись в журнале, созданная в то время:
2020-04-03T17:05:12.060Z [jfrt ] [WARN ] [77c816e57e51530 ] [o.a.s.l.LdapServiceImpl:179 ] [http-nio-8081-exec-8] - Unexpected exception in LDAP query:for user admin vid LDAP: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090446, comment: AcceptSecurityContext error, data 52e, v2580]
Я использую только имя учетной записи sam для входа в систему, а не имя пользователя. Я также пропускаю часть имени домена с именем netb ios. Если я пытаюсь добавить полное имя учетной записи SAM для включения домена, «companyname \ myuseraccount», я получаю страницу ошибки Status 500.
Может кто-нибудь сказать мне, что я делаю здесь неправильно? Спасибо за любую помощь!