概述
在 Jenkins 使用中,通常需要根据用户职责控制其可访问的任务。例如:
开发人员仅能查看开发环境和测试环境的 Job
生产发布账户仅能访问与生产环境相关的 Job
通过按角色授权,可在同一套 Jenkins 环境中实现视图隔离,满足不同团队或环境的安全与管理需求。
安装插件
需要借Role-based Authorization Strategy插件,该插件支持基于角色控制用户可见的任务列表,从而实现权限隔离。

设置授权策略
进入 系统管理 > 全局安全配置
在授权策略中选择:
Role-Based Strategy

创建Jenkins角色
进入 系统管理 > Manage and Assign Roles,界面分为两部分:
Manage Roles:定义角色权限
Assign Roles:将角色分配给用户/用户组

角色说明
全局角色(Global Roles)
全局角色适用于 Jenkins 系统层面的权限控制,例如系统配置、视图管理、用户权限等。
项目角色(Item roles)
项目角色针对具体的 Jenkins 任务(Job)进行权限控制,支持使用正则表达式匹配任务名称。
Global roles

比如我现在要给开发人员添加一个只发布dev项目的权限,在上图的下面位置输入dev,然后点击Add,就会如上图上面显示一样,然后在全部-->Read 打勾,别的都不用管。
Item roles
在创建项目角色(Item roles)的时候,Pattern所填的内容是正则匹配。
这里的.*SSO.*表示匹配所有名称中带SSO关键字的任务

点击第四步中的正则表达式能查看具体匹配到的任务列表

分配角色
在 Assign Roles 页面中,将已创建的角色分配给相应用户或用户组,完成权限绑定。

测试
使用不同账户登录 Jenkins,确认各账户仅能看到其权限范围内的任务,实现视图隔离。
