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
权限,否则用户登录后会显示空白页面,啥操作都做不了。