我们可以利用Role-based Authorization Strategy 插件来管理Jenkins用户权限
安装Role-based Authorization Strategy插件
开启权限全局安全配置
授权策略切换为"Role-Based Strategy",保存
创建角色
在系统管理页面进入 Manage and Assign Roles
点击"Manage Roles"
三种角色
这个插件可以创建三种角色:
- Global roles:全局角色,例如管理员、作业创建者、匿名等,允许在全局基础上设置总体、代理、任务、运行、查看和 SCM 权限。
- Item roles:任务角色,允许在任务、分组上设置特定权限。
- Agent roles:Agent 角色,本篇用不上。
全局角色
全局角色适用于 Jenkins 中的任何任务,并覆盖你在任务角色中指定的任何内容。也就是说,当你在全局角色中授予角色权限 Job/Read
,无论你在任务角色中指定什么,都允许该角色读取所有任务。
所以为了分配不同任务权限给不同角色,这里对于全局角色勾选一个 Overall Read
权限即可。如下图所示:
我创建了一个全局角色:passjava
,如下图所示。
后续将上面创建的三个用户加到这个 Global 角色中即可。
**注意:**如果这三个用户不加入到 passjava 角色中的话,后续这三个用户登录会提示报错,如下图所示:
6.4 任务角色
我创建了三种任务角色:
- passjava-master:具有部署项目一和项目二的正式环境的权限。
- passjava-tester:具有部署项目一的和项目二的测试环境的权限。
- passjava-pm:具有查看项目一和项目二的正式环境和测试环境的权限,没有部署权限。
如下图所示:
项目角色
下面解释下上面的权限配置:
- Role:代表角色名称
- Pattern:代表正则表达式。例如,如果将该字段设置为
passjava-prod.*
,则该角色将匹配名称以passjava-prod
开头的所有任务,更多匹配规则可到该插件的官网上查看。点击蓝色的passjava-prod.*
,则能看到匹配成功的任务:passjava-prod-project1
任务 和passjava-prod-project2
任务,如下图所示:
正则表达式匹配成功 项目
- Job:任务的权限,我们勾选 Build(部署),Cancel(取消部署),Read(查看任务)即可。
创建用户
在系统管理页面进入 Manage Users