有一阵子,我试图从Artifactory LDAP界面向由Apache DS实现的“ LDAP服务器”进行身份验证。
我使用Artifactory 6.1.0,即Eclipse Oxygen上的Apache DS和LDAP透视图。
您看到的DIT(目录信息树)在名为system的组织单位下有两个用户(admin和user1):
1-当我从“用户DN模式”(uid = admin,ou = system)进行身份验证并测试与服务器的连接时,测试用户应与“用户DN模式”中的指定用户相同“,如果我尝试使用另一个用户(例如user1),则与服务器的连接已建立,但身份验证失败。
第1部分:
第2部分:
Artifactory cmd错误消息:
=>测试用户应与“用户DN模式”中指定的用户相同
2-如果我使用“ Manager DN”字段并输入密码,即使我使用在“ Manager DN”中指定的相同用户作为测试用户,认证也将失败。
第1部分:
第2部分:
=>即使测试用户相同,也无法进行身份验证。
很多困惑:我必须使用哪种方法来建立与LDAP服务器的连接?通过用户DN模式与Manager DN连接之间有什么区别吗?每种方法哪些字段(搜索过滤器,搜索库...)不应保留为空?以及如何与其他测试用户进行身份验证?
在Jfrog提供的老师中,使用“管理员DN方法”对DIT中已经创建的其他测试用户进行身份验证可以正常进行。 =>老师:https://www.youtube.com/watch?v=_nT76RgXA2c
最后,我想问是否要创建LDAP组?我需要Artifactory的专业版,因为在oss版本中已禁用它?我可以免费获得该模块吗?!
我需要一个清晰的解释,谢谢。
答案 0 :(得分:0)
您可以选择两种身份验证“方法”,也可以同时配置两者:
“基于搜索”的身份验证要求您填写Search Filter
和Manager DN/Password
,以及可选的Search Base
。 Artifactory将使用Manager DN
用户连接到LDAP,并搜索Search Filter
。 LDAP服务器找到适当的用户DN(专有名称,基本上是唯一的用户ID),然后将其发送回Artifactory。然后Artifactory使用该用户的DN登录。
“直接”身份验证仅要求您填写User DN Pattern
字段。此方法跳过了用户搜索步骤,仅使用User DN Pattern
字段中的任何DN登录。
User DN Pattern
和Search Filter
字段均为模式。具体来说,如果这些字段包含“ {0}
”,则将其替换为尝试进行身份验证的用户的名称。
您的User DN Pattern
只允许您与用户admin
登录的原因是,无论实际上是哪个用户尝试登录,它都经过硬编码,始终验证为admin
。该值应为uid=admin,ou=system
,而不是uid={0},ou=system
。
您的Manager DN
失败的原因可能是您的Search Filter
错误。它的值为sAMAccountName={0}
,但是在您的LDAP配置中没有看到任何名为sAMAccountName
的属性。相反,请尝试将Search Filter
设置为uid={0}
(或者,向您在LDAP中的每个用户添加一个sAMAccountName
字段)。您的Manager DN/Password
和您的Search Base
看起来很不错。
最后,我想问是否要创建LDAP组?我需要Artifactory的专业版,因为在oss版本中已禁用它?我可以免费获得该模块吗?!
LDAP组同步是Pro的一项功能,在OSS中不可用,因此您需要购买Pro许可证才能使用它。您无法免费获得它。