对于 Jenkins 用户权限的管理的,我们可以使用 Role-based Authorization Strategy 插件来进行管理,这个插件主要是通过创建角色并将其分配给用户或者组来进行用户权限的管理。
一、安装
点击打开系统管理 => 插件管理,搜索 Role-based Authorization Strategy 插件进行安装:
然后点击系统管理 => 全局安全配置 => 授权策略,默认是登录用户可以做任何事,我们选择 Role-Baseed Stratregy。
然后在系统管理安全那里会生成 Manage and Assign Roles,点击进入。
二、管理角色(Manage Roles)
在 Manage Roles 中有三种角:Global roles 用来分配全局策略,Item roles 根据项目来分配项目权限,Node roles 则是节点相关(以下不涉及)。
首先我们来配置 Global roles,创建一个dev_roles,给它read的权限。
接着再配置Item roles,实际权限根据需求来,这里为了测试只配置了查看项目即任务的权限。这表示 dev1_roles 匹配所有以test1开头的项目,并分配任务的read权限。dev2_roles类似。注:Pattern,为正则匹配项目。
三、分配角色(Assign Roles)
创建好角色后,我们需要给用户分配角色。首先创建用户 dev1 和 dev2 用于测试,点击系统管理 => 管理用户 => 新建用户。
给用户分配角色,同样也有全局和项目之分,我们将用户与之前创建好的权限组关联起来。
四、测试
此时,可以预知的结果是 dev1 用户只能看到 test1 项目,dev2 用户只能看到 test2 项目。首先创建 test1 和 test2 两个项目,然后我们分别登录 dev1 和 dev2 来测试一下验证结果。
dev1 用户登录,可以看到只有 test1 项目,点击项目进去,发现都没有什么构建、工作空间、配置等选择,的确只有只读权限。
dev2 用户登录,可以看到只有 test2 项目。
以上就是使用 Role-based Authorization Strategy 插件实现用户权限管理的基本流程,整体还是非常简单方便的,我们可以根据公司实际情况需求来设置合理的权限。