如何在openldap服务器上配置反向组成员资格维护? (成员)

前端之家收集整理的这篇文章主要介绍了如何在openldap服务器上配置反向组成员资格维护? (成员)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在将LDAP身份验证集成到系统中,我想基于LDAP组限制访问.唯一的方法是通过搜索过滤器,因此我相信我唯一的选择是在我的搜索过滤器中使用“memberOf”属性.据我所知,“memberOf”属性是一个操作属性,只要为服务器上的任何“groupOfNames”条目创建新的“member”属性,服务器就可以为我创建该属性.
我的主要目标是能够在现有的“groupOfNames”条目中添加“member”属性,并将匹配的“memberOf”属性添加到我提供的DN中.

到目前为止我成功实现的目标:

我仍然是LDAP管理的新手,但基于我在openldap管理员指南中找到的内容,它看起来像Reverse Group Membership Maintence又称“覆盖成员”将达到我正在寻找的效果.

我的服务器当前正在运行openldap 2.4.15的软件包安装(ubuntu上的slapd),它使用“cn = config”样式运行时配置.我发现的大多数示例仍然引用了较旧的“slapd.conf”静态配置方法,我已尽力使配置适应新的基于目录的模型.

添加了以下条目以启用overlayof成员模块:

使用olcModuleLoad启用模块

cn=config/cn\=module\{0\}.ldif

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z

启用数据库的叠加并允许它使用它的默认设置(groupOfNames,member,memberOf等)

cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof

dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z

我目前的结果:

通过使用上面的配置,我可以添加一个包含任意数量“member”条目的NEW“groupOfNames”,并使用“memberOf”属性更新所有涉及的DN.这是我期望的行为的一部分.虽然我认为应该用覆盖成员完成以下操作,但我仍然不知道如何做以下操作,我很乐意欢迎任何建议:

>将“member”属性添加到EXISTING“groupOfNames”,并自动创建相应的“memberOf”属性.
>删除“member”属性自动删除相应的“memberOf”属性.

我一直在努力做同样的事情,openldap文档极简主义,几乎没有任何帮助.当他们转到配置数据库(原则上不是一个坏主意)时,所有选项都改变了,所以当人们从/etc/ldap/slapd.conf给出示例时,它对于现代slapd配置(例如Ubuntu)是没用的.

我终于得到了这个工作.这是摘要…第一个LDIF文件

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: memberof

第二个LDIF文件

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

使用ldapadd将它们添加到配置数据库中(与普通配置相同).

它不会自动更新数据库中的现有数据,因此我需要使用slapcat将所有内容复制到临时文件中,并访问每个组,删除该组并再次添加相同的组(强制memberOf属性更新)正确).如果您从空数据库开始,那么它将在添加对象时正确更新属性.

另请注意,“olcDatabase = {1} hdb”非常典型,但不能保证与您的设置相匹配.一定要检查一下.

猜你在找的Bash相关文章