jenkins - Jenkins 中的 LDAP 组配置
问题描述
我最近安装了 Jenkins 和 Ldap 插件。我可以在 Jenkins 中设置用户身份验证,但现在我也想设置组。但是,我组织的 Ldap 有点棘手,我无法从组的角度正确设置它。这是我公司的 LDAP 树结构:
我正在使用 Java 1.8、Jenkins LDAP 插件 1.20、Jenkins 2.176.2
解决方案
试试这个配置:
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
(参见此处)。
推荐阅读
- android - Kotlin Flow:当我有新订阅者时,如何从订阅流中获取缓存数据?
- reactjs - 忽略或防止 ESLint 错误破坏 React webpack 项目中的构建
- spring-boot - Spring Data JDBC 测试容器数据源
- spring - 春天打开新的光池,尽管旧的池已经存在
- ggpubr - ggarrange 不绘制每个 ggplot 对象
- c# - 如何使用 .NET 获取所有未读的 Windows 通知消息
- python - 如何编写一个函数让输出是范围(x,y)中的所有素数
- nginx - nginx禁用重定向到外部站点
- django - 如何使用 Cloud Firestore 删除 django 中的记录?
- typescript - 使用 where 子句对查询进行续集