2.1:基于角色的 Jenkins 用户权限管理

2.1.1:更改授权策略(Role-Based Strategy)

使用管理员用户登录Jenkins,打开系统管理-全局安全配置

Jenkins 权限视图分配 jenkins 角色权限管理_sed

找到授权策略

默认情况下,Jenkins创建的新用户拥有所有权限,因为授权策略的默认配置为登录用户可以做任何事,这显然不能满足正常的权限管理需求。

授权策略更改为Role-Based Strategy(该选项需要在正确安装了Role-based Authentication Strategy插件后才能出现)。

Jenkins 权限视图分配 jenkins 角色权限管理_User_02

2.1.2:创建全局角色(Global Roles)

打开系统管理-管理用户,将授权策略更改为Role-Based Strategy之后,安全配置列表中就会出现Manage and Assign Roles,在其中进行角色管理的相关操作。

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins_03

点击Manage Roles,进入角色管理页面

Jenkins 权限视图分配 jenkins 角色权限管理_User_04

角色共分为三类:

  • Global Roles:全局角色,为全局角色分配的权限是对全局生效的(即管理页面、所有任务、所有节点等);
  • Item Roles:任务角色,为任务角色分配的权限是与具体的任务(Item)挂钩的,只在相应的任务范围内生效;
  • Node Roles:节点角色,为节点角色分配的权限是与具体的节点(Node)挂钩的,只在相应的节点生效。

这里先创建的是一个全局角色,目的是创建一个用于普通用户的角色,使分配该角色的用户不具备管理权限,只有普通的任务操作权限。

Global Roles栏的Role to add框中,输入要创建的角色名称,这里是L1 User(意思是1级用户,拥有较高的任务操作权限,对所有任务均能查看和管理),然后点击Add进行添加。

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins 权限视图分配_05

接下来为L1 User角色分配权限,使它具有管理界面的查看权限,以及任务、运行、视图等的所有权限。
完成后点击保存,完成角色创建。

Jenkins 权限视图分配 jenkins 角色权限管理_jenkins_06

2.1.3:创建用户

接下来创建一个新用户,在首页打开系统管理-管理用户,进入用户管理界面。

Jenkins 权限视图分配 jenkins 角色权限管理_jenkins_07

进入后点击新建用户

Jenkins 权限视图分配 jenkins 角色权限管理_jenkins_08

填写用户信息,创建用户。

yqc/123456

Jenkins 权限视图分配 jenkins 角色权限管理_sed_09

2.1.4:为用户分配角色

在基于角色的权限管理策略下,新建用户是不具备任何权限的。

使用yqc用户登录Jenkins:

Jenkins 权限视图分配 jenkins 角色权限管理_jenkins_10

没有全局的读权限,连主界面都无法查看。

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins_11

需要为用户分配相应的角色,来具备角色中对应的权限。

接下来为yqc用户分配L1 User角色,使其具备相应的权限。

仍然需要使用管理员登录Jenkins,进入Manage and Assign Roles

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins_12

点击Assign Roles,进入角色分配界面:

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins 权限视图分配_13

Global roles栏的User/group to add框中,输入需要分配角色的用户名,点击Add

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins_14

然后为用户勾选对应的角色,为其分配该角色:

Jenkins 权限视图分配 jenkins 角色权限管理_jenkins_15

最后点击保存,完成角色分配。

Jenkins 权限视图分配 jenkins 角色权限管理_User_16

再次使用yqc用户登录Jenkins,已经具备相应的权限了。

Jenkins 权限视图分配 jenkins 角色权限管理_Jenkins 权限视图分配_17

上述进行的是全局角色(Golobal Roles)的管理和分配,任务角色(Item Roles)才是用得较多的角色类别,后续在进行任务管理时会用到,届时还需要另外创建一个全局角色(定为2级用户,L2 User),该角色在全局中没有关于任务的任何权限,任务权限是分配给相应的任务角色的。

而在任务管理时,需要为相关用户分配两个角色,一个全局角色和一个任务角色,全局角色赋予用户查看Jenkins界面的权限,任务角色赋予用户相应任务的管理操作权限。