Jenkins创建用户并分配不同视图的权限

根据不同的部门分配不同的角色,角色成员只能看到自己部门视图内部的jenkins job

Jenkins版本:2.249

因安装了中文包的原因,语言大多以中文的方式显示,但不影响配置使用

Jenkins要想以视图分配权限,需要注意一个规范:在创建视图时以项目的缩写命名再加上项目的具体名称,例如:dev_boss,dev就是项目的整体名称,boss就是其中的一个模块,这样一来我们做权限分配时,以dev开头就能匹配到所有dev的项目并且在一个视图中显示

1.安装权限管理插件

Manage Jenkins -> Manage Plugins 选择安装Role-based Authorization Strategy插件

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理

安装成功

Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_02

将授权策略设置为 Role-Based Strategy

Jenkins针对不同的项目视图对不同的用户进行权限分配_其他_03

设置完成后即可在security中看到Manage and Assign Roles

Jenkins针对不同的项目视图对不同的用户进行权限分配_创建项目_04

2.创建2个不同的账号及job视图

新建视图,以test1视图为例,test2一致

Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_05

指定任务到该视图
Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_06

新建用户,以test1为例,test2配置一致

点击系统管理—管理用户—新建用户
Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_07

用户和视图均已创建完毕

Jenkins针对不同的项目视图对不同的用户进行权限分配_创建项目_08

3.创建Jenkins角色

Jenkins两种角色的说明:

Global roles:全局角色,主要用于配置用户的功能权限
Item roles:项目角色,主要管理项目的权限

点击系统管理—Manage and Assign Roles

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理_09

点击Manage Roles

Jenkins针对不同的项目视图对不同的用户进行权限分配_其他_10

3.1.创建全局角色

在role to add中填写角色的名称,然后勾选对应的权限即可

**注意:**job权限这里只选择一个create即可,不要勾选read否则所有项目都可以查看到,如果希望用户都看到项目但是不能操作也可以勾选read

Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_11

3.2.创建项目角色

项目角色主要是用户对项目有什么权限,可以给所有权限

在创建项目角色的时候,Pattern所填的内容是正则匹配

test1.*表示以test1开头的项目,test.*|Test.*表示以test或Test开头的项目

Jenkins针对不同的项目视图对不同的用户进行权限分配_其他_12

全局角色和项目角色添加完后要点击下面的save进行保存

4.将角色分配给用户

角色是用来决定用户有什么权限,因此需要和用户进行绑定

点击Assign Roles

Jenkins针对不同的项目视图对不同的用户进行权限分配_新建用户_13

在 User/group to add 输入用户的名称点击add即可添加用户,然后根据不同的用户勾选不同的角色对应,全局角色和项目角色都需要添加,最后点击保存

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理_14

5.验证用户权限

test1用户登录

直接看all即可,可以看到只有test1开头的项目能被看到,所有视图都在这里显示,但是只能看到test1开头的项目

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理_15

test2用户登录

直接看all即可,可以看到只有test2开头的项目能被看到,所有视图都在这里显示,但是只能看到test2开头的项目

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理_16

其他视图的job无法查看

Jenkins针对不同的项目视图对不同的用户进行权限分配_系统管理_17