15

LDAPクライアントプログラムでは、検索フィルターにDN値を含める必要がある場合があります。しかし、このDNは頻繁に変更されており、コード内でこのフィルターを変更する必要があります。

そのためにググったとき、私はこのようなものを手に入れました

ObjectType = PersonのすべてのユーザーをR&DおよびHR ousからプルし、MarketingおよびPMからはプルしないとします。フィルタは次のようになります。

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

誰かがこれをもっと詳しく説明できますか?

4

2 に答える 2

18

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 エントリを見つけてください。ResearchAndDevelopmentHumanResourcesou

于 2014-08-08T18:31:35.050 に答える