Jenkins/Hudson - LDAP 组 *lookup* 不起作用

Mar*_*tin 3 active-directory ldap groups hudson jenkins

我试图让Jenkins通过我们的活动目录组对用户进行身份验证。

如果我插入用户,他们会被正确查找。如果我插入组名,则找不到它们。


编辑:通过反复试验,我发现通过组进行的身份验证确实有效,也就是说,一旦我将组添加KS-Soft到列表中,该组中的用户就可以登录但是,在输入用户名和组名的列表中,Jenkins 尝试显示一个图标,表明它是用户还是组。用户图标显示正确,但组图标始终是错误图标。

所以看起来 Jenkins 可以通过组成员身份验证用户,但它无法验证给定的组名字符串是否存在于目录中。这在技术上甚至可能吗?(也许只是图标显示搞砸了。)


Jenkins设置如下:(注意:mydomaincom用户名不同,其余为精确值)

Server  : ldap://ks-dc01.mydomain.com:389
root DN : dc=mydomain,dc=com
User Search Base : ou=KSUser
User Search Filter : userPrincipalName={0}
Group search base : ou=KSGroups
Manager DN : CN=Placeholder Martin,OU=Benutzer,OU=KSUser,DC=mydomain,DC=com
Manager Password : *****
Run Code Online (Sandbox Code Playgroud)

通过此设置,我将用户输入martin.placeholder@mydomain.com到列表中,然后 Jenkins 可以查找该用户,然后我就可以登录了。

但是,我无法让 Jenkins 解析组名称。我使用AD Explorer来确认我的组实际上在下面OU=KSGroups

CN=KS-Soft在 AD Explorer 中显示了一个组,它有一个member属性列出了我感兴趣的所有用户。(用户 martin.placeholder@mydomain.comCN=Placeholder Martin,OU=Benutzer,OU=KSUser,DC=mydomain,DC=com在此属性中列出。

我已经为该组尝试了这些字符串:

  • KS-Soft
  • KS-SOft@mydomain.com
  • ROLE_KS-SoftROLE_KS-Soft@mydomain.com根据此线程

请注意,Jenkins 帮助对以下内容进行了说明Group search base

Jenkins 在 LDAP 上进行的搜索之一是定位用户的组列表。

此字段确定要运行的查询以标识包含组的组织单位。查询几乎总是“ou=groups”,因此请先尝试,尽管此字段可能会留空以从根 DN 进行搜索。

如果登录尝试导致“超出管理限制”或类似错误,请尝试针对您的 LDAP 结构尽可能具体地设置此设置,以缩小查询范围。如果错误仍然存​​在,您可能需要编辑WEB-INF/security/LDAPBindSecurityRealm.groovy jenkins.war 中包含的 文件。将行更改为: groupSearchFilter = "(| (member={0}) (uniqueMember={0}) (memberUid={1}))"; 仅查询 LDAP 中用于组成员身份的字段,例如:groupSearchFilter = "(member={0})";然后重新启动 Jenkins 并重试登录。

我已经尝试了这个文件中的两个值,但都不起作用。

小智 8

今天与 Jenkins 2 有同样的问题。LDAP 配置工作,我可以以 AD 用户身份登录,我可以将 AD 用户添加到矩阵,但是当我将一个组添加到矩阵时,它显示该组的“用户/组未找到” .

最后按照https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin#LDAPPlugin-Groupsearchbase修复它

解决方法是添加(& (cn={0}) (objectclass=group) )为组搜索过滤器。

默认情况下,詹金斯使用 (& (cn={0}) (| (objectclass=groupOfNames) (objectclass=groupOfUniqueNames) (objectclass=posixGroup)))

我们的 AD 组只有

objectClass: top
objectClass: group
Run Code Online (Sandbox Code Playgroud)