【问题标题】:ldap returns on subtree and one level, but not baseldap 返回子树和一级,但不返回基数
【发布时间】:2013-08-09 19:44:05
【问题描述】:
在活动目录上,我可以使用以下过滤器进行子树和一级 ldap 搜索:
base dn: CN=Users,DC=local,DC=tld
filter: (sAMAccountName=dummyaccount)
虚拟帐户位于用户容器中。有人可以向我解释为什么一级和子树可以工作,而 base 不能吗?有什么办法可以让我找到对象吗?
【问题讨论】:
标签:
search
active-directory
ldap
ldap-query
【解决方案1】:
当您执行基本 ldap 搜索时,您基本上是在读取您指定为基本 DN 的对象的属性,仅此而已。
如果您想读取单个对象的属性并且您知道其 DN,则基本搜索很有用。在这种情况下,您可以将基本 DN 设置为对象的 DN,指定要检索的属性并提供“虚拟”搜索过滤器(因为无法省略过滤器)——例如 (objectclass=*)。
您当然可以使用过滤器来确保您正在阅读的 DN 符合一些期望:您可能知道 DN,但您想确保您正在阅读的对象是用户,即,搜索过滤器也可以用。
【解决方案2】:
one-level 范围只会返回直接从属于搜索的基础对象的对象,而不是基础对象本身。 subtree-level 搜索将返回从属于基础对象的所有对象,包括基础对象到基础对象下方树的完整深度,base-level 搜索将仅返回基础对象本身。