在实际工作中,存在多个团队都需要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管理权限配置)

配置job pattern需要注意:prod.代表匹配以prod开头的内容

例如:如果以dev开头就写成 dev.
一定要加上"."; .*test表示以test结尾的内容项目

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

3. Roles 配置规则和流程

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

3.1 为项目/团队添加 project role

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

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

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

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

添加用户-LDAP

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

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

注意:

  1. jenkins 默认使用“Jenkins' own user database”,即自己本身的数据库,一旦切换,当前配置数据可能丢失,所以切忌随意修改该配置 !

  2. 在配置LDAP前,一定要记得开启匿名用户的 admin 权限,否则一旦配错,自己就无法登录了!

最新文章

  1. php多图上传问题笔记
  2. Daily Scrum 10.26
  3. Java可读取操作系统的配置
  4. [转]概率DP总结 by kuangbin
  5. Openwrt flash 空间不足的临时解决方法
  6. 表单重置reset
  7. 使用Excel批量更改或插入SQL语句
  8. 使用boost io_service时,需要注意的东西
  9. Java中的构造方法
  10. HDU 3948 不同回文子串个数
  11. springboot 入门一 hello world!
  12. linux 动态库的符号冲突问题
  13. Android硬件编解码与软件编解码
  14. 20155324王鸣宇 《网络对抗技术》Web基础
  15. C#杀掉进程的方法
  16. 分享一个好用的tmux配置文件
  17. 微信小程序中如何使用WebSocket实现长连接(含完整源码)
  18. nginx error.log 提示 [error] 887#887: *58 FastCGI sent in stderr: "PHP message: PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50556 Library:50637
  19. WorldWind源码剖析系列:星球类World
  20. QSerialPort-Qt串口通讯

热门文章

  1. Mac上特殊方式启动Parallels Desktop 16.0.0 (48916)
  2. 团队作业4-Day4
  3. 题解-CF1139D Steps to One
  4. 题解-[ZJOI2005]沼泽鳄鱼
  5. Oracle 迁移数据库到 mysql
  6. Typora快捷使用方式
  7. 【ubantu 安装Jmeter和Jdk环境】
  8. 我叫Mongo,干了「索引探索篇」提升我的效率,值得您拥有
  9. 1-解决java Scanner出现 java.util.NoSuchElementException
  10. nc监控实现调用受害者cmd