【问题标题】:In Jenkins how do you configure LDAP to restrict access to a specific group?在 Jenkins 中,如何配置 LDAP 以限制对特定组的访问?
【发布时间】:2019-11-14 16:45:16
【问题描述】:

我目前正在尝试在新 VM 上安装新的 Jenkins,以替换当前运行的角落服务器中的旧盒子。旧盒子只配置了一些基本用户共享,而新盒子需要正确使用公司的登录系统。我已经设法将其配置为 LDAP 工作并且用户能够使用他们的标准公司用户名/密码登录但是它目前允许任何人登录(见图)。

我需要做的是将其限制在我设置的特定组中。组基本如下:

群组:CN=IA-EC-DEV,OU=w2k,OU=group,OU=meplc,DC=users,DC=com

有没有办法修改 LDAP 设置,使其只进行身份验证并允许该组中的用户登录?

Version Info:
Jenkins ver. 2.190.2
Active Directory plugin 2.16
LDAP Plugin 1.21

【问题讨论】:

    标签: jenkins active-directory ldap jenkins-plugins


    【解决方案1】:

    Active Directory 有一个反向链接属性“memberOf”。如果所有授权用户都是该组的直接成员,请使用过滤器,例如 (&(cn={0})(memberOf=CN=IA-EC-DEV,OU=w2k,OU=group,OU=meplc,DC=users,DC=com))

    如果您使用嵌套组(即,我是某个组的成员,而该组的成员是 IA-EC-DEV 的成员,因此应该能够登录 Jenkins),Active Directory 有一个处理祖先的特殊规则匹配 OID。它被称为LDAP_MATCHING_RULE_IN_CHAIN,用作(&(cn={0})(memberOf:1.2.840.113556.1.4.1941:=CN=IA-EC-DEV,OU=w2k,OU=group,OU=meplc,DC=users,DC=com))

    【讨论】:

    • 那是替换我目前在用户搜索过滤器或其他字段之一中拥有的内容吗?
    • 是的,上面的过滤器替换了当前的用户搜索过滤器。因此配置 Jenkins,使其只能找到属于该组成员的帐户。它从正常的验证身份验证倒退,然后检查授权流程但具有相同的效果——如果您是会员,您可以登录,如果您不是,则无法登录。如果您需要多个组,请使用复合过滤器,例如 (&(cn={0})(|(memberOf=cn=group1,ou=groups,dc=example,dc=com)(memberOf=cn=group2, ou=groups,dc=example,dc=com)(memberOf=cn=group3,ou=groups,dc=example,dc=com))))
    • 恐怕不走运。我尝试了许多变化和调整,但在测试中我总是被拒绝登录。我确实注意到了,我不知道这是否不同,但是当我将它设置为适用于列出的所有 LDAP 组成员组时,不包括我正在尝试使用的组。它显示了几个名为“team-project-users”和“team-project-admins”的组。这些东西我应该尝试使用吗?如果是这样,到目前为止我尝试过的任何方法都不起作用。
    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2012-05-31
    • 2012-07-18
    • 2022-01-03
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多