Запрос LDAP для перечисления всех пользователей определенной группы

Как использовать фильтр поиска для отображения пользователей определенной группы?

Я пробовал следующие:

(&
    (objectCategory=user)
    (memberOf=MyCustomGroup)
)

и так:

(&
    (objectCategory=user)
    (memberOf=cn=SingleSignOn,ou=Groups,dc=tis,dc=eg,dc=ddd,D‌​C=com)
)   

но ни отображать пользователей определенной группы.

2 ответов


memberOf (в AD) хранится как список distinguishedNames. Ваш фильтр должен быть чем-то вроде:

(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com))

Если у вас еще нет отличительного имени, вы можете искать его с:

(&(objectCategory=group)(cn=myCustomGroup))

и верните атрибут distinguishedName. Дело может иметь значение.


для пользователей Active Directory альтернативным способом сделать это будет -- предполагая, что все ваши группы хранятся в OU=Groups,DC=CorpDir,DC=QA,DC=CorpName -- использовать запрос (&(objectCategory=group)(CN=GroupCN)). Это будет работать хорошо для всех групп с менее чем 1500 членов. Если вы хотите получить список всех членов большой группы объявлений, один и тот же запрос будет работать, но вам придется использовать составляла поиска чтобы получить все члены, 1500 записей за раз.

ключ к выполнению ranged retrievals должен указать диапазон в атрибуты, использующие этот синтаксис:атрибут; диапазон=низкий-высокий. Поэтому, чтобы получить всех членов группы объявлений с 3000 членами, сначала запустите вышеуказанный запрос с запросом member;range=0-1499 атрибут должен быть возвращен, затем для .