我已将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中运行?
答案 0 :(得分:1)
群组成员资格过滤器memberOf={0}
不正确。
Search for groups containing user
选项通过查询组来查找用户。正确的值为member={0}
。
如果我使用的是Parse user attribute for list of groups
选项,那么memberOf={0}
将是正确的,因为memberOf
是用于指定用户群组的用户属性。