admin管理员组

文章数量:1530362

前言

提到jenkins的权限管理,大家应该都知道 Role-based Authorization Strategy 插件,但是如何使用这个插件来做到视图和任务的权限控制,很多人搞不明白,而且搜索了很多资料,都没有人给出明确的配置说明,都是截个图告诉你 Global roles 配一下、Item roles 配一下,具体配置项没人说明,说的也是地球人都知道的配置。

所以觉得还是有必要记录一下这个插件到底该怎么配,不至于以后用到还要浪费那么多时间摸索。


一、插件版本说明

插件安装就不说了,直接搜索安装即可,地球人都会。

但是,我发现没人提过插件版本这个事儿。可能配置上没什么区别,但是配置项上名称不一样,好多人搜插件配置方法的时候估计都会有点懵,因为你的角色配置项明明叫 Item roles,而搜索到的都叫 Project roles。

其实这两个名称在使用上没有区别,配置项也一样,配置效果也一样。只是因为插件版本2.x和3.x的不同而已,2.x 叫 Project role,3.x 叫 Item roles。

这里只是给大家说明一下这个问题,网上也没见有人提过这个,本篇配置说明以3.x版本为例。

二、插件配置

插件启用方式这里就不做说明了,网上很多。

1. 创建用户

插件配置前,先创建用户,用以接下来权限配置使用

2. 管理角色


 (1) 整体配置

 先来个长截图,给大家看看配置好的样子,再说明为什么要这么配。

 可以看到,Global roles 配置很少,Item roles仅仅配置了任务选项。

先给出结论:Global roles 负责全局权限,Item roles 主要负责视图和任务的权限。


(2) Global roles

 对于一般角色,只需要勾选 “全部 - Read” 即可,这样分配给用户后,用户登录jenkins就能看到一个基础管理页面。如果不勾选 “全部” 选项,那么用户登录后,只能看到白屏,无任何操作按钮或视图。

“任务” 选项我只勾选了 “Create” 选项,为什么呢,先给大家看一下 “Create” 选项控制的是具体是哪个操作按钮,截图如下:

 可以看到,Global roles 的 “任务 - Create” 选项控制的是首页的 “新建任务” 按钮显示/隐藏。

我上述截图中 test 角色没有勾选 “任务 - Create” 选项,这是因为 test 角色是给我们公司测试人员使用的,测试人员不需要创建任务,只需要基于现有任务进行构建即可。

“视图” 选项我没有分配,这是因为我并不想将视图的管理权限开放出去,这样视图名称不可控,对于视图的管理,jenkins管理员提前建好视图就可以。因为 Item roles 的权限涉及到视图,视图名称不是胡乱填写的。

至于其他的 “凭据”、“代理”、“运行”、“SCM”、“Lockable Resources”,按需要勾选即可。


(3) Item roles

Item roles 才是真正控制视图/任务显示权限的,Global roles 只要勾选了 “全部” 任意选项,其他选项无论你怎么配置,都无法控制视图或任务的显示,任意一个用户登录jenkins都可以看到所有的视图或任务。

先来说明一下怎么填写配置信息,一共两个输入框:

Role to add:Item角色名称,起名随意,没有要求。

Pattern:视图或任务过滤表达式。它的全部配置规则不是很清楚,单以截图中的配置规则为例来说明一下。

我上述截图中 app_group 配置的规则是 APP.*(注意:中间有个英文句号.),APP 作为前缀,* 作为通配符。这个配置的意思是:以APP作为名称开头的视图或任务。

当你将这个名为 app_group 的角色赋予用户,该用户登录jenkins后,将只能看到名称以 APP 作为开头的视图或任务,下面给出截图对比:

通过对比,很明显看到 Item roles 配置的效果。

 总结:Item roles 配置列表中的 “Pattern” 负责过滤视图或任务,“任务” 负责任务列表的权限

3. 分配角色

分配角色就很简单了,只需要给建好的用户,分配相应的 Global roles 和 Item roles 即可,我这里是按公司每个人所属的技术小组进行分配的,大家可以参考

 

User/group to add:填写用户登录帐号即可。

我这个版本的插件,添加用户保存刷新之后,会显示红字错误 No type prefix: xxx,因为这个提示,导致我一度认为权限配置有问题,浪费了很长时间来寻找答案,结果也没搜索到什么有用的资料。最后发现,直接无视就行,对权限配置没有影响。

总结

Role-based Authorization Strategy 插件的权限配置,主要就在于管理角色的 Global roles 和 Item roles,按照以上教程配置好,登录帐号看一下权限配置的效果,再按自己的要求配置其他选项,逐渐就能摸清插件权限的配置方法。

就目前来看,jenkins的权限管理插件,依然是 Role-based Authorization Strategy 最为灵活强大,但是依然无法对系统管理的操作进行权限控制,希望以后会有吧。

本文标签: 视图插件权限RoleJenkins