深入CI工具Jenkins插件篇-基于角色的权限分配

本篇文章将介绍Jenkins中非常实用的工具之一Role-based Authorization Strategy从简单的安装插件到详细的介绍该插件中的一些实用方法。

基于角色的权限分配

名称:Role-based Authorization Strategy

介绍:Jenkins中默认的权限策略为Logged-in user can do anything也就是说登录的用户即可拥有所有权限,但是在项目团队中基于每个成员的角色不同应该分配不同的权限,至少不能让所有人都拥有删除Item的权限吧?所以,该插件就能够为我们实现通过角色来配置权限。

在安装完插件后Dashboard -> manage Jenkins -> Secuirty -> Configure Global Secuirty按照步骤依次进入全局安全配置如下图所示

00001.pngAuthorization中选中Role-Based Strategy即可开启。随后我们使用一个非管理员账户重新进入Jenkins就会发现出现了未授权的界面啦。

紧接着我们需要配置一些角色Jenkins中角色分为三种类型:全局角色、项目角色和结点角色。分别控制着Dashboard、Item、Jenkins 实例的权限。

我们需要配置一个全局角色和项目角色来让非管理员用户能够

实例

接下来我们来说实现一个示例:创建一个用户并且为其分配一个开发人员的角色

  1. 首先我们创建一个用户

Dashboard -> manage Jenkins -> Secuirty -> Manage Users -> Create User

00002.png

00003.png 2. 创建角色,进入Dashboard -> manage Jenkins -> Secuirty -> Manage and Assign Roles -> manage Roles界面来创建一个开发角色如下图所示,勾选上Job中的参数使其能够对每个Item进行配置。

00004.png 3. 分配角色给用户,进入Dashboard -> manage Jenkins -> Secuirty -> Manage and Assign Roles -> Assign Roles在Golal rolse的下方输入框中输入用户名点击Add后勾选dev角色,如图所示

00005.png 然后我们使用刚刚创建好的账户进入Jenkins就实现啦

00006.png

Role-based Authorization Strategy插件的几个问题

  1. Global roles、Item roles、Node roles三种类型的角色有什么不同?

Global roles是基本全局的角色,只需要一个Global roles就能够对Overall、Credentials、Agent、Job等进行权限的分配;

Item roles是基于Item细化角色能够使用正则匹配项目的名称,当我们想要给不同的开发分配不同的项目查看权限的时候使用

使用Item rolse时需要注意以下两点:

a. 如果想要使用Item roles角色需要先创建一个基本的拥有overall-read权限的全局角色并为该用户分配这个角色)

b. 需要注意Global roles中的权限会覆盖Item roles的如,全局角色中指定了job-read,那么该角色拥有所有job的read权限,无论item roles中指定了什么

而Node roles在Jenkins集群环境下使用,配置不同结点的Jenkins权限。

  1. Global roles权限表中的Overall的Administer和Read有什么不同?

直接从图片上观看能够更加清晰一些

00007.png 如图所示,左侧是仅仅只有Read权限的角色菜单,其中只有一些基本的Dashboard菜单,而右侧的是Administer的菜单,拥有admin的所有权限。

猜你喜欢

转载自juejin.im/post/7042699519997247501
今日推荐