Monday, November 6th, 2006...11:53 pm

O użyciu filtrów LDAP raz jeszcze

Jump to Comments

Zanudzam wszystkich ostatnio tymi różnymi zapytaniami LDAP ale cóż … bÄ™dzie raz jeszcze.

Ostatnio przy pracy nad prostym projektem trafił się koledze filtr LDAP, niby prawidłowy a jednak nie do końca czytelny. Szybko wyjaśniliśmy w czym rzecz, ale jako że dzisiaj (właściwie to wczoraj w nocy) trafiłem na podobny przypadek w innej jeszcze aplikacji to postanowiłem napisać o tym szybki wpis.

Nasz podejrzany więc wygląda tak:

(&(objectClass=user)(objectCategory=Contact))

Pytanie, jakiej kategorii będą obiekty które zostaną wybrane przez taki filtr. Nasuwa sie Contact, czy rzeczywiście? Spójrzmy więc na statystyki ADFind.exe:

Filter Breakdown:

(&
(objectClass=user)
(objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=w2k,DC=pl)
)

CoÅ› nie tak?? Wszystko jak najbardziej w porzÄ…dku – już tÅ‚umaczÄ™. W przypadku użycia objectCategory w filtrze LDAP powinniÅ›my do wskazania wartoÅ›ci posÅ‚użyć sie peÅ‚nym DN klasy, której chcemu użyć w filtrze. Active Directory pozwala nam to uproÅ›cić i pozwala nam również posÅ‚użyć sie nazwÄ… LDAP (LDAP display name) klasy ze schematu, samodzielnie rozwijajÄ…c tÄ™ klasÄ™ do odpowiedniego DN. Jakiego? W takim wypadku odczytywana jest domyÅ›lna kategoria obiektów tej klasy ze schematu, czyli atrybut defaultObjectCategory z definicji tej klasy. W przypadku użytej w przykÅ‚adzie klasy Contact jest to CN=Person,CN=Schema,CN=Configuration, …. . I caÅ‚a zagadka wyjaÅ›niona.

Może nie jest to najważniejsza informacja o tym co się dzieje w usługach katalogowych, ale wydaje mi się że czasami dobrze jest wiedzieć co tak naprawdę robimy pisząc skrypty \ programy, stąd ten post.

Leave a Reply