一. 插件介绍
名称
Role-based Authorization Strategy
插件介绍
Role Strategy Plugin插件可以对构建的项目进行授权管理,让不同的用户管理不同的项目,将不同环境的权限进行区分。该插件可以很灵活的根据需求来进行划分权限,包括正则匹配等。
下面以一个简单的需求来演示如何设置用户权限。
✅系统管理员guoew拥有所有项目的管理权限
✅测试工程师 foo 拥有A_test目录下所有项目的只读权限,并且可以构建
✅测试工程师 bar 拥有B_test目录下所有项目的只读权限,并且可以构建
二. 安装插件
打开Manage Jenkins(系统管理),单击Manage Plugins(管理插件),找到可选插件,输入插件名称,然后点击直接安装即可。
三. 配置安全策略
在Manage Jenkins(系统管理) --> Configure Global Security(全局安全配置) --> Authorization(授权) 选择 Role-Based Strategy后保存,如下图
保存后系统管理页面会新增一项 Manage and Assign Roles。
四. 配置Manage and Assign Roles策略
点击Manage and Assign Roles, 在 Manage and Assign Roles 有三个菜单,如下图所示.
• Manage Roles
• Assign Roles
• Role Strategy Macros
4.1 配置 manage Roles
该类配置的权限实际上是一个组别或者一类人的权限,在原有的权限分类种分一个大类,将零散的权限进行归类,分别为
- Global roles(全局角色权限)
- Item(Project) roles(项目角色权限)
- Slave roles (节点角色权限)
4.1.1 配置Global roles
添加reader角色,设置全局读
4.1.2 配置Item roles
添加A项目测试角色,使用正则匹配A_test目录下所有项目,并赋予相关的构建权限,如下图。B项目测试角色同A
4.2 配置Assign Roles
在Manage Roles将权限分类后,在这里我们将会给需求里所提到的用户分配对应的权限
4.2.1 配置 Global roles
为guoew分配admin全局角色的权限,为foo,bar分配reader全局角色权限,如下图所示
4.2.2 配置Item roles
为用户foo分配A项目测试角色权限,为用户bar分配B项目测试角色权限,如图所示。
这里为什么会有reader这个角色的存在呢?
这是因为,需要为普通用户分配全局的Overall面板的读权限,否则这些普通用户登录到jenkins则会提示:用户没有Overall/read权限。
五. 配置完成
这下就都已经配置好了,使用foo用户登录jenkins,页面如下。