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

5

O recurso de anotações do SVN é bastante poderoso e faz com que o trabalho rápido de rastrear um determinado recurso em uma determinada linha de código seja rápido. Esse recurso é 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 credenciais de algum tipo para o SVN no servidor para identificar exclusivamente seu commit? É apenas a presença de um ID que é necessário neste ambiente. Métodos alternativos, como svn + ssh e protocolos de arquivos, 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á sendo executado no Linux com o Apache2.

    
por casualcoder 16.07.2009 / 04:34

4 respostas

6

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 podem conter um gerenciamento detalhado de quem pode acessar o que:

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

[/]
* = rw

[/ops]
* =
@ops=rw

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

se você tiver o servidor de diretório ldap / active disponível, poderá usá-lo em vez do AuthUserFile para autenticação do apache.

    
por 16.07.2009 / 12:23
7

Como você está executando o SVN através do Apache, é possível aproveitar os métodos de autenticação integrados do Apache para controlar as alterações de acesso / controle ao seu repositório. O exemplo abaixo funcionará com uma configuração no estilo de 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.

    
por 16.07.2009 / 05:06
1

Resposta curta: mod_authz_svn

Você pode ter um pouco sobre o apache + svn + mod_autz_svn e algo mais em meus slides apresentados à Conferência Internacional do PHP '09 disponível em link

    
por 16.07.2009 / 11:57
1

Esta resposta assume que seus desenvolvedores usam o Windows e você tem um controlador de domínio do Active Directory.

Você pode entrar no servidor svn do Linux no domínio seguindo este artigo .

De lá, você configura o apache para autenticar no AD usando o Kerberos. Primeiro, instale o mod_auth_kerb e, em seguida, conecte o apache2 ao kerberos para autenticação. Consulte a documentação da Microsoft . Certifique-se de implementar o SSL se estiver preocupado com a segurança entre o cliente e o servidor.

Depois que você terminar, o usuário poderá fazer login com as senhas do Windows e as atividades serão atribuídas ao usuário.

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

    
por 24.07.2009 / 21:37