Configurando o servidor SVN para vários usuários via http

Configurando o servidor SVN para vários usuários via http

O recurso de anotação do SVN é bastante poderoso e facilita o trabalho de quem rastrear para um recurso específico em uma linha de código específica. Este recurso se torna um pouco mais limitado (mas ainda útil) se os usuários acessarem o SVN via http. Não há credenciais trocadas dessa forma, portanto a anotação não mostra nenhum nome para uma linha modificada por um desenvolvedor que usa http para confirmar uma alteração.

A questão é: existe uma maneira de um desenvolvedor passar algum tipo de credenciais para o SVN no servidor para identificar exclusivamente seu commit? É apenas a presença de um ID que é necessária neste ambiente. Métodos alternativos como svn+ssh e protocolos de arquivo não estão disponíveis. Finalmente, este servidor está em uma LAN interna, não pública. Dicas para https também são bem-vindas.

O servidor SVN está rodando em Linux com Apache2.

Responder1

na configuração do apache:

<Location /svn>
    DAV svn
    SVNPath /mnt/big/svn
    AuthType Basic
    AuthName "SVN Server"
    AuthUserFile /etc/apache2/svn.pass
    Require valid-user
    AuthzSVNAccessFile /etc/apache2/svn_authz

e /etc/apache2/svn_authz pode conter gerenciamento detalhado de quem pode acessar o quê:

[groups]
ops=user1,user2
it=user2,user3

[/]
* = rw

[/ops]
* =
@ops=rw

[/ro]
* = 
@ops = r
@it = r
user4 = rw

se você tiver um servidor ldap/active directory em mãos, poderá usá-lo em vez de AuthUserFile para autenticação do Apache.

Responder2

Como você está executando o SVN por meio do Apache, você pode aproveitar as vantagens dos métodos de autenticação integrados do Apache para controlar o acesso/rastrear alterações em seu repositório. O exemplo abaixo funcionará com uma configuração estilo htaccess:

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user

Você pode configurar isso em um arquivo htaccess ou no arquivo de configuração do VirtualHost.

Responder3

Resposta curta:mod_authz_svn

Você pode saber um pouco sobre apache + svn + mod_autz_svn e algo mais nos meus slides apresentados na International PHP Conference '09 disponíveis emhttp://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf

Responder4

Esta resposta pressupõe que seus desenvolvedores usem o Windows e você tenha um controlador de domínio do Active Directory.

Você pode ingressar o servidor Linux svn no domínio seguindo esteartigo.

A partir daí, você configura o Apache para autenticar no AD usando Kerberos. Primeira instalaçãomod_auth_kerbe conecte o Apache2 ao Kerberos para autenticação. Veja o da Microsoftdocumentação. Certifique-se de implementar SSL se estiver preocupado com a segurança entre o cliente e o servidor.

Depois de terminar, os usuários poderão fazer login com suas senhas do Windows e as atividades serão atribuídas ao usuário.

Infelizmente, não posso fornecer detalhes específicos de configuração agora, pois estou fora do escritório e não tenho acesso ao nosso servidor SVN.

informação relacionada