游戏迷提供最新游戏下载和手游攻略!

测试运维 | OpenLdap的安装与使用安装ldapadmin

发布时间:2024-06-07浏览:8

Ldap(轻量级目录访问协议)在如今的企业中应用非常广泛,可以方便的用来存储公司的员工信息、组织架构信息等。在我们测试领域,也需要用到Ldap来进行基本的身份认证。比如我们常用的Devops链中,任务管理Jira、知识库管理Confuence、代码管理Gitlab、持续集成Jenkins、代码扫描Sonarqube等,都可以对接ldap,实现统一的用户管理。今天就来聊聊Ubuntu上OpenLdap的安装和使用。

服务器安装

在 Ubuntu 上使用以下命令安装:

apt install slapd ldap-utils

安装过程中会提示输入管理员的密码,我们输入test123,在第二个界面再输入一次确认:

这使得在Ubuntu上安装成为可能,非常方便。

接下来我们配置默认的目录信息树(DIT)后缀。使用以下命令:

dpkg-reconfigure slapd

首先我们被询问是否跳过OpenLdap服务器的配置,我们选择否:

在第二页输入,这样就会创建dc=testexpert,dc=com的baseDN:

接下来在baseDN中输入组织名称,我们输入testexpert:

接下来输入我们在安装过程中设置的管理员密码test123:

选择后端数据存储的数据库类型,默认支持的有BDB、MDB、HDB,我们直接选择默认的MDB即可。根据提示可知HDB和MDB使用的存储格式差不多,但是HDB额外支持了子树命名。MDB使用了新的存储格式,需要的配置比BDB和HDB要少,所以建议使用MDB。

接下来会询问是否在卸载openldap时同步删除数据库,我们根据自己的需求选择,为了安全起见,可以选择no:

当询问是否删除旧的 ldap 安装时,我们选择是:

这样,设置成功了:)

启用 memberOfEnable memberOf

我先简单解释一下memberOf的作用。比如我们测试部门有个员工叫张三,从另一个角度看,张三是测试部门的员工。LDAP中的描述是,测试部门组里有个成员叫张三,张三有个属性memberOf,它的值为测试部门。当张三离职或者岗位变动时,测试部门组会把张三移除,那么张三的memberOf值就会自动被删除为测试部门。这个东西的好处就是,我们查一个人属于哪个部门的时候,不用去遍历组了,很方便。

首先我们检查 memberOf 是否已启用:

slapcat -n 0 | grep olcModuleLoad

得到以下结果:

然后我们创建b.ldif,内容如下:

dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof.la

然后使用以下命令执行它:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f b.ldif

创建 c.ldif,内容如下:

dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

执行以下命令:

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f c.ldif

创建 d.ldif,内容如下:

dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint

执行以下命令:

ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f d.ldif

创建 e.ldif,内容如下:

dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof member manager owner

执行以下命令:

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f e.ldif

安装ldap服务器_ldap安装_安装ldapadmin

然后再次查询,确认memberOf已启用:

客户端连接

接下来我们使用ldap客户端连接OpenLdap服务器设置组织结构,这里我使用的是ApacheDirectoryStudio:,一个Eclipse RCP应用程序,支持Windows、Linux和Mac,比较容易使用。

一旦开始,创建一个新链接:

输入连接名称和IP地址:

接下来输入身份验证信息:

认证使用默认的Simple Authentication,bind dn字段输入cn=admin,dc=testexpert,dc=com,除了cn=admin外,其他配置均与上述步骤一致,bind密码为test123,输入信息后点击Check Authentication进行检查。

接下来的几个步骤选择默认即可,最后在Directory Studio中显示出dc=testexpert,dc=com的目录树:

组织架构设立

接下来我们在 Directory Studio 中创建组织结构:

在 dc=testexpert,dc=com 中,选择新建 - 新条目:

创建新节点:

这里我们选择groupOfNames,也就是创建一个组:

接下来,在 dn 的 rdn 中设置 ou=Groups:

因为现在还没有成员,所以直接点击“完成”就可以完成创建了。

重复上述步骤,我们在 cn=Groups,ou=Test,ou=Development 下创建两个组;在 dc=testexpert,dc=com,ou=People 下创建另一个组。最终结果如下:

至此,组已创建完毕。现在让我们创建一个人。创建人的步骤与组的步骤类似,只是在对象类中,我们选择 inetOrgPerson:

重复此步骤,创建zhangsan、lisi两个账号,此时组织结构如下:

如果我们需要给用户添加额外的信息,比如密码,我们选择该用户并点击新建属性:

然后选择用户密码:

最后输入密码。

接下来我们把zhangsan添加到“Development”组,lisi添加到“Testing”组,点击图标弹出添加对话框,选择对应的人员:

核实

使用以下命令在OpenLdap服务器上查询:

ldapsearch -x -LLL -H ldap:/// -b cn=zhangsan,ou=People,dc=testexpert,dc=com dn memberOf

得到以下结果:

因为我们群里有中文,所以这里用base64加密了,解密之后就可以看到正确的内容了:

总结

OpenLdap的安装和使用为我们统一的DevOPS工具链奠定了身份认证的基础,在后续的文章中我们会逐步介绍各个工具访问和使用OpenLdap的步骤。

热点资讯