• Jenkins如何与LDAP打通账号
  • 发布于 2个月前
  • 308 热度
    0 评论

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。

需要注意以下几点:
1.当使用LDAP账号访问Jenkins时,Jenkins本地用户将不可访问Jenkins。
2.配置完之后一定要点击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没有读写权限,不可访问。
用户评论