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 VÀ condition2 VÀ 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ọ .
Nguồn
2014-08-08 18:31:35
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