O use-sasl = true
força a autenticação (diz ao SVN para proibir o acesso anônimo).
Você pode criar um usuário com privilégios somente leitura e usá-lo para acesso anônimo ou usar http para acesso somente leitura e sasl para leitura / gravação.
Eu configurei o svnserve com autenticação e criptografia SASL para criptografar o tráfego. Acesso anônimo deve ser permitido. Meu arquivo de configuração conf/svnserve.conf
(com comentários retirados) se parece com isto:
[general]
anon-access = read
auth-access = write
realm = realm-of-repo
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
O arquivo de configuração sasl relacionado:
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /path/to/sasldb
mech_list: DIGEST-MD5
Ao fornecer um nome de usuário e senha, tudo funciona conforme o esperado: posso fazer o checkout e fazer alterações. No entanto, o acesso anônimo (sem nome de usuário ou senha) falha com a próxima mensagem de erro:
svn: SASL(-1): generic failure: All-whitespace username.
Como habilito o acesso de leitura anônimo ao SVN usando svnserve
e SASL? Não estou procurando uma solução com o Apache.
O use-sasl = true
força a autenticação (diz ao SVN para proibir o acesso anônimo).
Você pode criar um usuário com privilégios somente leitura e usá-lo para acesso anônimo ou usar http para acesso somente leitura e sasl para leitura / gravação.
Eu estava procurando essas informações recentemente e pensei em compartilhar o que encontrei. É possível permitir acesso anônimo ao usar o SASL para autenticação, mas você deve estar ciente de que qualquer acesso anônimo não será não criptografado ou protegido por integridade.
Você já tem anon-access = read
em svnserve.conf
, conforme necessário.
Em seguida, você terá que definir min-encryption = 0
, pois o mecanismo de acesso anônimo não oferece suporte à proteção de criptografia nem de integridade. Ignorar essa etapa tornaria o acesso anônimo indisponível quando os mecanismos de autenticação são negociados.
A última etapa é definir seus mecanismos de autenticação SASL, em svn.conf
(seu arquivo de configuração SASL para o Subversion). Mude a linha:
mech_list: DIGEST-MD5
para
mech_list: DIGEST-MD5 ANONYMOUS
que disponibilizará o mecanismo anônimo. Reinicie svnserve
e você poderá executar um check-out sem nenhum prompt de autenticação. Se você estiver usando o controle de acesso por diretório, convém confirmar que o usuário $anonymous
recebeu o acesso apropriado.
Existem algumas coisas a serem consideradas. Como mencionado, todo o acesso feito anonimamente será em texto não criptografado, o que você pode não querer se estiver lidando com código confidencial em uma rede pública. Além disso, todos os usuários realizarão acessos de leitura (check-out, etc.) por meio de acesso anônimo, para que seus registros não sejam tão úteis para o rastreamento. Além disso, se você permitir gravações anônimas, todos os códigos provavelmente serão confirmados anonimamente, ou seja, você não saberá quais alterações foram cometidas por quem.
Como mencionado nos comentários, uma opção é criar um usuário real chamado anônimo, com uma senha simples (ele falhará sem uma senha) e usar o controle de acesso por diretório para garantir que somente o acesso de leitura seja concedido e apenas para os diretórios que você escolher. Isso permite manter a verificação de criptografia / integridade e, ao mesmo tempo, oferecer acesso quase tão conveniente quanto o acesso anônimo verdadeiro.