Git с авторизацией ldap

Есть ли способ авторизации пользователя через ldap в репозитории git? Или сформулировано несколько иначе: есть ли способ отрицать, что люди тянут/толкают, если они не находятся в определенной группе ldap?

Изменить: Да, отличная идея с использованием PAM и/или крючка. У кого-нибудь есть опыт использования git в сочетании с pam_ldap?

Ответы

Ответ 1

Должен работать:

  • Доступ к git repos через SSH с использованием стандартных входов (ничего необычного здесь).

  • Сделайте ваши репозитории git доступными для определенной группы, к которым принадлежат определенные логины.

  • Используйте pam-ldap, чтобы ваша стандартная система входа в систему работала с LDAP.

Если есть более конкретный способ, JUST проверяет ldap, не затрагивая остальную часть вашей системы? Я не знаю, но, возможно, это возможно с помощью крючка с предварительной фиксацией или что-то в этом роде.

Ответ 2

Вы можете использовать update или pre-receive hook сделать дополнительный контроль доступа; см. update-paranoid (в Perl) из contrib/hooks/ для примера (он не использует LDAP, но вы всегда можете изменить его на используйте его, используя DBI через DBD::LDAP, чтобы сохранить конфигурацию разрешений, или Authen::Simple::LDAP).

Возможно, возможно улучшить такие инструменты, как gitosis (в Python) или gitolite, которые используются для доступа к репозиториям git через SSH, не требуя установки (возможно, ограниченной) отдельной учетной записи оболочки для каждого пользователя, для использования LDAP для аутентификации.

Ответ 4

Возможно, вам захочется заглянуть в Gitorious с помощью плагина Craig Andrews LDAP.

Gitorious - это хорошо зарекомендовавшее себя решение с открытым исходным кодом для корпоративных сред, обеспечивающее доступ к хранилищам в Интернете и SSH.

Добавления Craig к базе кода делают LDAP источником авторизации и аутентификации.

https://gitorious.org

https://gitorious.org/gitorious/mainline/merge_requests/138 < - merge в поддержке LDAP

Надеюсь, что код скоро будет объединен с главной линией Gitorious, поэтому мы не будем сами ее исправлять.