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

在实际工做中,存在多个团队都须要Jenkins来实现持续交付,可是又但愿不一样团队之间进行隔离,每一个项目有本身的view, 只能看到本身项目的jenkins job.数据库

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

权限角色配置

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

1. 启用 Role-based Authorization Strategy

进入系统管理 > Configure Global Security ,配置以下,此时该策略已启用code

注意:策略启用以后,不由止修改!策略之间是独立的,一旦选择另一中策略,当前策略将丢失,包括已生效的配置。blog

Jenkins-权限管理-1

2. 建立 Glabal roles 和 Project roles

进入系统管理 > Manage and Assign Rolesci

Jenkins-权限管理-2

ManageRoles
- Global roles是对全局的角色控制
- Project roles只针对项目进行控制,因此须要为每一个项目单独添加指定的role (区别于全局,只能有项目相关权限,没有jenkins管理权限配置)
配置job pattern须要注意:prod.表明匹配以prod开头的内容
例如:若是以dev开头就写成 dev.
必定要加上"."; .*test表示以test结尾的内容项目开发

Jenkins-权限管理-3

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

Jenkins-权限管理-4

3. Roles 配置规则和流程

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

3.1 为项目/团队添加 project role

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

- 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"项目

Jenkins-权限管理-5

添加用户-LDAP

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

Jenkins-权限管理-7

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

Jenkins-权限管理-8

注意

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

  2. 在配置LDAP前,必定要记得开启匿名用户的 admin 权限,不然一旦配错,本身就没法登陆了!

    Jenkins-权限管理-9

相关文章
相关标签/搜索