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

У меня проблема с фильтром в LDAP. Я хочу получить всех пользователей в указанной группе LDAP. LDIF похож на этот:

dn: cn=engineering,ou=Groups,dc=domain,dc=com
objectClass: groupOfNames
cn: engineering
member: uid=alex,ou=Users,dc=domain,dc=com
member: uid=amy,ou=Users,dc=domain,dc=com
...

dn: uid=alex,ou=Users,dc=domain,dc=com
objectClass: posixAccount
objectClass: inetOrgPerson
cn: Alex Ander
gidNumber: 5000
homeDirectory: /home/alex
...

я пробовал

(&(objectClass=user)
  (memberof=cn=engineering,OU=Users,DC=domain,DC=com))

но это не работает

1 ответ

Решение

Чтобы получить всех членов группы, используйте следующие параметры в поисковом запросе:

  • Базовый объект: cn=engineering,ou=Groups,dc=domain,dc=com
  • область применения: база
  • фильтр: (&)
  • запрашиваемые атрибуты: member

Ответ от сервера (при условии, что состояние авторизации соединения, для которого обрабатывается запрос поиска) будет представлять собой список всех member значения атрибутов в этой группе.

Если клиент LDAP требует полной записи каждого из участников, передайте запрос поиска поиска для каждого участника. У клиента есть DN, поэтому требуется только область базового уровня, и перечислите каждый атрибут для извлечения.

В качестве альтернативы:

  • Базовый объект: ou=users,dc=domain,dc=com
  • область действия: один (если все объекты на один уровень ниже ou=users)
  • фильтр: (&(objectClass=inetorgPerson)(memberOf=cn=engineering,ou=Groups,dc=domain,dc=com))
  • запрошенные атрибуты, например, cn, homeDirectory

Ответ от (при условии, что состояние авторизации соединения, для которого обрабатывается запрос поиска) будет представлять собой список inetOrgPerson члены, которые в противном случае соответствуют параметрам поиска, например, являются членами этой группы.

смотрите также

Другие вопросы по тегам