基于LDAP&&Role-based Authorization Strategy实现Jenkins团队权限管理
source link: https://www.daqianduan.com/17528.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
在实际工作中,存在多个团队都需要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管理权限配置)
代表匹配以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]*"
- 在实际使用中,可以为”项目/团队”创建两种role, 甚至一个都可以
- pattern是通过“正则表达”匹配为项目创建的jenkins job, 所有命名需要规范,简单,一个表达式可以匹配多个项目拥有的job.这里参考”demo”项目
3.2 为项目/团队成员分配 role
通过以下配置,开发团队成员就只能看到自己的”demo”项目
添加用户-LDAP
jenkins 默认可以手动添加用户,由于简单不做解释;这里重点说下企业内部使用LDAP来实现用户的统一管理,也就是说无须再次创建用户
需要使用 LDAP插件 ,然后在Configure Global Security 页面进行配置,输入公司内部LDAP服务信息。
注意:
-
jenkins 默认使用“Jenkins’ own user database”,即自己本身的数据库,一旦切换,当前配置数据可能丢失,所以切忌随意修改该配置 !
-
在配置LDAP前,一定要记得开启匿名用户的 admin 权限,否则一旦配错,自己就无法登录了!
#感谢您访问本站# #本文转载自互联网,若侵权,请联系删除,谢谢!657271#qq.com#
Recommend
-
0
运维系列 | Jenkins 插件 Role-based Authorization Strategy 插件
-
2
Role-based Authorization Strategy
-
3
基于 Jenkins 构建的团队如何使用 Zadig 丝滑交付 Zadig on Github /
-
3
jenkins上管理的任务比较多,这时需要有一定的权限管控机制,我们选择了插件Role-based Authorization Strategy来做这事,它支持按着项目前缀去控制你的任务,主要思想还是rbac的模式,通过角色绑定权限,通过用户来绑定角色。
-
59
0x00 这玩意儿是啥首先我们要弄清楚 Pull Request 自动构建是啥,就需要分别说清楚 Pull Request 的意义以及 Pull Request 自动构建的意义:Pull Request 的意义:开发人员通过发出 Pull Requests 请求他人将自己贡献的代码拉下来进行代码审查,从而让自己贡献的代...
-
6
背景:对于大型web应用而言,功能极其丰富复杂,为了具备扩展性,部分项目选择插件化架构方式,开放一部分系统Hook给具备开发能力的用户,不但提升用户的体验感,还同时丰富平台功能,一举两得。如何构建具备插件化能力的平台?本文尝试通过分析je...
-
9
CodeIgniter用钩子实现基于URL的权限控制 2012-04-03 21:08:00 基于URL权限系统: 例如游客只能访问音乐模块的index,list,search方法。而注册用户除上述功能之外还能访问create,update,delete方法。...
-
8
昨天有个粉丝加了我,问我如何实现类似shiro的资源权限表达式的访问控制。我以前有一个小框架用的就是shiro,权限控制就用了资源权限表达式,所以这个东西对我不陌生,但是在Spring Security中我并没有使用过它,不过我认为Spring Security可以实现这一点。是的...
-
6
Blazor Server完美实现Cookie Authorization and Authentication ...
-
46
基于 RTC, Jenkins, PagerDuty, Slack 的持续交付和事件实时通知
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK