首页 > 解决方案 > Jenkins 中的 LDAP 组配置

问题描述

我最近安装了 Jenkins 和 Ldap 插件。我可以在 Jenkins 中设置用户身份验证,但现在我也想设置组。但是,我组织的 Ldap 有点棘手,我无法从组的角度正确设置它。这是我公司的 LDAP 树结构:

LDAP 树结构

我正在使用 Java 1.8、Jenkins LDAP 插件 1.20、Jenkins 2.176.2

这是我在 LDAP 字段中尝试的内容: LDAP 设置

标签: jenkinsldap

解决方案


试试这个配置:

root DN             : dc=domain,dc=com       # root base dn
User search base    : ou=People              # relative to the root search base
Group search base   : ou=Groups              # relative to the root search base
User search filter  : uid={0}
Group search filter : (& (cn={0}) (| (objectclass=groupOfNames) (objectclass=groupOfUniqueNames) (objectclass=posixGroup)))
Group membership    : (| (member={0}) (uniqueMember={0}) (memberUid={1}))
  • 上面的组搜索过滤器是默认值,如果您不确定哪个 objectClass 定义了您的组,请按原样使用它,否则删除 OR 条件以缩小搜索范围,例如。: (& (cn={0})(objectclass=groupOfNames)). 用于管理组的最常见的对象类是groupOfNames提供member处理成员关系的属性。

  • 上面的组成员身份也设置为默认值(在“搜索包含用户的组”模式下)。现在,如果您的组有 objectClass "groupOfNames" 例如,您只需要 filter member={0}。另一个 objectClass 可能依赖于另一个成员资格属性(例如“groupOfUniqueNames”的“uniqueMember”)。也就是说,如果您的后端提供该memberOf属性,您可能更愿意切换到其他模式“解析用户属性以获取组列表”并设置Group membership attribute : memberOf(参见此处)。


推荐阅读