无法添加 memberOf 覆盖 openldap 2.3.9

无法添加 memberOf 覆盖 openldap 2.3.9

我目前正在将 LDAP 身份验证集成到系统中,我想根据 LDAP 组限制访问。唯一的方法是通过搜索过滤器,因此我相信我唯一的选择是memberOf在搜索过滤器中使用属性。据我了解,该memberOf属性是一个操作属性,服务器可以在member为服务器上的任何条目创建新属性时为我创建groupOfNames它。我的主要目标是能够将member属性添加到现有groupOfNames条目,并将匹配的memberOf属性添加到我提供的 DN

我正在使用 OpenLDAP 版本 2.3.9。我知道版本 2.4.31 是最新版本,但它具有 BerkeleyDB 版本依赖性,我无法更新,因此我必须坚持使用版本 2.3.9。

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

database config
rootdn "cn=config"
rootpw secret

我创建了一个 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. 我读到我们需要-y EXTERNALldapadd命令中使用

    我这样做时出现以下错误:

    ldapadd: incompatible with authentication choice
    

有人能告诉我我做错了什么吗?我尝试了很多分散的资源,但都以错误告终oclModuleLoad

答案1

据我了解,该属性是一种操作属性,只要为服务器上的任何条目创建memberOf新属性,服务器就可以为我创建该属性。membergroupOfNames

如果您按这种方式配置。您尚未完成配置。您需要指定覆盖层将为哪些属性和 objectClasses 维护 memberOf 属性。您将需要类似这样的内容,以适应您自己的需求:

olcMemberOfDangling ignore
olcMemberOfGroupOC  groupOfNames
olcMemberOfMemberAD member
olcMemberOfMemberOfAD   memberOf
olcMemberOfRefInt   TRUE

除了您已经拥有的之外。

相关内容