2.1:基于角色的 Jenkins 用户权限管理
2.1.1:更改授权策略(Role-Based Strategy)
使用管理员用户登录Jenkins,打开系统管理-全局安全配置:
找到授权策略。
默认情况下,Jenkins创建的新用户拥有所有权限,因为授权策略的默认配置为登录用户可以做任何事,这显然不能满足正常的权限管理需求。
将授权策略更改为Role-Based Strategy(该选项需要在正确安装了Role-based Authentication Strategy插件后才能出现)。
2.1.2:创建全局角色(Global Roles)
打开系统管理-管理用户,将授权策略更改为Role-Based Strategy之后,安全配置列表中就会出现Manage and Assign Roles,在其中进行角色管理的相关操作。
点击Manage Roles,进入角色管理页面
角色共分为三类:
- Global Roles:全局角色,为全局角色分配的权限是对全局生效的(即管理页面、所有任务、所有节点等);
- Item Roles:任务角色,为任务角色分配的权限是与具体的任务(Item)挂钩的,只在相应的任务范围内生效;
- Node Roles:节点角色,为节点角色分配的权限是与具体的节点(Node)挂钩的,只在相应的节点生效。
这里先创建的是一个全局角色,目的是创建一个用于普通用户的角色,使分配该角色的用户不具备管理权限,只有普通的任务操作权限。
在Global Roles栏的Role to add框中,输入要创建的角色名称,这里是L1 User(意思是1级用户,拥有较高的任务操作权限,对所有任务均能查看和管理),然后点击Add进行添加。
接下来为L1 User角色分配权限,使它具有管理界面的查看权限,以及任务、运行、视图等的所有权限。
完成后点击保存,完成角色创建。
2.1.3:创建用户
接下来创建一个新用户,在首页打开系统管理-管理用户,进入用户管理界面。
进入后点击新建用户。
填写用户信息,创建用户。
yqc/123456
2.1.4:为用户分配角色
在基于角色的权限管理策略下,新建用户是不具备任何权限的。
使用yqc用户登录Jenkins:
没有全局的读权限,连主界面都无法查看。
需要为用户分配相应的角色,来具备角色中对应的权限。
接下来为yqc用户分配L1 User角色,使其具备相应的权限。
仍然需要使用管理员登录Jenkins,进入Manage and Assign Roles:
点击Assign Roles,进入角色分配界面:
在Global roles栏的User/group to add框中,输入需要分配角色的用户名,点击Add:
然后为用户勾选对应的角色,为其分配该角色:
最后点击保存,完成角色分配。
再次使用yqc用户登录Jenkins,已经具备相应的权限了。
上述进行的是全局角色(Golobal Roles)的管理和分配,任务角色(Item Roles)才是用得较多的角色类别,后续在进行任务管理时会用到,届时还需要另外创建一个全局角色(定为2级用户,L2 User),该角色在全局中没有关于任务的任何权限,任务权限是分配给相应的任务角色的。
而在任务管理时,需要为相关用户分配两个角色,一个全局角色和一个任务角色,全局角色赋予用户查看Jenkins界面的权限,任务角色赋予用户相应任务的管理操作权限。