背景

公司的jenkins管理了很多的项目,不同项目的开发人员不同,需要对不同的人员进行权限分类,google了一下,在官网找到了 Role-based Authorization Strategy这个插件,基本能满足要求.

基于 Role based Strategy

在系统管理页面点击Manage Jenkins -->Manage Plugins-->Available,在Filter中输入Role based,找到我们想要的插件,安装即可.

在系统管理页面点击Configure Global Security -->Access Contral ,在Authorization字段勾选Role-based Strategy

官网上安全域设置为Servlet容器代理,实际操作发现Jenkins专有用户数据库也是可以的。

配置权限

在系统管理页面点击Manage and Assign Roles进入角色管理页面:

这里有两个参数,一个是Manage Roles,一个是Assign Roles

选择该项可以创建全局角色、项目角色,并可以为角色分配权限。

global roles添加用户组member.添加all/read权限

Project角色 就是可以根据不任务前缀 进行隔离,以下创建了 sonar 分组 ,该创建了2个角色,管理员 (具有配置构建等权限)普通角色(只有构建权限)

注意: Pattern 是任务前缀的匹配,必须要写sonar.*而不是sonar,当然中文也支持.例如任务名 sonar 开头的任务只会被sonar分组的用户看到.

然后sava退出.

在系统管理页面点击Manage and Assign Roles进入分配角色页面:

global roles中,将sonarsonarM两个角色加入member这个管理组,

Item roles中,将sonar用户加入sonar项目组;将sonarM用户加入sonarM项目管理组

然后save保存退出.

验证

使用sonarM用户登录,只有sonar开头的项目才能被展示,且拥有所有的管理权限

使用sonar用户登录,只有build权限