Subversion (SVN) com autenticação pelo LDAP

Esse tutorial explica como autenticar usuários no Subversion através do LDAP (usando o AD) e ainda a instalação de uma interface amigável iF.SVNAdmin para configurar permissões no Subversion.

[ Hits: 19.356 ]

Por: Joao Vitorino em 04/03/2015


Configurando o Apache para acesso aos repositórios via browser



O protocolo usado para acesso aos repositórios do Subversion remotamente é o HTTP, por isso é necessário criar uma configuração no Apache para permitir o acesso.

Crie um arquivo .conf em /etc/httpd/conf.d com o seguinte conteúdo (ou /etc/apache2/conf.d em distribuições Debian ou /etc/apache2/conf-enabled no Ubuntu):

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<IfModule mod_dav_svn.c>

Alias /repositorio01 "/opt/repositorio/"

<Location /_SVN_WEB>

DAV svn
SVNPath "/opt/repositorio/_SVN_WEB"
SVNListParentPath on
AuthzSVNAccessFile "/opt/repositorio/authz"
AuthBasicProvider ldap
AuthType Basic
AuthzLDAPAuthoritative off
AuthName "Usar login e Senha de rede"
AuthLDAPURL "ldap://controladorDominio.contoso.gov.br/OU=!RJ,DC=contoso,DC=com,DC=br?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "usuarioldap@contoso.com.br"
AuthLDAPBindPassword "senha do usuário LDAP"
require valid-user
Satisfy Any
Options MultiViews Indexes
order deny,allow
deny from all

</Location>

</IfModule>

Onde:
  • LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so


    Carregam os módulos necessários.

  • DAV svn - diz que o conteúdo da pasta /opt/repositorio/_SVN_WEB não será listado e sim interpretado como se fosse um client do Subversion acessado o servidor Subversion.
  • AuthBasicProvider ldap - diz ao Apache que o modo de autenticação é o LDAP.
  • AuthName "Usar login e Senha de rede" - mensagem que o navegador/cliente Subversion irá apresentar quando acessar a URL.
  • AuthLDAPURL "ldap://controladorDominio.contoso.gov.br/DC=contoso,DC=com,DC=br?sAMAccountName?sub?(objectClass=*)" - Hostname, ou e filtro de busca do seu servidor LDAP (colocar o mesmo configurado no iF.SVNAdmin se quiser).
  • AuthLDAPBindDN "usuarioldap@contoso.com.br" - usuário com permissão de pesquisa no LDAP.
  • AuthLDAPBindPassword "senha do usuário LDAP" - senha do usuário.

Obs.: o alias definido NÃO pode ter o mesmo nome do Location. Por exemplo:

Alias /ABC "/opt/repositorio/"
<Location /ABC>

Se fizer isso um erro de looping acontecerá no Subversion (também acho esquisito).

Salve, reinicie o Apache 2, teste a URL http://ip_servidor_svn/_SVN_WEB (deverá pedir login e senha de rede e o usuário tem que ter permissão configurada no iF.SVNAdmin) e acabou.

Deu trabalho, eu sei, mas muito melhor do que configurar as permissões manualmente no modo original do Subversion (alterando um arquivo texto que fica gigante com o passar do tempo com uma linha de configuração para cada usuário/pasta).

Existem outros softwares que fazem o mesmo que o iF.SVNAdmin.
  • scmmanager - fácil de instalar, muitos plugins para integração com outros sistemas, fácil de configurar porém as opções de configuração de permissões não me atenderam.
  • indefero - difícil de instalar e interface fraca.
  • submin - fácil de instalar, simples e prático porém sem suporte a LDAP.
  • Usvn - pra ser sincero não lembro porque não gostei desse - acho que tinha alguma coisa a ver com banco de dados.
  • SubversionEdge - fácil de instalar - único pacote instala Apache + Subvesion + gerenciador, interface bonita e moderna, porém as permissões são configuradas editando um arquivo de texto - ou seja, não muda nada.

Sim, eu testei todos esses listados acima e escolhi o iF.SVNAdmin porque:

1. Eu tinha 3 coisas essenciais para serem atendidas:
  1. integração com LDAP
  2. fácil gerenciamento de muitos usuários no Subversion (cerca de 40 desenvolvedores internos e um não sei quantos externos)
  3. facilidade para alterar permissões no Subversion (isso atualmente é cerca de 30% do meu trabalho)

2. Precisei tirar uma dúvida e enviei um e-mail para o desenvolvedor do iF.SVNAdmin e... no dia seguinte tive uma resposta.

Espero que tenham gostado, o tutorial por si só acaba aqui, mas tem mais uma página de bônus (rsrs).

Página anterior     Próxima página

Páginas do artigo
   1. Softwares e pacotes necessários e instalação do iF.SVNAdmin
   2. Configurando o LDAP no iF.SVNAdmin
   3. Adicionado administradores e repositório
   4. Permissões
   5. Configurando o Apache para acesso aos repositórios via browser
   6. Bônus: Deixando as coisas mais apresentáveis
Outros artigos deste autor

Redmine no openSUSE - Gerenciamento de projetos e bugs (issue tracking)

Qualidade dos profissionais de TI

Leitura recomendada

Como se comunicar com outros usuários da rede

Slides em PDF com o LaTeX

Remastersys: Crie seu próprio Live-CD do Ubuntu Linux

Linux, a pirataria de software e a desvalorização do desenvolvedor (parte 2)

Jaulas com debootstrap e schroot

  
Comentários
[1] Comentário enviado por removido em 04/03/2015 - 21:59h

Bacana!
Parabéns João!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts