来自 Artifactory 的 LDAP 身份验证

LDAP authentification from Artifactory

有一段时间我试图通过 Artifactory LDAP 接口向 "LDAP server" 进行身份验证,由 Apache DS 实现。

我在 Eclipse Oxygen 上使用 Artifactory 6.1.0、Apache DS 和 LDAP 透视图。

如您所见,DIT(目录信息树)在名为 system 的组织单位下有两个用户(admin 和 user1):

1-当我从 "user DN pattern" (uid=admin,ou=system) 进行身份验证并测试与服务器的连接时,测试用户应与 [= 中的指定用户相同50=],如果我尝试与另一个用户(例如 user1)建立连接,但验证失败。

第 1 部分:

第 2 部分:

Artifactory cmd 错误信息:

=>测试用户应与"user DN pattern"

中指定的相同

2-如果我使用 "Manager DN" 字段并输入密码,即使我使用 "Manager DN" 中指定的相同用户作为测试用户,验证也会失败。

第 1 部分:

第 2 部分:

=>即使测试用户相同,也无法认证

很多困惑:我必须使用哪种方法来建立与 LDAP 服务器的连接?通过用户 DN 模式和经理 DN 连接之间有什么区别吗?对于每种方法,哪些字段(搜索过滤器、搜索库...)不应保留为空?以及如何对不同的测试用户进行身份验证?

在Jfrog提供的教程中,使用"Manager DN method"与DIT中已经创建的不同测试用户进行认证是正常的。 =>教程:https://www.youtube.com/watch?v=_nT76RgXA2c

最后想问一下,创建LDAP组是否需要Artifactory的专业版,因为在oss版中是禁用的?我可以免费获得该模块吗?!

我需要一个明确的解释,谢谢。

您可以选择两种 "methods" 身份验证,或者您可以同时配置两者:

  • "Search-based"认证需要填写Search FilterManager DN/Password,可选Search Base。 Artifactory 将使用 Manager DN 用户连接到 LDAP,并 运行 搜索 Search Filter。 LDAP 服务器找到合适的用户 DN(专有名称,基本上是唯一的用户 ID),并将其发送回 Artifactory。然后 Artifactory 使用该用户的 DN 登录。

  • "Direct" 认证要求您只填写 User DN Pattern 字段。此方法跳过用户搜索步骤,仅使用 User DN Pattern 字段中的任何 DN 登录。


User DN PatternSearch Filter 字段都是 模式 。具体来说,如果这些字段包含“{0}”,这将替换为尝试进行身份验证的用户的名称。

您的 User DN Pattern 只允许您使用用户 admin 登录的原因是因为它被硬编码为始终以 admin 进行身份验证,而不管哪个用户实际尝试登录in. 而不是 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 看起来不错,就像我想的那样。


Finally I want to ask if to create LDAP groups I need the pro version of Artifactory, because it's disabled in the oss version? Can I get that module for free?!

LDAP组同步是Pro功能,在OSS中不可用,所以需要购买Pro license才能使用。你不能免费得到它。