😄作者简介:
小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊
座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍
企业里经常会听到“你的LDAP账号是什么”,“Jenkins账号是LDAP账号”,“怎么通过LDAP来控制Jenkins的访问权限”等。
那么LDAP到底是什么?怎么通过LDAP来控制Jenkins的访问权限?我们今天就来聊聊这其中的道道。
一、🌛LDAP概述
LDAP 全称为 Light Directory Access Portocol,是轻量级目录访问协议,属于应用层协议,主要用于存储关于组织、用户等信息资源,可用于实现单点登录、认证和授权等功能,是不是有点抽象?你可以把 LDAP 看作一个电话簿,电话簿就是用来查询用户的信息比如电话、地址、邮箱等,那么LDAP也是一样,由一条条的信息组成,整体结构成树状结构,如下图展示,
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
具体配置内容如下图所示,
- 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用户)
配置完成之后,点击 Test LDAP settings,输入Jenkinsdemo 用户的账号和密码,当看到下图内容时表示 Ldap与 Jenkins 已经打通。此时可以使用LDAP账号来登录Jenkins。
需要注意以下几点:
- 当使用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。
完成以上配置后,就可以在管理中找到Manage and Assign Roles 配置项,点击进入之后,选择Manage Roles,先配置一些角色,比较读写权限,假设定义为creator,并给予相应的权限。
保存之后,再点击Assign Roles,给用户组分配角色,因为我们在LDAP中创建了jenkins-user组,那么我们只需要在Assign Roles中添加jenkins-user组并给予相应的权限。
完成以上配置,就说明你已经完成了LDAP与Jenkins相关权限的打通。
四、🌟实现原理
使用一个小案例来说明LDAP与Jenkins打通的实现原理:
假如A用户输入LDAP账号登录Jenkins,此时Jenkins要查看用户A是否在LDAP people用户组中,如果在的话说明用户可以访问,随即再查看A用户本身所附有的权限,如果A用户在LDAP的jenkins-user组中,说明A用户有Jenkins的读写权限,那么可以正常登录Jenkins;如果用户A不在jenkins-user组中,则用户A没有读写权限,不可访问。文章来源:https://www.toymoban.com/news/detail-538449.html
关注我,不要错过更多精彩内容哦!文章来源地址https://www.toymoban.com/news/detail-538449.html
到了这里,关于Jenkins教程|聊聊Ldap与Jenkins打通那些事儿的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!