Verwendung von LDAP als Authentifizierungsmethode für Git-Repositorys

15

Ich möchte meinen Chef davon überzeugen, dass wir git für die Versionskontrolle verwenden sollten. Er sagt, dass es unbedingt Benutzer über unseren zentralen LDAP-Server authentifizieren muss.

Ich habe mir die verschiedenen Lösungen angesehen (gitweb, gitorious ...) und konnte keine endgültige Antwort darauf finden, ob sie die LDAP-Authentifizierung unterstützen.

Die einzige Lösung, die ich finden konnte, war eine Apache + mod_ldap-Einstellung. Aber das würde bedeuten, dass der Benutzer, der sich bei LDAP authentifiziert, nicht unbedingt mit dem tatsächlichen Git-Benutzer identisch ist, oder? (Nicht, dass dies ein riesiges Problem ist, sondern nur etwas, das mich nerven würde.)

Wie können Git-Benutzer am besten über LDAP authentifiziert werden?

Leonard Ehrenfried
quelle
1
Ich habe weitere Informationen zu http auth hinzugefügt.
Reconbot

Antworten:

8

Während für die meisten öffentlichen Git-Dienste Schlüssel verwendet werden, erfolgt die eigentliche Authentifizierung über ssh. SSH ist mehr als in der Lage, sich gegen ldap zu authentifizieren. Wenn Sie Zugriff auf die Dateien haben, können Sie in die Stadt gehen.

AKTUALISIEREN

Git unterstützt jetzt (seit diesem Jahr, wer wusste das schon?) Einen intelligenten http-Push-Mechanismus. Der alte Weg bestand darin, einen Webdav-Server zu verwenden, aber sowohl das Abrufen als auch das Pushen waren sehr langsam und ineffizient. Jetzt können Sie über http so ziemlich die gleichen Geschwindigkeiten erzielen wie mit ssh: // oder git: //. Dies bedeutet, dass Sie Apache oder Nginx verwenden und ein beliebiges http-Authentifizierungsschema verwenden können, das Sie möchten. (Ldap, Datenbank usw.)

Mehr Infos von ProGit und Github .

Reconbot
quelle
1
Wenn SSH für die Verwendung von PAM zur Authentifizierung konfiguriert ist, können Sie sich problemlos bei Ihrem LDAP-Server authentifizieren. Die bemerkenswerte Ausnahme ist Gitosis, das einige erzwungene Befehle mit Schlüsseln zaubert.
Voretaq7
Leider ist ssh nicht in der Lage, ohne noch nicht zusammengeführte Patches öffentliche Schlüssel von LDAP zu erhalten. Es führt eine Kennwortauthentifizierung über LDAP mit pam-ldap durch, kann jedoch LDAP nicht direkt abfragen, um öffentliche Schlüssel abzurufen. Sehr frustrierend.
Craig Ringer
Sie können dies skripten, eine tägliche Ladung von Schlüsseln von ldap in das Dateisystem, kombiniert mit einer Möglichkeit, es zu starten, wie auch immer Sie die Schlüssel aktualisieren, um den Trick zu machen.
Reconbot
2

Sie können eine Git-Backend-Authentifizierung mithilfe von Skripten für Git-Hooks vor dem Empfang suchen und entwickeln. Sie müssen nicht unbedingt ein Shell-Skript sein.

Wenn Sie zum Beispiel in den "Pre-Receive" -Hook schauen, werden Sie feststellen , wie Sie den Typen authentifizieren können, der in dieser Situation versucht, mit einem Ruby-Skript in das Remote-Repo zu gelangen. Wenn Sie möchten und ein bisschen Zeit damit verbringen möchten, können Sie dasselbe mit Ihrer Lieblingssprache und ihrer ldap-Bibliothek tun :-)

Herberth Amaral
quelle