一 背景
我们的Jenkins由于刚开始人少大家共用admin账号,但是随着人越来越多,大家都直接使用admin账号风险系数也越来越大,而我们的研发不管是后端还是前端同学肯定都有内部的gitlab账号,为了便于后期管理Jenkins,并且不用人为去管理Jenkins的账号,所以考虑集成
Gitlab Authentication plugin
插件。
插件官方地址:https://plugins.jenkins.io/gitlab-oauth
二 操作过程
安装插件
在插件管理中直接搜索 Gitlab Authentication plugin 即可找到插件点击安装即可。
Gitlab配置
登录Gitlab右上角头像点击Setting进入如下页面选择Applications,新增Application如下:
Name可以随便写
Redirect URI地址为:【jenkins的地址】/securityRealm/finishLogin
保存之后会有clientId、clientSecret记录下来后续配置jenkins插件需要用到
插件配置
在
系统管理 -> 全局安全配置
安全域选择Gitlab Authentication Plugin
如下图
授权策略有多重选择,常用的有:
Gitlab Commiter Authorization Strategy
: 该策略就是插件所支持的,但是有个明显的问题,没法支持流水线的编辑构建,即使能放开的都放开了也都无法支持,应该是插件本身的问题所致。
安全矩阵
: 刚开始我们使用的就是这种矩阵,针对已登录的用户能给的权限都给了,除了jenkins系统管理的权限没开放出来其他都给了。
Role-Based Strategy
: 这是另一个插件支持的,也是我们后面使用的授权策略,具体请查看博客 Jenkins通过[Role-based Authorization Strategy]插件管理用户权限
我们前期使用的安全矩阵的策略如下图所示:
三 验证
退出重新登录,会提示跳到gitlab登录页面,如果gitlab已经登录的,会在gitlab里提示是否允许授权登录,点击一次允许授权即可,后续都不会再弹出来提示授权。