2011-09-19 38 views
7

Trong chương trình Máy khách LDAP của tôi đôi khi tôi phải bao gồm giá trị DN trong bộ lọc tìm kiếm. Nhưng DN này đang thay đổi thường xuyên và tôi phải thay đổi bộ lọc này trong mã của mình.Sử dụng DN trong Bộ lọc Tìm kiếm

Khi tôi googled nó cho rằng tôi có một cái gì đó như thế này

Giả sử bạn muốn kéo tất cả người dùng của ObjectType = Person từ R & D và HR độc hại, nhưng không phải bất kỳ người dùng từ thị và PM. Bộ lọc sẽ là:

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

Ai cũng có thể giải thích chi tiết hơn?

Trả lời

8

Bạn nên kiểm tra RFC 2254 (Biểu diễn chuỗi bộ lọc tìm kiếm LDAP).

Bộ lọc LDAP sử dụng polish notation cho các toán tử boolean. Vì vậy, các nhà điều hành được viết trước khi toán hạng của nó:

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

Ví dụ trên có nghĩa là bạn muốn tất cả các mục LDAP đáp ứng condition1 condition2 condition3 và vân vân.

Sau đó, cũng có điều kiện. Họ rất đơn giản và có thể chỉ gồm vài loại:

  • hiện trạng - (attrName=*)
  • đơn giản điều kiện - (attrName>=value)/(attrName<=value)/(attrNamevalue=value)/(attrName~=value)
  • chuỗi điều kiện - (attrName=*value*)/(attrName=*value)/(attrName=value*)
  • mở rộng condition - (attrName:dn:=value)/(attrName:matchingRule:=value)

Điều kiện mở rộng với từ khóa :dn: có nghĩa là bạn cũng muốn các thuộc tính từ DN nhập cũng được xem xét. Vì vậy, đối với trường hợp nhập cảnh của bạn cn=John Doe,ou=HumanResources,ou=Users,dc=example,dc=com sẽ khớp với bộ lọc (ou:dn:=HumanResource).


Dịch lọc ví dụ của bạn đến một câu tiếng Anh sẽ là:

Find me tất cả các mục LDAP có objectClass bằng person và có một trong hai ResearchAndDevelopment hoặc HumanResources trong thuộc tính ou của họ hoặc ở đâu đó trên DN của họ .

+0

Lưu ý rằng hỗ trợ cho các điều kiện này khác nhau tùy theo nhà cung cấp. Ví dụ, Active Directory không hỗ trợ các điều kiện mở rộng và xử lý bằng nhau ('~ =') và bằng nhau ('=') giống hệt nhau. [Tham khảo.] (Http://ldapwiki.com/wiki/ExtensibleMatch) – bishop

Các vấn đề liên quan