我正在尝试使对组的写入访问控制尽可能自动化,就像我希望 LDAP 能够根据其他属性确定谁有权写入一样。
如果我只需要授予一个或几个人访问权限,我就能成功地做到这一点,通过将他们的 DN 指定为属性的值,然后使用此 ACL:
添加:olcAccess olcAccess:{2}to dn.sub="ou=groups,dc=example,dc=com" by dnattr="owner" 由用户写入 由 * none 读取
这确实很有效 - 我只需将所有者属性添加到对象,指定所有者的 DN,然后他们就可以写入该对象。
但是,对于更大规模的权限,我需要能够使用组成员身份。现在我已经阅读http://www.openldap.org/faq/data/cache/52.html并且看到您可以指定:按组访问//=但是,这需要我在访问控制本身中明确设置组的 DN。
我想要/需要做的是让 LDAP 读取具有权限的组的 DN,就像它对 dnattr 所做的一样。我想我已经读过一些关于使用集合可以做到这一点的内容,但 slapd.access 说“语句 set= 尚未记录。”所以我不清楚这是否是最合适的处理方式。
有人可以建议如何实现这一点吗?
谢谢。
菲利普
答案1
这就是这个问题的答案。
该组具有一个名为所有者的属性。该属性可以是个人的 DN,也可以是组的 DN(如果组成员身份使用名为 uniqueMember 的属性),并且那是个人的 DN。
访问规则是:
access to dn.sub="ou=groups,dc=example,dc=com"
by dnattr="owner" write
by set="this/owner/uniqueMember & user" write
by * none