Получить все группы, членом которых является пользователь в LDAP
Я использую ApacheDS в качестве сервера каталогов, который используется в таких приложениях, как Gogs (Git-сервер, такой как GitLab). Моя идея состоит в том, чтобы создавать такие группы, как gogs-users
и ограничьте вход в систему этой группой, чтобы только пользователи, которые являются членами этой группы, могли войти. Я создал groupOfNames
для этого и testuser, который добавляется в группу gogs.
Тип gogs-users
является groupOfNames
и у него есть атрибут member
который содержит DN моего пользователя (uid=testuser,ou=Users,DC=example,DC=com). Так что я могу видеть, кто является членом этой группы.
Но я хотел бы видеть все группы, в которых участвует пользователь. Когда я открываю testuser, я не вижу атрибута, который мог бы сказать мне, что он является членом gogs-users
, Я помню, что проприетарная Active Directory имела атрибут под названием memberOf
что было в запросе в фильтре, как (&(objectClass=inetOrgPerson)(memberOf=CN=gogs-user,DC=example,DC=com))
, Это было бы именно то, что мне нужно.
Как я могу получить это в бесплатной реализации LDAP? Я не вижу иного способа, кроме определения пользовательского атрибута - который я должен был поддерживать на каждую руку. Это не хорошо, я хотел бы иметь автоматизированное решение, которое заботится об этих атрибутах.
Вещи, которые я уже пробовал
- /questions/11056959/dobavte-atribut-memberof-v-apacheds/11056977#11056977 Без изменений
- https://morenews.blogspot.de/2010/12/adding-active-directory-properties-to.html без изменений
Примечание: я сделал полный сброс после каждого импорта схемы, чтобы убедиться, что на мои тесты не влияют предыдущие изменения.
1 ответ
Вот Запросы, которые пойдут в любом случае, но работают ТОЛЬКО для Microsoft Active Directory:
Разрешает всех участников (включая вложенные) группы безопасности (требуется как минимум Windows 2003 SP2):
(memberOf:1.2.840.113556.1.4.1941:=CN=gogs-user,DC=example,DC=com)
И все группы, в которые входит пользователь, включая вложенные группы
(member:1.2.840.113556.1.4.1941:=CN=UserName,CN=Users,DC=YOURDOMAIN,DC=NET))