我正在使用spring-ldap,因此我不得不从AD服务器查找一堆完整的DN。到AD服务器的路上存在大量延迟,因此,如果我只按顺序进行N次查找:
LdapTemplate.findByDn(dn,MyClass);
尽管它本身并不是一个非常昂贵的操作,但它往往相当慢。例如,如果有GUID,我可以简单地执行批处理或OR条件:
(|(objectGUID=A)(objectGUID=B)(objectGUID=C))
但是我找不到找到完整DN的方法。这是否存在?如果可以的话,我想避免并行运行N个查询...
答案 0 :(得分:0)
由于这是一个Active Directory域,请在distinguishedName属性中搜索完全限定的DN:
(|(distinguishedName=CN=Lisa,OU=ResourceUsers,DC=example,DC=com)(distinguishedName=CN=Scott,OU=ResourceUsers,DC=example,DC=com)(distinguishedName=CN=Anya,OU=ResourceUsers,DC=example,DC=com))
或者,如果可能的话,将所有有效用户添加到组中并搜索属于该组成员的个人(这避免了每次添加/删除用户时都必须调整您的LDAP查询)-添加一个帐户进入群组,他们就会出现在您的查询中,从群组中删除某人,他们就会从结果集中消失。
(&(memberOf=cn=MyGroupName,ou=OUForGroups,dc=example,dc=com))