前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于LDAP&&Role-based Authorization Strategy实现Jenkins团队权限管理

基于LDAP&&Role-based Authorization Strategy实现Jenkins团队权限管理

作者头像
DevOps在路上
发布2024-04-15 15:57:06
2250
发布2024-04-15 15:57:06
举报
文章被收录于专栏:DevOps实践之路

集成LDAP添加企业用户

jenkins 默认可以手动添加用户,由于简单不做解释;这里重点说下企业内部使用LDAP来实现用户的统一管理,也就是说无须再次创建用户

需要使用LDAP插件,然后在Configure Global Security 页面进行配置,输入公司内部LDAP服务信息。

注意:

  1. jenkins 默认使用“Jenkins' own user database”,即自己本身的数据库,一旦切换,当前配置数据可能丢失,所以切忌随意修改该配置 !
  2. 在配置LDAP前,一定要记得开启匿名用户的 admin 权限,否则一旦配错,自己就无法登录了!

权限角色配置

在实际工作中,存在多个团队都需要Jenkins来实现持续交付,但是又希望不同团队之间进行隔离,每个项目有自己的view, 只能看到自己项目的jenkins job.

但是,jenkins默认的权限管理体系不支持用户组或角色的配置,这里利用Role-based Authorization Strategy实现上述目的

直接跳过插件安装,介绍如何基于“项目”配置.

1. 启用Role-based Authorization Strategy

进入系统管理 > Configure Global Security ,配置如下,此时该策略已启用 注意:策略启用之后,不禁止修改!策略之间是独立的,一旦选择另外一中策略,当前策略将丢失,包括已生效的配置。

2. 创建Glabal roles和Project roles

进入系统管理 > Manage and Assign Roles

ManageRoles

  • Global roles是对全局的角色控制
  • Project roles只针对项目进行控制,所以需要为每个项目单独添加指定的role (区别于全局,只能有项目相关权限,没有jenkins管理权限配置)

设置全局角色(全局角色可以对jenkins系统进行设置与项目的操作)

设置项目角色(项目角色只能对项目进行操作)

注意:必须先进行Global roles的配置后方可对Project roles进行配置,可以解为先配置整体性权限,再按项目分权限,遵守从大到小权限控制的原则!

配置job pattern需要注意:prod.*代表匹配以prod开头的内容 例如:如果以dev开头就写成 dev._ 一定要加上"."; ._test表示以test结尾的内容项目

  • job_one_manage:job_one的管理人员
  • job_one_user:job_one的普通用户

3. Roles 配置规则和流程

这里强制规定项目role配置规则和流程

3.1 为项目/团队添加 project role

以“demo”项目为例,添加manager和user两种role

代码语言:javascript
复制
    - role:demo-manager - pattern: "^demo-[a-zA-Z]*"
    - role:demo-user      - pattern: "^demo-[a-zA-Z]*"
  1. 在实际使用中,可以为"项目/团队"创建两种role, 甚至一个都可以
  2. pattern是通过“正则表达”匹配为项目创建的jenkins job, 所有命名需要规范,简单,一个表达式可以匹配多个项目拥有的job.这里参考"demo"项目

官方文档介绍该选项支持正则表达式,如Roger-.表示所有以Roger-开头的项目,

(?i)roger-.* 表示以roger-开头的项目并且不区分大小写,如以ABC开头的项目可以配置为ABC|ABC.* ,也可以使用“abc|bcd|efg”直接匹配多个项目。

与的运算,比如匹配以aa开头并且不包括abc的字符串:aa[^abc].*

3.2 为项目/团队成员分配 role

通过以下配置,开发团队成员就只能看到自己的"demo"项目

4. 查看授权后效果

1.admin用户进入系统可以看到所有的系统管理权限和所有的项目

2.以user_ops用户进入系统:可以看到并没有系统的权限,但是有所有job的管理权限

3.以project_manager用户进入系统:可以看到也是没有系统的权限,只有job_one的管理权限

  1. 以project_user用户进入系统:可以看到没有系统的权限,只有job_one的build和查看工作空间的权限
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps在路上 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集成LDAP添加企业用户
  • 权限角色配置
    • 1. 启用Role-based Authorization Strategy
      • 2. 创建Glabal roles和Project roles
        • 3. Roles 配置规则和流程
          • 3.1 为项目/团队添加 project role
          • 3.2 为项目/团队成员分配 role
        • 4. 查看授权后效果
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档