Пытаюсь вытащить из AD список юзеров через LDAP. Ставлю фильтр "objectClass=user"
— фиг там, вместе с юзерами находятся и все компьютеры.
Попробовал "objectClass=person"
— то же самое. "objectClass=organizationalPerson"
— та же фигня..
Пошёл гуглить. Внезапно оказалось, что искать надо не просто по "objectClass=user"
, а ещё и по "objectCategory=person"
. И так оно действительно работает, но.. в возвращаемых объектах objectCategory вовсе не person
, а "CN=Person,CN=Schema,CN=Configuration,DC=domain,DC=com"
.
Вдобавок отдельный атрибут для имени (givenName
) у юзеров есть, а sn
(фамилия) — фиг. Только полное имя с фамилией в виде displayName
. Так что искать по имени можно, а по фамилии — фиг.
Хуже того, CN у юзеров совпадает вовсе не с логином (sAMAccountName
), что было бы логично, а с displayName
. Типа, "CN=John Smith,OU=department,DC=domain,DC=com"
. Как при этом заводить юзеров с одинаковым именем и фамилией (а такое в натуре случается!) — сами гадайте..
“Вот уроды!” ©
Оригинал этой записи в личном блоге.