Używanie LDAP jako metody uwierzytelniania dla repozytoriów git

15

Chcę przekonać mojego szefa, że ​​powinniśmy używać git do kontroli wersji. Mówi, że absolutnie musi uwierzytelniać użytkowników za pośrednictwem naszego centralnego serwera LDAP.

Spojrzałem na różne rozwiązania (gitweb, gitarzysta ...) i nie mogłem znaleźć ostatecznej odpowiedzi na pytanie, czy obsługują one uwierzytelnianie LDAP.

Jedynym rozwiązaniem, o którym mogłem znaleźć trochę informacji, było ustawienie Apache + mod_ldap. Ale to by oznaczało, że użytkownik uwierzytelniający się na LDAP niekoniecznie musi być taki sam jak rzeczywisty użytkownik git, prawda? (Nie chodzi o to, że to ogromny problem, ale po prostu coś, co by mnie zepsuło).

Jaki jest zatem najlepszy sposób uwierzytelnienia użytkowników git za pomocą LDAP?

Leonard Ehrenfried
źródło
1
Dodałem więcej informacji na temat uwierzytelniania http.
recbot

Odpowiedzi:

8

Podczas gdy klucze są używane w większości publicznych usług git, prawdziwe uwierzytelnianie odbywa się za pośrednictwem ssh. SSH jest więcej niż zdolny do uwierzytelnienia się przeciwko LDAP. Jeśli chodzi o git, po uzyskaniu dostępu do plików możesz udać się do miasta.

AKTUALIZACJA

Git obsługuje teraz (od tego roku, kto wiedział?) Inteligentny mechanizm wypychania http. Starym sposobem było użycie serwera webdav, ale zarówno pobieranie, jak i wypychanie były bardzo powolne i nieefektywne. Teraz możesz uzyskać prawie takie same prędkości przez http jak ssh: // lub git: //. Oznacza to, że możesz użyć apache lub nginx i użyć dowolnego schematu uwierzytelniania HTTP, jaki chcesz. (Ldap, baza danych itp.)

Więcej informacji od pro git i github .

Rebbot
źródło
1
Jeśli SSH jest skonfigurowany do używania PAM do uwierzytelniania, możesz bez problemu uwierzytelniać się na serwerze LDAP. Godnym uwagi wyjątkiem jest Gitosis, który wykonuje magiczne polecenia za pomocą klawiszy.
voretaq7
Niestety, ssh nie jest zdolny bez nierozłożonych łat pobierania kluczy publicznych z LDAP. Wykonuje uwierzytelnianie hasła przez LDAP przy użyciu pam-ldap, ale nie może bezpośrednio zapytać LDAP o klucze publiczne. Bardzo frustrujące.
Craig Ringer,
Możesz to napisać, codzienne ładowanie kluczy od ldap do systemu plików w połączeniu ze sposobem, aby go uruchomić, jednak aktualizacja kluczy może załatwić sprawę.
Rebbot
2

Możesz szukać / rozwijać uwierzytelnianie zaplecza git za pomocą skryptów git hooków otrzymanych wcześniej. Nie muszą być koniecznie skryptami powłoki.

Na przykład, jeśli spojrzysz na haczykowaty haczyk przed otrzymaniem , zobaczysz sposób na uwierzytelnienie faceta, który próbuje wcisnąć się w zdalne repozytorium w tej sytuacji za pomocą skryptu Ruby. Jeśli chcesz i spędzasz na nim trochę czasu, możesz zrobić to samo, używając swojego ulubionego języka i jego biblioteki ldap :-)

Herberth Amaral
źródło