在我的LDAP客戶端程序中,有時必須在搜索過濾器中包含DN值。但是這個DN經常變化,我必須在代碼中更改這個過濾器。在搜索過濾器中使用DN
當我用Google搜索它,我得到了這樣的事情
假設你想拉對象類型=人的所有用戶從R & d和HR組織單位,但不能從市場營銷和PM的任何用戶。該過濾器將是:
(&(objectClass=person)(|(ou:dn:=ResearchAndDevelopment)(ou:dn:=HumanResources)))
任何人都可以解釋這更詳細?
在我的LDAP客戶端程序中,有時必須在搜索過濾器中包含DN值。但是這個DN經常變化,我必須在代碼中更改這個過濾器。在搜索過濾器中使用DN
當我用Google搜索它,我得到了這樣的事情
假設你想拉對象類型=人的所有用戶從R & d和HR組織單位,但不能從市場營銷和PM的任何用戶。該過濾器將是:
(&(objectClass=person)(|(ou:dn:=ResearchAndDevelopment)(ou:dn:=HumanResources)))
任何人都可以解釋這更詳細?
您應該檢查RFC 2254(LDAP搜索過濾器的字符串表示形式)。
LDAP過濾器使用polish notation作爲布爾運算符。因此,運營商在其操作數之前寫:
(&(condition1)(condition2)(condition3)...)
上面的例子意味着你要滿足條件1 和條件2 和 condition3等所有LDAP條目。
然後有條件自己。他們是非常簡單,可以只包含少數幾種類型:
(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)
。
翻譯你的榜樣過濾器的英文句子是:
找到我這有
objectClass
等於person
所有LDAP條目,要麼ResearchAndDevelopment
或HumanResources
他們ou
屬性或地方上的DN 。
請注意,對於這些條件的支持因供應商而異。例如,Active Directory不支持可擴展的條件,並且以相同的方式處理近似相等('〜=')和相等('=')。 [參考](http://ldapwiki.com/wiki/ExtensibleMatch) – bishop