我对OpenLDAP不太熟悉,但我正在尝试使本地实例工作以测试开发中的客户端,这需要memberOf属性 .
我已根据http://www.openldap.org/doc/admin24/guide.html#A快速入门指南中的说明在Centos 7 VM上下载并安装了OpenLDAP . 我没有使用包管理来安装它 . 因为我'm using 2.4.45, it'使用cn = config OLC配置而不是slapd.conf配置方案
在上面的步骤4中,我使用了--enable-memberof和--enable-refint标志来配置脚本 . 当我运行预安装测试时,它确实运行了测试成员,并且它们通过了,所以我知道覆盖可以以某种方式应用 .
我已经尝试了在https://adimian.com/blog/2014/10/how-to-enable-memberof-using-openldap/找到的指示,并且有轻微的变种,还有很多其他的地方 . 我遇到了以下问题......
-
ldapadd期间有关无效objectClass oldModuleList的错误
-
ldapadd期间访问错误不足
-
我似乎在机器上的任何地方都有memberof.la文件 .
这甚至是在正确的轨道上?或者这个过程会不同,因为我从源代码安装或使用了--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)
另一个更新:进展!
我通过编辑 etc/slapd.d/cn=config/olcDatabase={0}config.ldif
向cn = config数据库添加了一个olcRootPW,然后使用该dn运行ldapadd: ldapadd -x -D "cn=config" -W -f member.ldif
我必须将{0}和{1}放回去 .
试图添加第一个refint ldif失败,但我认为我没有't need that since these aren' t模块,但根据我的配置方式直接编译成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
2 回答
为可能需要有关此内容的其他信息的用户添加此评论 . This文章清楚地解释了如何启用memberOf叠加以及参照完整性 . 实际上,它完全解释了端到端的openLDAP实现 .
所以这就是我要从原始问题开始工作所需要做的一切:
将olcRootPW条目添加到olcDatabase = {0} config.ldif配置条目 . 正如EJP所说,这是一个糟糕的形式,但由于这只是一个本地测试目录,我只希望它允许我测试客户端...
如果文件中没有{0}和{1}项,则加载仍然失败 . 我,但两个回来,它的工作 . 我没有回去检查EJP的建议只有{1} .
然后需要使用bind dn'cn = config'运行ldapadd命令 . 此时,启用配置成员的条目将成功添加 .
我试图添加第一个refint文件,即执行模块的文件 . 这不起作用,我得到一个关于olcModuleList属性的错误 . 我想自从我通过--enable-memberof和--enable-refint直接将覆盖编译成OpenLDAP后我不需要这部分了吗?
对于第二个refint文件,添加叠加层的文件,我只需要删除属性的'manager owner'部分,因为我的目录没有这些属性 . 此时ldif成功添加 .
然后我进入了目录并添加了用户,组和分配用户到组,并且(一旦我告诉它获取操作属性)并且看到我的用户具有相应的memberOf属性!