目的
默认情况下OpenLDAP的用户组属性是Posixgroup,Posixgroup用户组和用户没有实际的对应关系。如果需要把Posixgroup和user关联起来则需要将用户添加到对应的组中。 通过如上配置可以满足大部分业务场景,但是如果需要通过用户组来查找用户的话,Posixgroup用户组属性,是无法满足要求的。此时需要使用OpenLDAP的groupOfUniqueNames用户组属性。本篇文章Fayson主要介绍如何为OpenLDAP启用MemberOf。
环境
OpenLDAP版本为2.4.44
步骤
先查看openldap的数据库信息
1 | ls /etc/openldap/slapd.d/cn=config/ |
得到的结果大概如下,不一样也不要害怕:
1 | cn=module{0}.ldif cn=schema/ cn=schema.ldif olcDatabase={0}config.ldif olcDatabase={-1}frontend.ldif olcDatabase={1}monitor.ldif olcDatabase={2}bdb/ olcDatabase={2}bdb.ldif |
其中有一个带什么db.ldif
的就是你最终需要修改的数据库文件,我这里是bdb.ldif
,你的可能是mdb.ldif
,还有人是hdb.ldif
,不管什么db
,总之你要改的是一个叫db
的文件就对了,你可以cat
打开看一看,但是不要用vi
去修改它。
准备memberof_conf.ldif文件
1 | vim memberof_conf.ldif |
编辑refint1.ldif文件
1 | vim refint1.ldif |
编辑refint2.ldif文件
1 | vim refint2.ldif |
导入配置
1 | #注意:导入时文件路径跟绝对路径 |
以上步骤就完成了OpenLDAP的MemberOf模块启用。
验证
验证一下配置,这个命令可以列出所有配置
1 | slapcat -b cn=config |
创建用户测试
1, 创建一个测试用户cdsw_a,ldif文件内容如下:
1 | vim cdsw_user.ldif |
2, 执行如下命令将cdsw_a用户导入到OpenLDAP中
1 | ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f cdsw_user.ldif |
3, 创建一个新的groupOfUniqueNames用户组,并把cdsw_a用户添加到该组
1 | vim cdsw_group.ldif |
- 将cdsw_admin组添加到OpenLDAP中
- 通过命令查看用户所属组,命令如下
1 | ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=cdsw_a)" -b dc=fayson,dc=com memberOf |
总结
在OpenLDAP中配置启用MemberOf时需要注意配置文件的通配符{0}/{2},这个数字不是随意指定的而是根据当前的/etc/openldap/slapd.d/cn=config/生成的内容得出
搜索例子
1 | # docker openldap |