LDAP语法/语义:过滤器与基本DN?

时间:2010-11-04 21:53:48

标签: syntax ldap filtering semantics ldap-query

这可能是非常愚蠢的,但我仍然是绿色的LDAP。所以我希望有人可以伸出援助之手。

我正在使用Apache Directory Studio进行搜索,我很困惑何时应该使用过滤器,或者我应该将我的过滤器分成两部分,使用一部分作为过滤器,另一部分作为我的搜索库。

以下是我尝试过滤群组的示例。

Filter: CN=JohnTestGroup,OU=TECH,DC=lab,DC=ing
Base:   DC=lab,DC=ing

这导致零结果。我意识到也许我是多余的,因为基础的一部分是在过滤器中,所以我摆脱了过滤器中的那部分。

Filter: CN=JohnTestGroup,OU=TECH
Base:   DC=lab,DC=ing

这仍然没有产生任何结果。所以我尝试了这个:

Filter: CN=JohnTestGroup
Base:   OU=TECH,DC=lab,DC=ing

我将OU参数移到Base。这有效,但我不明白为什么第一次或第二次尝试没有。有人想关注我的一些知识吗?

这可能是语法/语义的问题,所以如果有人能指出我的资源,我会非常愿意阅读更多关于它的信息。

2 个答案:

答案 0 :(得分:2)

了解那里的范围:http://www.idevelopment.info/data/LDAP/LDAP_Resources/SEARCH_Setting_the_SCOPE_Parameter.shtml

如果您将搜索范围设置为SUBTREE(2和3),则可能的1个变体开始工作,但按子树搜索的速度较慢

答案 1 :(得分:1)

我认为您误解了过滤器的工作原理。它意味着键=值配对。

所以(objectClass = iNetOrgPerson)为例。

如果您希望过滤器找到DN,那么您选择一个识别特征,如CN,过滤器(CN = JohnTestGroup)或者(mail = John@@@)。

基础告诉LDAP服务器从哪里开始查找,作为他/她的答案中的seriyPS注释,SCOPE是下一个问题。服务器应该搜索多深,因为这会增加开销和性能问题。子树在概念上是简单的。只要继续向下看,直到你没有树来看透。

这就是你的最后一个有效的原因。

现在,如果要查找特定对象并且知道其DN,则对特定DN的基础执行ENTRY范围查询。