Я хочу сгруппировать пользователей в пользователей проекта в LDAP. Допустим, есть user1, user2, user3, каждый из которых имеет пароль и ssh-ключ. Я хочу сгруппировать их в project1, project2.
Учитывая, что user1 является членом группы project1, он должен иметь возможность аутентифицироваться с помощью имени пользователя project1 и пароля / ssh-ключа от user1.
Возможно ли это с помощью LDAP, и если да, не могли бы вы подсказать, как этого добиться?
Итак, вы можете использовать групповую стратегию для каждой службы. Однако сложно применять отдельные группы к проектам внутри каждой службы без настройки для каждого. Например, вы можете определить отдельные группы для каждой службы, SSH, Build Machine, SVN и т. Д. Например, если вы хотите, чтобы пользователи только в группе управления версиями имели доступ к SVN, вы должны указать следующий URL-адрес в соответствующий виртуальный хост Apache:
<AuthnProviderAlias ldap ldap-users>
AuthLDAPUrl "ldaps://myldapserver:636/DC=mydomain,DC=local?sAMAccountName?sub?(&(objectCategory=person)(memberOf=CN=source-control,CN=Users,DC=mydomain,DC=local))" "SSL"
Однако вам придется перейти к уровню обслуживания, используя их известное управление. Возьмем, к примеру, SVN:
[groups]
project1_team = dave, john, andy
[/]
* =
dave = rw
[/project1]
@project1_team = rw
[/project2]
andy = r
Насколько мне известно, не стандартными методами LDAP. В любом случае это было бы совершенно неэффективно, поскольку LDAP должен будет проверить пароль на любом члене группы 1, чтобы узнать, действителен ли он.
Теоретически это можно сделать, если вы напишете свою собственную систему аутентификации (например, новый плагин LDAP PAM с этой функциональностью), но это вызовет множество проблем, наиболее заметной из которых является случай одинаковых паролей между двумя пользователями: один вы аутентифицируете?
Есть какая-то конкретная причина, по которой вы захотите это сделать?
Вам нужна авторизация прокси SASL (Документы OpenLDAP). Это по сути su
для OpenLDAP.
Однако он не будет работать с ssh-ключами, поскольку SASL их не понимает.