让OpenLDAP成员工作的问题

时间:2017-09-19 17:54:04

标签: ldap openldap

我对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/找到的指示,并且有轻微变体,还有很多其他地方。我已经遇到了以下问题...

  1. ldapadd
  2. 期间有关无效objectClass oldModuleList的错误
  3. ldapadd
  4. 期间访问错误不足
  5. 我没有与任何示例中找到的模块路径对应的本地目录。我似乎没有机器上任何地方的memberof.la文件。
  6. 这是否在正确的轨道上?或者这个过程会有所不同,因为我是从源代码安装的,还是使用了--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
    

2 个答案:

答案 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属性!