Utilisation de LDAP comme méthode d'authentification pour les référentiels Git

15

Je veux convaincre mon patron que nous devrions utiliser git pour le contrôle de version. Il dit qu'il doit absolument authentifier les utilisateurs via notre serveur LDAP central.

J'ai regardé les différentes solutions (gitweb, gitorious ...) et je n'ai pas vraiment trouvé de réponse définitive sur la prise en charge de l'authentification LDAP.

La seule solution sur laquelle j'ai pu trouver des informations était un paramètre Apache + mod_ldap. Mais cela signifierait que l'utilisateur s'authentifiant sur LDAP ne serait pas nécessairement le même que l'utilisateur git réel, non? (Non pas que ce soit un énorme problème, mais juste quelque chose qui me dérangerait.)

Alors, quelle est la meilleure façon d'authentifier les utilisateurs de git via LDAP?

Leonard Ehrenfried
la source
1
J'ai ajouté plus d'informations sur http auth.
reconbot

Réponses:

8

Alors que les clés sont utilisées pour la plupart des services publics git, la véritable authentification se fait via ssh. SSH est alors plus capable de s'authentifier contre LDAP. En ce qui concerne git, une fois que vous avez accès aux fichiers, vous pouvez vous rendre en ville.

MISE À JOUR

Git prend désormais en charge (à partir de cette année, qui savait?) Un mécanisme de poussée http intelligent. L'ancienne méthode consistait à utiliser un serveur webdav, mais l'extraction et la poussée étaient très lentes et inefficaces. Vous pouvez maintenant obtenir à peu près les mêmes vitesses sur http que vous le feriez avec ssh: // ou git: //. Cela signifie que vous pouvez utiliser apache ou nginx et utiliser n'importe quel schéma d'authentification http que vous souhaitez. (Ldap, base de données, etc.)

Plus d'infos sur pro git et github .

reconbot
la source
1
Si SSH est configuré pour utiliser PAM pour l'authentification, vous pouvez vous authentifier sur votre serveur LDAP sans problème. L'exception notable est Gitosis, qui fait de la magie à commandes forcées avec des clés.
voretaq7
Hélas, ssh n'est pas capable sans correctifs encore non fusionnés d'obtenir des clés publiques de LDAP. Il fera l'authentification par mot de passe via LDAP en utilisant pam-ldap, mais il ne peut pas interroger LDAP directement pour obtenir des clés publiques. Très frustrant.
Craig Ringer
Vous pouvez créer un script, une charge quotidienne de clés de ldap vers le système de fichiers combinée à un moyen de le lancer, quelle que soit la mise à jour des clés, pourrait faire l'affaire.
reconbot
2

Vous pouvez rechercher / développer une authentification backend git à l'aide de scripts de hook git pré-réception. Ils ne sont pas nécessairement nécessaires pour être un script shell.

Par exemple, si vous examinez le crochet de pré-réception de gitorious , vous verrez son moyen d'authentifier le gars qui essaie de pousser dans le référentiel distant dans cette situation en utilisant un Ruby Script. Si vous le souhaitez et passez un peu de votre temps dessus, vous pouvez faire de même en utilisant votre langue préférée et sa bibliothèque ldap :-)

Herberth Amaral
la source