我对OpenLDAP不太熟悉,但我试图让本地实例正常工作,以便在开发中测试客户端,这需要memberOf属性。
我已根据http://www.openldap.org/doc/admin24/guide.html#A快速入门指南中的说明在Centos 7 VM上下载并安装了OpenLDAP。我没有使用包管理来安装它。由于我使用2.4.45,它使用cn = config OLC配置而不是slapd.conf配置方案
在上面的步骤4中,我使用了--enable-memberof和--enable-refint标志来配置脚本。当我运行预安装测试时,它确实运行了测试成员,并且它们通过了,所以我知道覆盖可以以某种方式应用。
我已经尝试了在https://adimian.com/blog/2014/10/how-to-enable-memberof-using-openldap/找到的指示,并且有轻微变体,还有很多其他地方。我已经遇到了以下问题...
这是否在正确的轨道上?或者这个过程会有所不同,因为我是从源代码安装的,还是使用了--enable-memberof标志?
如果有任何我需要提供的信息,请告诉我。
更新:
目前,我正在尝试使用上面链接说明中的dn dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
添加条目。我明白了
# ldapadd -x -D "cn=Manager,dc=aaron,dc=com" -W -f member.ldif
Enter LDAP Password:
adding new entry "olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config"
ldap_add: Insufficient access (50)
另一个更新: 进步!
我通过编辑将一个olcRootPW添加到cn = config数据库
etc/slapd.d/cn=config/olcDatabase={0}config.ldif
然后使用该dn运行ldapadd:
ldapadd -x -D "cn=config" -W -f member.ldif
我不得不放回{0}和{1}。
尝试添加第一个refint ldif失败,但我认为我不需要,因为这些不是模块,但根据我的配置方式直接编译成slapd
现在我尝试添加第二个refint条目并获取
[root@openldap openldap]# ldapadd -x -D "cn=config" -W -f refint2.ldif
Enter LDAP Password:
adding new entry "olcOverlay={1}refint,olcDatabase={1}mdb,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcRefintAttribute <manager>: attribute type undefined
答案 0 :(得分:1)
为可能需要其他相关信息的用户添加此评论。 This文章清楚地解释了如何启用memberOf叠加以及参照完整性。实际上,它完全解释了端到端openLDAP的实现。
答案 1 :(得分:0)
所以,我必须做的一切都是为了让它从原来的问题开始运作:
将olcRootPW条目添加到olcDatabase = {0} config.ldif配置条目。正如EJP所说,这是一个糟糕的形式,但由于这只是一个本地测试目录,我只希望它允许我测试一个客户端......
如果文件中没有{0}和{1}项,则加载仍然失败。我,但两个回来,它的工作。我没有回去检查EJP的建议只有{1}。
然后需要使用bind dn&#39; cn = config&#39;运行ldapadd命令。此时,启用配置成员的条目将成功添加。
我尝试添加第一个refint文件,即执行模块的文件。这不起作用,我得到一个关于olcModuleList属性的错误。我想自从我通过--enable-memberof和--enable-refint直接将覆盖编译成OpenLDAP后,我不需要这部分吗?
对于第二个refint文件,添加叠加层的文件,我只需要删除经理所有者&#39;部分属性,因为我的目录没有这些属性。此时ldif成功添加。
然后我进入目录并将用户,组和分配的用户添加到组中,并且(一旦我告诉它获取操作属性)并且看到我的用户具有相应的memberOf属性!