无法添加memberOf覆盖openldap 2.3.9

我目前正在将LDAP身份validation集成到一个系统中,我想限制基于LDAP组的访问。 唯一的方法是通过searchfilter,因此我相信我唯一的select是在我的searchfilter中使用memberOf属性。 这是我的理解, memberOf属性是一个操作属性,可以由服务器为我创build任何时候为服务器上的任何groupOfNames条目创build一个新的member属性。 我的主要目标是能够将member属性添加到现有的groupOfNames条目中,并将匹配的memberOf属性添加到我提供的DN

我正在开发OpenLDAP 2.3.9版本。 我知道版本2.4.31是最新的,但它有一个BerkeleyDB版本依赖,我不能更新,因此我必须坚持到版本2.3.9。

我按照OpenLDAP指南中描述的方式设置了OpenLDAP,并且能够启动服务器。 现在我试图添加成员覆盖到configuration数据库。 我将以下内容添加到slapd.conf:

 database config rootdn "cn=config" rootpw secret 

我为memberOf:创build了一个ldif文件memberOf:

 dn: cn=module,cn=config cn: module objectclass: olcModuleList objectclass: top olcmoduleload: memberof.la olcmodulepath: "path" dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config objectClass: olcConfig objectClass: olcMemberOf objectClass: olcOverlayConfig objectClass: top olcOverlay: memberof 

我试图用命令添加这个覆盖层:

 ldapadd -x -h "host" -p "port -D "cn=config" -f memberOf.ldif -w secret 

我收到以下错误:

 ldapadd: Internal (implementation specific) error (80) additional info: <olcModuleLoad> handler exited with 1 

我有以下问题:

  1. 我们可以在小于2.3的版本中添加叠加层吗?
  2. 我读过我们需要在ldapadd命令中使用-y EXTERNAL

    我得到以下错误这样做:

     ldapadd: incompatible with authentication choice 

有人可以告诉我做错了什么? 有很多分散的资源,我试过,但所有结束了我的oclModuleLoad错误。

这是我的理解, memberOf属性是一个操作属性,可以由服务器为我创build任何时候为服务器上的任何groupOfNames条目创build一个新的member属性。

如果你这样configuration。 您尚未完成configuration。 你需要指定覆盖层将要维护的memberOf属性的属性和objectClasses。 你将需要这样的东西,适应你自己的需要:

 olcMemberOfDangling ignore olcMemberOfGroupOC groupOfNames olcMemberOfMemberAD member olcMemberOfMemberOfAD memberOf olcMemberOfRefInt TRUE 

除了你已经拥有的东西。