RFC 2254 (The String Representation of LDAP Search Filters)を確認してください。
LDAP フィルターは、ブール演算子に洗練された表記法を使用します。したがって、演算子はそのオペランドの前に記述されます。
(&(condition1)(condition2)(condition3)...)
上記の例は、条件 1 と条件 2 と条件3などを満たすすべての 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
は filter と一致します(ou:dn:=HumanResource)
。
フィルタの例を英文に翻訳すると、次のようになります。
属性または DN のどこかに等しいobjectClass
か、またはperson
いずれかを持つすべての LDAP エントリを見つけてください。ResearchAndDevelopment
HumanResources
ou