Jenkins基于角色的授权策略
Jenkins的授权策略有非常多种,我习惯用基于角色的授权策略,这里记录下配置的一些细节。
我使用的Jenkins版本:2.375.2
安装插件
进入插件安装页面:Dashboard → Manage Jenkins → Plugin Manager → Available plugins,搜索 “Role-based”,选择 Role-based Authorization Strategy 插件,点击 Download now and install after restart 进行安装。
配置授权策略
进入配置全局安全页面:Dashboard → Manage Jenkins → Configure Global Security, 修改 Authorization 配置,选择 Role-Base Strategy,点击 Apply 按钮应用配置。
创建角色
插件提供了三种类型的角色。
| 类型 | 备注 |
|---|---|
| 全局角色(Global roles) | 适用于管理员,可以跨越全部项目进行授权 |
| 项目角色(Item roles) | 适用于给用户按项目分配权限的场景 |
| 节点角色(Agent roles) | 适用于集群管理,对节点进行分配权限(我还没有实践过,查资料得到的结论) |
全局角色的权限会覆盖项目角色的权限,如果一个用户给了全局权限,即使项目权限没有给,该用户也会拥有该权限。并且由于全局角色是跨越全部项目的,如果设置不得当,会让用户不受项目角色控制,可以操作全部项目。
创建全局角色
进入配置页面:Dashboard → Manage Jenkins → Manage and Assign Roles → Manage Roles,找到 Global roles 配置。
对于管理员,建议直接勾选
Overall | Administer对于一般的用户,希望按项目管理权限是,建议只勾选
Overall | Read,其他的都不要勾选,如果不勾选Overall | Read,用户登录后会显示空白页面,啥操作都做不了
创建项目角色
进入配置页面:Dashboard → Manage Jenkins → Manage and Assign Roles → Manage Roles,找到 Item roles 配置。
分配角色给用户
进入配置页面:Dashboard → Manage Jenkins → Manage and Assign Roles → Assign Roles。
不能只给用户分配项目角色,必须要分配一个全局角色,全局角色包含
Overall | Read权限,否则用户登录后会显示空白页面,啥操作都做不了。










