我正在尝试保护现有的OpenLDAP安装,如果它知道LDAP中特定用户条目的uid,则需要允许匿名用户检索有关记录的信息.假设结构如下:
dc=example,dc=com ou=People uid=user1 uid=user2 ou=Groups cn=user1 memberUid:user1 cn=user2 memberUid:user2 cn=common memberUid:user1 memberUid:user2
现在,如果匿名者知道LDAP中存在条目uid = user1,则他们应该能够检索该用户所属的组列表.但是他们不应该发现其他群体.
因此ldapsearch -b“ou = Groups,dc = example,dc = com”应该不返回任何内容,而ldapsearch -b“ou = Groups,dc = com”“(&(objectClass = posixGroup)(memberUid = user1))“应返回user1所属的所有组.
到目前为止,我尝试了几种不同的ACL,但没有运气.它既可以搜索也可以列出所有组,或者不能列出所有组,但搜索不起作用.
有没有办法使用ACL实现所需的行为?
PS:数据库使用标准的nis模式,因为数据库已经将数据更改为rfc2307bis不是一个选项(并且还有其他原因导致在这种情况下无法进行此类更改).
我不认为这是可能的,因为你不能限制哪些组可以读取.但是,OpenLDAP提供了一种可能对您有所帮助的替代方法.这称为“反向组维护”(参见章节12.8
in the (outdated) docs),其中包含memberOf覆盖.基本上,它维护用户所属的每个组的列表,这允许容易地查找此类信息.
原文链接:https://www.f2er.com/bash/385250.html有关如何以现代方式执行此操作,使用cn = config,请查看here.