Фильтр 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
члены, которые в противном случае соответствуют параметрам поиска, например, являются членами этой группы.