Я хочу убедить своего босса, что мы должны использовать git для контроля версий. Он говорит, что он обязательно должен аутентифицировать пользователей через наш центральный сервер LDAP.
Я просмотрел различные решения (gitweb, gitorious ...) и не смог найти окончательного ответа о том, поддерживают ли они аутентификацию LDAP.
Единственное решение, о котором я смог найти немного информации, - это настройка Apache + mod_ldap. Но это будет означать, что пользователь, аутентифицирующийся по LDAP, не обязательно будет таким же, как фактический пользователь git, верно? (Не то чтобы это огромная проблема, но просто то, что меня подслушает.)
Итак, как лучше всего аутентифицировать пользователей git через LDAP?
Хотя ключи используются для большинства общедоступных сервисов git, настоящая аутентификация происходит через ssh. SSH более чем способен аутентифицироваться по ldap. Что касается git, когда у вас есть доступ к файлам, вы можете отправиться в город.
ОБНОВИТЬ
Git теперь поддерживает (с этого года, кто знал?) Интеллектуальный механизм отправки http. Старый способ заключался в использовании сервера webdav, но получение и отправка были очень медленными и неэффективными. Теперь вы можете получить почти такую же скорость по http, что и ssh: // или git: //. Это означает, что вы можете использовать apache или nginx и использовать любую схему HTTP-аутентификации, какую захотите. (Ldap, база данных и т. Д.)
Больше информации от pro git и github.
Вы можете искать / разрабатывать бэкэнд-аутентификацию git, используя скрипты git hooks до получения. Они не обязательно должны быть сценарием оболочки.
Например, если вы посмотрите на gitorious крючок для предварительного приема, вы увидите способ аутентификации парня, который пытается войти в удаленное репо в этой ситуации, используя Ruby Script. Если вы хотите и потратите на это немного своего времени, вы можете сделать то же самое, используя свой любимый язык и его библиотеку ldap :-)