ldap - Spring LDAP - 批量查找完整 DN
问题描述
我正在使用 spring-ldap,我遇到了一种情况,我必须从 AD 服务器中查找一堆完整的 DN。在通往 AD 服务器的路上有很多延迟,所以如果我只是按顺序进行 N 次查找:
LdapTemplate.findByDn(dn,MyClass);
尽管它本身并不是一项非常昂贵的操作,但它往往相当慢。例如,如果我有 GUID,我可以简单地执行批处理或 OR 条件:
(|(objectGUID=A)(objectGUID=B)(objectGUID=C))
但我找不到对完整 DN 执行相同操作的方法。这甚至存在吗?如果可以的话,我想避免并行运行 N 个查询...
解决方案
由于这是一个 Active Directory 域,因此在 distinctName 属性中搜索完全限定的 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))
推荐阅读
- privileges - 安装的应用程序权限
- react-native - 反应原生 - eslint 给出太多错误
- java - Java 模块和 JAR MANIFEST 类路径属性
- qt - 为 Qt 工作线程打开和关闭数据库连接的正确方法是什么
- python - 汇总数据框中的行项目
- algolia - InstantSearch.js v4.8.5 x search-insights 1.7.1 不发送点击事件
- microsoft-dynamics - 对 Dynamics 365 API 和访问采购订单的困惑
- python - Python - 如果仅在 'if __name__ == '__main__' 中调用它,它是否被视为私有方法?
- javascript - 如何修复“未找到模块:错误:无法解析 'mvc/form/form-repeat'”?
- python - Selenium 无法按名称找到表单元素