Docker JFrog容器注册表7.3.2不能与Active Directory一起使用
我希望这里有人能帮我。我们目前正在评估JFrog的Artifactory-Container注册表,它作为Docker服务运行,在我的一生中,我无法让它在我们的Active Directory实例中正常工作。我在版本6中工作得很好,但随着版本7的发布,我决定用新版本开始新的工作 因此,我已经在我们的swarm中启动并运行了artifactory jcr:7.3.2。进入管理->安全->LDAP并使用以下字段创建新的LDAP设置配置文件: LDAP URL:ldap://mydc.company.net:389/DC=company,DC=net 用户DN模式:空白 电子邮件属性:邮件 搜索筛选器:sAMAccountName={0} 搜索库:OU=公司用户 搜索子树:已选中 经理DN:CN=_svccount,OU=服务帐户,OU=公司用户,DC=公司,DC=net 管理员密码:正确的密码 管理器DN正确,密码已验证和测试。我可以从任何计算机使用服务帐户登录,并使用ADExplorer成功查询目录,并仅使用返回我的用户对象的我的sAMAccountName对我的帐户发出查询。因此,我知道服务帐户的密码正确,权限正确,并且可以成功发出查询 但是,当尝试从LDAP设置配置文件页面测试帐户时,我会弹出一条通用错误消息,说明连接到LDAP服务器时出错: 对于日志,我查看/var/opt/artifactory/artifactory-service.log文件 以下是“测试帐户”尝试失败后立即出现的条目:Docker JFrog容器注册表7.3.2不能与Active Directory一起使用,docker,active-directory,ldap,artifactory,jfrog-container-registry,Docker,Active Directory,Ldap,Artifactory,Jfrog Container Registry,我希望这里有人能帮我。我们目前正在评估JFrog的Artifactory-Container注册表,它作为Docker服务运行,在我的一生中,我无法让它在我们的Active Directory实例中正常工作。我在版本6中工作得很好,但随着版本7的发布,我决定用新版本开始新的工作 因此,我已经在我们的swarm中启动并运行了artifactory jcr:7.3.2。进入管理->安全->LDAP并使用以下字段创建新的LDAP设置配置文件: LDAP URL:ldap://mydc.company.
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
从登录ui,我尝试使用我的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帐户名进行登录,而不是用户主体名。我还省略了登录的netbios域名部分。如果我尝试添加完整的SAM帐户名以包括域companyname\myuseraccount,我会得到一个Status 500错误页面
有人能告诉我我做错了什么吗?
谢谢你的帮助 在发布这个问题后不久,我决定将shell放入正在运行的jcr容器中,复制并安装必要的rpm文件,并使openldap正常工作。然后使用容器中的ldapsearch,使用我提供的artifactoryui设置查询我们的域控制器。还有维奥拉!问题是绑定DN。我认为Manager DN form字段应该是用于查询目录的绑定用户帐户的完整可分辨名称,但ldapsearch返回object not found错误 我将绑定帐户更改为服务帐户的SAM帐户名\u svccount,并返回了一个结果。此后,我又回到了artifactory设置,并将Manager DN更新为_svccount,一切正常 Jfrog应该更改Manager DN字段的描述。可分辨名称由对象的完整LDAP路径组成。这不起作用,至少在我的特殊情况下不起作用。我们使用的其他基于Java的产品,如SonarQube,对绑定帐户使用经典的完整可分辨名称。Jfrog容器注册表显然没有
-更新-我最终不得不使用NetBIOS域作为Manager DN帐户的一部分来进行身份验证。因此,我不得不使用mycompany\\u svccount作为经理DN,而不是使用"svccount"作为经理DN。但是,Active Directory用户在登录到容器注册表时不使用NetBIOS域,只使用SAM帐户名。i、 e.myAccount vs.mycompany\myAccount谢谢!我们将研究如何改进文档!虽然我从未遇到过这样的问题,但我认为你们应该继续关注用户名和密码部分。由于日志指定了“用户myuseraccount无法进行身份验证”的确切原因。