除了搭建jenkins时默认安装的插件之外,有时候扩展功能,还需要安装一些其他的插件,下面为大家简单介绍一下Role-based Authorization Strategy插件。
背景:
当我们需要对jenkins做访问权限控制的时候,而且公司项目比较多,角色比较多的时候,就需要对每个人可操作的权限做控制,避免配置被别人误删或者修改。而且权限的控制最好细化到每一个员工,不要每个项目/部门用公共账号,到时候出了问题都不知道谁整出来的。 而且有些特殊的情况,也是需要授权给每个项目的人员自己维护一些配置的。
插件安装:
插件管理->可选插件->搜索Role-based Authorization Strategy ,勾选后点击直接安装即可
安装完成后页面显示如下:
配置:
插件安装完成之后,是需要在全局安全配置中将授权策略切换为Role-Based Strategy,才可以通过创建角色的方式去控制权限
更改授权策略后,在jenkins的配置选项中会多出来一个选项:
Manage and Assign Roles
实操:
下面小编演示一下怎么控制不同用户/角色的操作权限。
1、首先,在jenkins上创建出多个view(视图),可以以项目名称或部门名称命名,后续对应部门下的所有配置都可以在一个视图下显示。
现在新增2个job名称分别为 project_a_api 和 project_abc 的 job,检查一下view中的显示效果:(会按照对应view中配置的正则表达式进行过滤)
2、在用户管理中新增几个用户用来测试权限分配
3、主页->Manage Jenkins->Manage and Assign Roles
先看一下角色管理:
Global roles下不能给除管理员以外的其他角色授权read权限,否则用户能看到所有job,只是无法操作而已,这样就没办控制对应项目组的用户只能看自己项目的job,而且会出现一个用户展示很多job,体验不友好!
Global roles :除了admin角色外,其他角色都需要自己重新创建,这里可以创建开发,测试,qa等角色,然后分别给对应的角色授权 job的增删改等操作的权限。这里针对开发的话,暂时只分配job构建和取消构建的权限。这个是全局的角色权限,还可以针对不同的job再单独授权更细的权限 ,全局role的权限建议不要给太大
-
Item roles :为针对不同的job创建的角色
角色的权限为 Global roles + Item roles 的并集
Node roles:针对节点相关的权限控制 ,这个一般用的少,小编暂时没去仔细研究。
接下来分配角色
user001 登录后的效果如下:只能看project_a 项目相关的view和job,并且job是没有删除权限
user002 登录后的效果如下:只能看project_b 项目相关的view和job,并且job是有删除权限的。
本次插件的分享就到这了,谢谢您的观看。