Usando LDAP como método de autenticação para repositórios git

15

Quero convencer meu chefe de que deveríamos usar o git para controle de versão. Ele diz que é absolutamente necessário autenticar usuários através do nosso servidor LDAP central.

Eu olhei para as várias soluções (gitweb, gitorious ...) e não consegui realmente encontrar uma resposta definitiva sobre se elas suportam autenticação LDAP.

A única solução em que pude encontrar algumas informações foi uma configuração do Apache + mod_ldap. Mas isso significaria que o usuário autenticado no LDAP não seria necessariamente o mesmo que o usuário git real, certo? (Não que isso seja um problema enorme, mas apenas algo que me incomodaria.)

Então, qual é a melhor maneira de autenticar usuários git via LDAP?

Leonard Ehrenfried
fonte
1
Eu adicionei mais algumas informações sobre autenticação http.
usar o seguinte comando

Respostas:

8

Enquanto as chaves são usadas para a maioria dos serviços públicos de git, a autenticação real acontece via ssh. O SSH é mais do que capaz de se autenticar no LDAP. No que diz respeito ao git, depois de ter acesso aos arquivos, você pode ir à cidade.

ATUALIZAR

O Git agora suporta (a partir deste ano, quem sabia?) Um mecanismo inteligente de envio de http. A maneira antiga era usar um servidor webdav, mas a busca e o envio eram muito lentos e ineficientes. Agora você pode obter praticamente as mesmas velocidades em http como faria com ssh: // ou git: //. Isso significa que você pode usar apache ou nginx e usar qualquer esquema de autenticação http que desejar. (LDAP, banco de dados etc.)

Mais informações em pro git e github .

reconectar
fonte
1
Se o SSH estiver configurado para usar o PAM para autenticação, você poderá se autenticar no servidor LDAP sem problemas. A exceção notável é Gitosis, que faz alguns comandos forçados mágica com chaves.
precisa saber é o seguinte
Infelizmente, o ssh não é capaz sem patches ainda não mesclados de obter chaves públicas do LDAP. Ele fará autenticação de senha via LDAP usando pam-ldap, mas não pode consultar o LDAP diretamente para obter chaves públicas. Muito frustrante.
Craig Ringer
Você pode criar um script para isso, uma carga diária de chaves do ldap para o sistema de arquivos combinada com uma maneira de iniciá-lo; no entanto, você pode atualizar as chaves.
Re
2

Você pode procurar / desenvolver uma autenticação de back-end git usando scripts de pré-recebimento de ganchos do git. Eles não são necessariamente necessários para ser um script de shell.

Por exemplo, se você observar o gancho de pré-recebimento vitorioso , verá o caminho para autenticar o cara que está tentando entrar no repositório remoto nessa situação usando um Script Ruby. Se você deseja gastar um pouco do seu tempo, pode fazer o mesmo usando seu idioma favorito e sua biblioteca ldap :-)

Herberth Amaral
fonte