搜索多个OU以查找对象

时间:2018-02-20 03:04:12

标签: filter ldap

我有很多特定的OU需要搜索对象。我无法搜索最常见的父OU,因为它将包含许多我不想要的OU。我知道我可以搜索最常见的父OU,并在迭代结果时排除我不想要的OU,但这对我的情况也不起作用。

目前,我必须通过将基础设置为我正在搜索的OU来逐个搜索每个OU,但这意味着要进行数千次LDAP调用。

我试图找到一种方法来过滤特定的OU,但无法弄清楚如何。类似的东西:

(
    &
    (objectCategory=computer)
    (
        |
        (someAttribute=OU=one,OU=two,DC=some,DC=com)
        (someAttribute=OU=two,OU=two,DC=some,DC=com)
        (someAttribute=OU=two,OU=three,DC=some,DC=com)
        (someAttribute=OU=five,OU=four,OU=three,DC=some,DC=com)
    )
)

我的想法是我可以批量输入特定/目标OU的输入列表,并一次搜索多个OU。

我考虑过将distinguishedName与通配符(distinguishedName=*,OU=...)一起使用,但这看起来非常低效。

1 个答案:

答案 0 :(得分:1)

不幸的是,无法使用一组不同的基本DN执行单个LDAP搜索。您必须找到一组定义所需结果的属性。 您正在寻找的对象有什么共同之处?

如果父OU确实是唯一定义所需结果集的属性,那么您自己建议在巨型distinguishedName过滤器中使用AD的OR属性是可行的方法。

请注意,我可以使用我的肥皂盒并讨论正确的LDAP目录树设计,但这无助于您找到解决方案。

编辑如果我是你,我肯定会尝试单独搜索每个基本DN以查看哪个更快。如果可能,请将搜索范围优化为onelevel。如果您的应用程序使用连接池,则单独优化搜索的可能性更快。