LDAP组不在Jenkins安全矩阵中工作

时间:2018-03-12 17:24:49

标签: jenkins ldap

我已将Jenkins连接到LDAP服务器,以便通过安全矩阵管理用户和组的权限。目前它适用于个人用户帐户,但不适用于组。

Jenkins中的当前LDAP配置通过以下方式查找组成员身份:

* Search for groups containing user 
Group membership filter: memberOf={0}

当我将一个LDAP组添加到矩阵时,它会显示group-name旁边的组图标(表示它在LDAP中找到了该组),但是当该组成员的用户登录到Jenkins时,它们只会拥有匿名权限。

我在LDAP插件页面上运行了groovy脚本: https://plugins.jenkins.io/ldap

当给出有效的组名时,它将返回:

"It is a GROUP: hudson.security.LDAPSecurityRealm$GroupDetailsImpl@2fb6ea7d"

我修改了loadGroupbyGroupname行并添加了另一行来尝试获取组中的成员:

    println("  It is a GROUP: " + Jenkins.instance.securityRealm.loadGroupByGroupname(name, true))
    println("  Members are : " + Jenkins.instance.securityRealm.loadGroupByGroupname(name).getMembers())

但这些命令只会返回:

  It is a GROUP: hudson.security.LDAPSecurityRealm$GroupDetailsImpl@5f1013d0
  Members are : null

如何获取LDAP组中的成员并使这些LDAP组在Jenkins中运行?

1 个答案:

答案 0 :(得分:1)

群组成员资格过滤器memberOf={0}不正确。

Search for groups containing user选项通过查询组来查找用户。正确的值为member={0}

如果我使用的是Parse user attribute for list of groups选项,那么memberOf={0}将是正确的,因为memberOf是用于指定用户群组的用户属性。