jenkins用户权限配置

jenkins用户权限配置,第1张

Role-based Authorization Strategy

Role Strategy Plugin插件可以对构建的项目进行授权管理,让不同的用户管理不同的项目,将不同环境的权限进行区分。该插件可以很灵活的根据需求来进行划分权限,包括正则匹配等

实现需求

测试工程师需要一个通用用户,需要对测试环境的所有项目拥有只读的权限,并且可以构建

系统用户

deploy_test:test环境所需用户

jenkins 项目命名规则介绍

测试环境: dubbo 、 .*plat 、 wbsapiv

打开jenkins系统管理,单击管理插件,找到可选插件,输入插件名称,然后点击直接安装即可

如果你已经安装过该插件,则在已安装一栏中可以看到该插件

点击系统管理,点击Configure Global Security

在该页面中选择授权策略为:Role-Based Strategy

点击系统管理,点击Manage and Assign Roles,如下图:

在Manage Roles中有两种角色:Global roles用来分配全局策略,而 Project roles根据项目环境来分配项目权限

admin:超级管理员,它拥有所有的全局权限

test:test环境的用户,它只可以看到全局的Overall面板

添加test的Overall的read权限原因:如果不添加的话,这些普通用户登录到jenkins则会提示:用户没有Overall/read权限(用户无法登陆)

下面我们来将定义好的规则分配给具体的用户,前面我们提到了系统用户: deploy_test(部署测试)

之前我们在test中定义了overall/read权限,现在将用户和roles关联起来,这样test用户就 拥有了改权限

1、进行系统管理

2、启用安全,不然无法启动多用户

3、给匿名用户添加对应权限。

4、退出登录之后,在登录页面右上角可自行注册账号。

安装插件后,进入系统设置页面,配置如下:

官网上安全域设置为Servlet容器代理,实际 *** 作发现Jenkins专有用户数据库也是可以的。

二、配置权限

在系统管理页面点击Manage and Assign Roles进入角色管理页面:

1、管理角色(Manage Roles)

选择该项可以创建全局角色、项目角色,并可以为角色分配权限。

如上图,分别创建了admin、anonymous两个全局角色,Online Program、test两个项目角色。

项目角色与全局角色的区别就是,项目角色只能管理项目,没有管理jenkins的权限配置。

添加项目角色时,需要制定匹配项目的模式,如上图中的Pattern,官方文档介绍该选项支持正则表达式,如“Roger-.”表示所有以Roger-开头的项目,“(?i)roger-.*”表示以roger-开头的项目并且不区分大小写,如以ABC开头的项目可以配置为“ABC|ABC.*”,也可以使用“abc|bcd|efg”直接匹配多个项目。

2、创建用户

在分配角色之前需要先创建用户。

在系统管理页面,点击管理用户:

点击新建使用者可以创建新用户,如果之前有项目与scm版本管理系统(如svn、git等)连接并获取源码构建过,jenkins会从svn中读取到一些用户信息,可以在查看用户菜单中看到这些用户:

点击用户id或名称都可以修改用户信息。

3、分配角色(Assign Roles)

选择Assign Roles可以为用户分配所属角色,可以分配全局角色和项目角色。

如上图,将不同的用户分别分配给不同的角色,这样用户就可以具有角色所拥有的权限。

三、深入了解

该插件从2011年10月发布1.1.2版本后就不再维护了,因此会有一些小问题,但不影响使用,比如在分配角色后点击保存按钮时有可能会发生异常,浏览器点击后退按钮后重新提交就可以 *** 作成功。

另外如果配置失败导致不能登录,可以通过修改配置文件恢复初始设置。

首先了解一下配置文件。

进入jenkins安装目录,用户配置信息和角色配置信息都以配置文件的形式存储。

上图中users目录存放了各个用户的配置信息,每个用户都会创建与用户名相同的文件夹,文件夹中包含config.xml文件,配置示例如下:

<?xml version='1.0' encoding='UTF-8'?>

<user>

<fullName>admin</fullName>

<properties>

<jenkins.security.ApiTokenProperty>

<apiToken>EfowsOP9H5arYxMmuFrbPjjITgu/fjtvHib5okFJ9DmPTu/088cvHxlE9RHwVv+S</apiToken>

</jenkins.security.ApiTokenProperty>

<hudson.model.MyViewsProperty>

<views>

<hudson.model.AllView>

<owner class="hudson.model.MyViewsProperty" reference="http://www.cnblogs.com/.."/>

<name>All</name>

<filterExecutors>false</filterExecutors>

<filterQueue>false</filterQueue>

<properties class="hudson.model.View$PropertyList"/>

</hudson.model.AllView>

</views>

</hudson.model.MyViewsProperty>

<hudson.search.UserSearchProperty>

<insensitiveSearch>false</insensitiveSearch>

</hudson.search.UserSearchProperty>

<hudson.security.HudsonPrivateSecurityRealm_-Details>

<passwordHash>uAEYii:02e0cd0d78abf90e42b28e7d3d4fe64776ae8fa9500e379f2598cc65e1b0fb70</passwordHash>

</hudson.security.HudsonPrivateSecurityRealm_-Details>

<hudson.tasks.Mailer_-UserProperty>

<emailAddress>gaoliang@esrichina.com.cn</emailAddress>

</hudson.tasks.Mailer_-UserProperty>

</properties>

</user>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11359439.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存