我已将 OpenLDAP 配置为三个不同后端前面的元目录:
database meta
uri "ldap://ldap1.example.com/ou=domain1,o=combined"
uri "ldap://ldap2.example.com/ou=domain2,o=combined"
uri "ldap://ldap3.example.com/ou=domain3,o=combined"
# ...and some suffixmap rules...
我无法控制任何后端目录服务器。
后端提供的信息部分重叠,有人可能在不同的后端服务器上拥有相同用户名但不同密码的帐户。
是否可以在后端强制执行某种排序,以便 (a) OpenLDAP 始终以相同顺序查询后端,并且 (b) 在找到匹配项后返回单个结果(并停止搜索)?据我所知,后端要么并行查询,要么以与它们在 slapd.conf 中列出的顺序无关的顺序查询。
答案1
从讨论在 OpenLDAP 技术邮件列表上:
数据库
meta
并行搜索引用的后端服务器,因此返回结果的顺序是不确定的......但您可以更快地获得结果,因为慢速后端不会延迟来自其他后端的值。使用后端的多个数据库
ldap
将按顺序进行搜索。这样可以按可预测的顺序获得结果,但对完成请求所需的时间有明显的影响。
sizelimit 1
除了设置和使用顺序配置之外,似乎没有其他好的方法来实现跨多个后端的结果的唯一性。