Использование LDAP в качестве метода аутентификации для git-репозиториев

15

Я хочу убедить моего босса, что мы должны использовать git для контроля версий. Он говорит, что он обязательно должен аутентифицировать пользователей через наш центральный сервер LDAP.

Я посмотрел на различные решения (gitweb, gitorious ...) и не смог найти однозначного ответа о том, поддерживают ли они аутентификацию LDAP.

Единственное решение, о котором я мог найти небольшую информацию, - это настройка Apache + mod_ldap. Но это будет означать, что аутентификация пользователя в LDAP не обязательно будет такой же, как и у реального пользователя git, верно? (Не то, чтобы это была огромная проблема, но что-то, что могло бы меня подвести.)

Итак, каков наилучший способ аутентификации пользователей git через LDAP?

Леонард Эренфрид
источник
1
Я добавил еще немного информации на http auth.
перепроверять

Ответы:

8

В то время как ключи используются для большинства общедоступных git-сервисов, настоящая аутентификация происходит через ssh. SSH более чем способен аутентифицироваться против ldap. Что касается git, когда у вас есть доступ к файлам, вы можете отправиться в город.

ОБНОВИТЬ

Git теперь поддерживает (по состоянию на этот год, кто знал?) Умный механизм http-pushing. Старый способ заключался в использовании сервера webdav, но и извлечение, и отправка были очень медленными и неэффективными. Теперь вы можете получить почти такую ​​же скорость по протоколу http, как и по ssh: // или git: //. Это означает, что вы можете использовать apache или nginx и использовать любую схему http auth, какую пожелаете. (Ldap, база данных и т. Д.)

Больше информации от pro git и github .

reconbot
источник
1
Если SSH настроен на использование PAM для аутентификации, вы можете без проблем авторизоваться на вашем сервере LDAP. Заметным исключением является Gitosis, который выполняет магию принудительных команд с ключами.
voretaq7
Увы, ssh не может без исправлений получить открытые ключи из LDAP. Он будет выполнять аутентификацию пароля через LDAP с использованием pam-ldap, но не может напрямую запрашивать LDAP для получения открытых ключей. Очень расстраивает.
Крейг Рингер
Вы можете написать это, ежедневную загрузку ключей из ldap в файловую систему в сочетании с возможностью запустить его, как бы вы ни обновляли ключи.
Пересмотр
2

Вы можете искать / разрабатывать аутентификацию git backend, используя сценарии pre-receive git hooks. Они не обязательно должны быть сценарием оболочки.

Например, если вы посмотрите на « ловушку предварительного получения» , вы увидите способ аутентификации парня, который пытается протолкнуть удаленное репо в этой ситуации, используя Ruby Script. Если вы хотите потратить на это немного времени, вы можете сделать то же самое, используя свой любимый язык и его библиотеку ldap :-)

Герберт Амарал
источник