在实际工作中,存在多个团队都需要Jenkins来实现持续交付,但是又希望不同团队之间进行隔离,每个项目有自己的view, 只能看到自己项目的jenkins job.

但是,jenkins默认的权限管理体系不支持用户组或角色的配置,这里利用Role-based Authorization Strategy实现上述目的

权限角色配置

直接跳过插件安装,介绍如何基于“项目”配置.

1. 启用 Role-based Authorization Strategy

进入系统管理 > Configure Global Security ,配置如下,此时该策略已启用

注意:策略启用之后,不禁止修改!策略之间是独立的,一旦选择另外一中策略,当前策略将丢失,包括已生效的配置。

2. 创建 Glabal roles 和 Project roles

进入系统管理 > Manage and Assign Roles

ManageRoles

- Global roles是对全局的角色控制

- Project roles只针对项目进行控制,所以需要为每个项目单独添加指定的role (区别于全局,只能有项目相关权限,没有jenkins管理权限配置)

配置job pattern需要注意:prod.代表匹配以prod开头的内容

例如:如果以dev开头就写成 dev.
一定要加上"."; .*test表示以test结尾的内容项目

注意:必须先进行Global roles的配置后方可对Project roles进行配置,可以解为先配置整体性权限,再按项目分权限,遵守从大到小权限控制的原则!

3. Roles 配置规则和流程

这里强制规定项目role配置规则和流程

3.1 为项目/团队添加 project role

以“demo”项目为例,添加manager和user两种role

    - role:demo-manager - pattern: "^demo-[a-zA-Z]*"
- role:demo-user - pattern: "^demo-[a-zA-Z]*"
  1. 在实际使用中,可以为"项目/团队"创建两种role, 甚至一个都可以
  2. pattern是通过“正则表达”匹配为项目创建的jenkins job, 所有命名需要规范,简单,一个表达式可以匹配多个项目拥有的job.这里参考"demo"项目

3.2 为项目/团队成员分配 role

通过以下配置,开发团队成员就只能看到自己的"demo"项目

添加用户-LDAP

jenkins 默认可以手动添加用户,由于简单不做解释;这里重点说下企业内部使用LDAP来实现用户的统一管理,也就是说无须再次创建用户

需要使用LDAP插件,然后在Configure Global Security 页面进行配置,输入公司内部LDAP服务信息。

注意:

  1. jenkins 默认使用“Jenkins' own user database”,即自己本身的数据库,一旦切换,当前配置数据可能丢失,所以切忌随意修改该配置 !

  2. 在配置LDAP前,一定要记得开启匿名用户的 admin 权限,否则一旦配错,自己就无法登录了!

基于LDAP&&Role-based Authorization Strategy实现Jenkins团队权限管理的更多相关文章

  1. Forms Authentication and Role based Authorization: A Quicker, Simpler, and Correct Approach

    https://www.codeproject.com/Articles/36836/Forms-Authentication-and-Role-based-Authorization Problem ...

  2. Jenkins系列-权限管理

    在实际工作中,存在多个团队都需要Jenkins来实现持续交付,但是又希望不同团队之间进行隔离,每个项目有自己的view, 只能看到自己项目的jenkins job. 但是,jenkins默认的权限管理 ...

  3. [原]Jenkins(十三)---jenkins用户权限管理

    * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/5337874.html 两种策略的比较

  4. Jenkins用户权限管理-Role-based Authorization Strategy插件

    02-Jenkins用户权限管理-Role-based Authorization Strategy插件 在jenkins的使用过程中,需要给用户分配只管理特定项目的权限来保证项目相关人员只能管理对应 ...

  5. Jenkins用户权限管理

    一.插件安装 插件:Role-based Authorization Strategy版本:2.3.2 二.全局安全配置 进入Jenkins后点击系统管理进入全局安全配置 当插件安装好的时候,授权策略 ...

  6. 九. jenkins用户权限管理

    由于jenkins默认的权限管理体系不支持用户组和角色的配置,所以需要使用第三方插件来支持角色的配置: Role-based Authorization Strategy 1.先安装插件,如下: 2. ...

  7. Jenkins配置权限管理

    借鉴博客:https://www.cnblogs.com/Eivll0m/p/6734076.html 懒得写了,照上面是配置成功了,弄了权限角色与用户的配置

  8. Jenkins权限管理之Matrix Authorization Strategy

    一.权限管理概述 jenkins的权限管理,我目前使用的是Role-based Authorization Strateg.这个很简单,权限是jenkins已经定死了的,就那些.该插件可以让我们新建角 ...

  9. Jenkins配置基于角色的项目权限管理--转

    本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Str ...

随机推荐

  1. pytorch实战(一)hw1——李宏毅老师作业1

    任务描述:利用前9小时数据,预测第10小时的pm2.5的数值,回归任务 kaggle地址:https://www.kaggle.com/c/ml2020spring-hw1 训练集为: 12个月*20 ...

  2. 第六篇 Scrum 冲刺博客

    一.站立式会议 1. 会议照片 2. 工作汇报 团队成员名称 昨日完成的工作 今天计划完成的工作 工作中遇到的困难 陈锐基 - 完成关注/取关功能以及动态绑定- 完成点赞/取消点赞功能以及动态绑定 - ...

  3. mac中nvm的安装和使用

    nvm 是 Mac 下的 node 管理工具,如果是管理 Windows 下的 node,可以使用 nvmw 或 nvm-windows . 一.若电脑中已安装node,需先卸载.参考学习的文档:ht ...

  4. Chrome DevTools — Network -- 转载

    转载地址:https://segmentfault.com/a/1190000008407729 记录网络请求 默认情况下,只要DevTools在开启状态,DevTools会记录所有的网络请求,当然, ...

  5. sqli-labs less8-10(布尔盲注时间盲注)

    less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...

  6. SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入

    1. 简介   Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题 ...

  7. [日常摸鱼]HDU3007Buried memory-最小圆覆盖

    最小圆覆盖裸题 我求外接圆的方法比较奇怪-不过还是过掉了 #include<cstdio> #include<cmath> #include<cstdlib> #i ...

  8. ASP.NET Core Web 支付功能接入 微信-扫码支付篇(转)

    原文 https://www.cnblogs.com/essenroc/p/8630730.html // 随着版本更迭,新版本可能无法完全适用,请参考仓库内的示例. 这篇文章将介绍ASP.NET C ...

  9. Core3.0中Swagger使用JWT

    前言 学习ASP.NETCore,原链接 https://www.cnblogs.com/laozhang-is-phi/p/9511869.html 原教程是Core2.2,后期也升级到了Core3 ...

  10. Powerdesigner中表导出sql语句关于字段注释乱码的问题

    问题说明 注释中的汉字都变成了?,应该是编码的问题. declare @CurrentUser sysname select @CurrentUser = user_name() execute sp ...