Jenkins教程|聊聊Ldap与Jenkins打通那些事儿

作者简介:
小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!

企业里经常会听到“你的LDAP账号是什么”,“Jenkins账号是LDAP账号”,“怎么通过LDAP来控制Jenkins的访问权限”等。

那么LDAP到底是什么?怎么通过LDAP来控制Jenkins的访问权限?我们今天就来聊聊这其中的道道。

文章目录

  • 一、LDAP概述
  • 二、Jenkins与LDAP打通
  • 三、Jenkins控制LDAP用户访问权限
  • 四、实现原理

一、LDAP概述

LDAP 全称为 Light Directory Access Portocol,是轻量级目录访问协议,属于应用层协议,主要用于存储关于组织、用户等信息资源,可用于实现单点登录、认证和授权等功能,是不是有点抽象?你可以把 LDAP 看作一个电话簿,电话簿就是用来查询用户的信息比如电话、地址、邮箱等,那么LDAP也是一样,由一条条的信息组成,整体结构成树状结构,如下图展示,
Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第1张图片

LDAP在企业中主要用于”统一认证“,除此之外还需要了解LDAP目录中所包含的属性,如下展示:

  • dc:Domain Component,类似于DNS中的每个元素,例如baidu.com,可以看成两个dc,分为是:dc=baidu,dc=com
  • cn:common name 通用名,一般用于用户名
  • ou:OrganizationUnit 组织单位

其中,ou=People组织下面都是该企业所有用户。

二、Jenkins与LDAP打通

第一步:Jenkins 安装 LDAP 插件

安装完成之后,在Configure Global Security——Security Realm中有LDAP选项。点击LDAP进行配置。
Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第2张图片

第二步:在Jenkins中配置LDAP

具体配置内容如下图所示,

  • Server:表示ldap服务地址,如 ldaps://ldaps:test.com:636
  • root DN:表示搜索的起始节点,不填的话默认为从根节点开始搜索,如 dc=test,dc=com
  • User search base或者Group search base,表示通过用户还是组进行过滤从而控制用户访问Jenkins。如 ou=People,表示只允许ou=People下的用户才能登录(主要是为了缩小LDAP的搜索范围)
  • User search filter:如果想用LDAP中的cn作为用户名来登录的话,应配置为cn={0};如果是想用LDAP中的mail作为用户来登录的话,就需要配置为mail={0}
  • Manager DN :表示在LDAP服务器不允许匿名访问的情况下用来做认证,如 cn=jenkinsdmo,ou=People,dc=test,dc=com
  • Manager Password:输入jenkinsdemo的密码。(其中People组织中需要包含Jenkinsdemo用户)

Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第3张图片

配置完成之后,点击 Test LDAP settings,输入Jenkinsdemo 用户的账号和密码,当看到下图内容时表示 Ldap与 Jenkins 已经打通。此时可以使用LDAP账号来登录Jenkins。

Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第4张图片

需要注意以下几点:

  • 当使用LDAP账号访问Jenkins时,Jenkins本地用户将不可访问Jenkins。
  • 配置完之后一定要点击Test LDAP settings测试一下,如果直接保存,万一配置有问题,那么有可能会导致账号登不上去。

三、Jenkins控制LDAP用户访问权限

第一步:在LDAP中创建 jenkins-user 组

在 ou=group下面创建组 cn=jenkins-user(名字可自定义)

第二步:设置 jenkins-user权限

在 Manag Jenkins中找到 Manage and Assign Roles 配置项,如果没有找到,可以尝试以下解决方案:

第一步:安装 Role-based Authorization Strategy 插件,如果已经安装则可忽略该步骤

第二步:在 Configure Global Security——Authorization中勾选 Role-Based strategy。

Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第5张图片

完成以上配置后,就可以在管理中找到Manage and Assign Roles 配置项,点击进入之后,选择Manage Roles,先配置一些角色,比较读写权限,假设定义为creator,并给予相应的权限。

Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第6张图片

保存之后,再点击Assign Roles,给用户组分配角色,因为我们在LDAP中创建了jenkins-user组,那么我们只需要在Assign Roles中添加jenkins-user组并给予相应的权限。

Jenkins教程|聊聊Ldap与Jenkins打通那些事儿_第7张图片

完成以上配置,就说明你已经完成了LDAP与Jenkins相关权限的打通。

四、实现原理

使用一个小案例来说明LDAP与Jenkins打通的实现原理:

假如A用户输入LDAP账号登录Jenkins,此时Jenkins要查看用户A是否在LDAP people用户组中,如果在的话说明用户可以访问,随即再查看A用户本身所附有的权限,如果A用户在LDAP的jenkins-user组中,说明A用户有Jenkins的读写权限,那么可以正常登录Jenkins;如果用户A不在jenkins-user组中,则用户A没有读写权限,不可访问。

关注我,不要错过更多精彩内容哦!

你可能感兴趣的:(Jenkins,Jenkins教程,Jenkins与LDAP打通,测开,Jenkins配置)