OpenLDAP:具有dynamic条件的ACL
我有一个问题,为OpenLDAP设置ACL。 这里是一些最简单的例子来解释这个问题。 模式如下: dc=example,dc=com |– cn=password_resetter `– ou=users |– uid=johndoe `– uid=janedoe 用户中的所有对象都具有“qmailUser”作为objectClass,结果是属性mail和userPassword 。 password_ressetter应该能够根据邮件地址更改密码。 我知道的正常方式是允许search和比较邮件属性,并允许写入userPassword属性。 像(没有testing过): to dn.subtree="ou=users,dc=exmpale,dc=com" by dn.base="cn=password_resetter,dc=example,dc=com" search to dn.children="ou=users,dc=exmpale,dc=com" attrs=mail by dn.base="cn=password_resetter,dc=example,dc=com" compare to dn.children="ou=users,dc=exmpale,dc=com" attrs=userPassword by dn.base="cn=password_resetter,dc=example,dc=com" write 但是这将正确的访问权检查转移到客户端应用程序:客户端可以search用户树,客户端可以编辑每个密码,甚至不检查邮件。 你知道一个访问规则,只有当邮件是一个特定的,才允许更改userPassword? 或者其他说:我理想的需要一个规则,允许更改属性userPassword只有DN与一个被宽恕的邮件。