Глядя на ваш поиск, у меня есть пара моментов для вас. Во-первых, поиск использует objectClass (не индексируется) вместо objectCategory (индексируется). Огромная проблема производительности с этим запросом. Вы бы всегда хотели объединить их вместе в зависимости от того, что вы пытаетесь получить:
(&(objectCategory=person)(objectClass=user)) = All users (no contacts)
(&(objectCategory=person)(objectClass=contact)) = All contacts (no users)
(&(objectCategory=person)) = All users and contacts
Что касается поиска пользователей в группе, вы можете перечислить список объектов-членов определенной группы. В атрибуте member объекта group находится однозначное имя каждого пользователя.
В этой статье описывается перечисление членов группы ...
Не забывайте, что вам, возможно, придется обрабатывать вложенные группы родительской группы, поскольку по умолчанию нет способа обработать это с помощью запросов LDAP. Для этого вам может потребоваться оценить, является ли объект-член группой, а затем получить атрибут участника для этой дочерней группы.
Наконец, вы должны привыкнуть задавать префикс dns для вашего запроса.
Без префикса DNS:
LDAP://ou=ouname,dc=domain,dc=com
С префиксом DNS (все три работают):
LDAP://servername/ou=ouname,dc=domain,dc=com
LDAP://servername.domain.com/ou=ouname,dc=domain,dc=com
LDAP://domain.com/ou=ouname,dc=domain,dc=com
Один домен не вызовет особых проблем, но когда вы попытаетесь выполнить поиск в среде с несколькими доменами, вы не получите этого дополнения. Надеюсь, это поможет вам приблизиться к цели.