作者简介:
小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!
企业里经常会听到“你的LDAP账号是什么”,“Jenkins账号是LDAP账号”,“怎么通过LDAP来控制Jenkins的访问权限”等。
那么LDAP到底是什么?怎么通过LDAP来控制Jenkins的访问权限?我们今天就来聊聊这其中的道道。
LDAP 全称为 Light Directory Access Portocol,是轻量级目录访问协议,属于应用层协议,主要用于存储关于组织、用户等信息资源,可用于实现单点登录、认证和授权等功能,是不是有点抽象?你可以把 LDAP 看作一个电话簿,电话簿就是用来查询用户的信息比如电话、地址、邮箱等,那么LDAP也是一样,由一条条的信息组成,整体结构成树状结构,如下图展示,
LDAP在企业中主要用于”统一认证“,除此之外还需要了解LDAP目录中所包含的属性,如下展示:
其中,ou=People组织下面都是该企业所有用户。
第一步:Jenkins 安装 LDAP 插件
安装完成之后,在Configure Global Security——Security Realm中有LDAP选项。点击LDAP进行配置。
第二步:在Jenkins中配置LDAP
具体配置内容如下图所示,
配置完成之后,点击 Test LDAP settings,输入Jenkinsdemo 用户的账号和密码,当看到下图内容时表示 Ldap与 Jenkins 已经打通。此时可以使用LDAP账号来登录Jenkins。
需要注意以下几点:
第一步:在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没有读写权限,不可访问。
关注我,不要错过更多精彩内容哦!