gpt4 book ai didi

ldap - 在搜索过滤器中使用 DN

转载 作者:行者123 更新时间:2023-12-04 03:40:16 25 4
gpt4 key购买 nike

在我的 LDAP 客户端程序中,有时我必须在搜索过滤器中包含 DN 值。但是这个 DN 经常变化,每次我都必须在我的代码中更改这个过滤器。

当我用谷歌搜索它时,我得到了这样的东西

假设您想从 R&D 和 HR 中提取 ObjectType = Person 的所有用户,但不从 Marketing 和 PM 中提取任何用户。过滤器将是:

(&(objectClass=person)(|(ou:dn:=ResearchAndDevelopment)(ou:dn:=HumanResources)))

有人可以更详细地解释一下吗?

最佳答案

您应该检查 RFC 2254 (LDAP 搜索过滤器的字符串表示)。

LDAP 过滤器使用 polish notation对于 bool 运算符。所以运算符写在它的操作数之前:

(&(condition1)(condition2)(condition3)...)

上面的示例意味着您需要满足条件 1 的所有 LDAP 条目。和 条件 2 条件 3 等。

然后是条件本身。它们非常简单,只能包含以下几种类型:
  • 现状- (attrName=*)
  • 简单条件 - (attrName>=value)/(attrName<=value)/(attrNamevalue=value)/(attrName~=value)
  • 子串条件 - (attrName=*value*)/(attrName=*value)/(attrName=value*)
  • 可扩展条件 - (attrName:dn:=value)/(attrName:matchingRule:=value)
  • :dn: 的可扩展条件关键字意味着,您还希望条目 DN 中的属性也被考虑在内。因此,对于您的案例条目 cn=John Doe,ou=HumanResources,ou=Users,dc=example,dc=com将匹配过滤器 (ou:dn:=HumanResource) .

    将您的示例过滤器翻译成英语句子将是:

    Find me all LDAP entries which have objectClass equal to person and have either ResearchAndDevelopment or HumanResources in their ou attribute or somewhere on their DN.

    关于ldap - 在搜索过滤器中使用 DN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472994/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com