FakeBasicAuth e AuthzSVNAccessFile: como se referir a usuários?

3

Ao usar o Apache2 com certificados de cliente e o FakeBasicAuth, como me refiro a usuários no AuthzSVNAccessFile ? Os nomes de usuário possuem caracteres engraçados, como /CN=Damon Wischik , e o authz não gosta do caractere = em nomes de usuários.

Minha configuração do Apache tem as linhas

    SSLVerifyClient require
    SSLOptions +FakeBasicAuth

Isso significa que o usuário fornece um certificado de cliente, o Apache pega o assunto do certificado, por exemplo. /CN=Damon Wischik e usa isso como nome de usuário e "senha" como senha. Eu adicionei uma entrada de htpasswd para este usuário, e ele pode logar felizmente.

Agora, desejo adicionar um controle de acesso refinado ao repositório e não posso descobrir como me referir a esse nome de usuário no AuthzSVNAccessFile . Eu comecei com

[/]
* = r

e o usuário pôde ler o conteúdo do repositório. Eu tentei escrever

[/]
* =
"/CN=Damon Wischik" = r

e o usuário recebe "Acesso proibido", e o log de erros do Apache diz

[date] [error] [client ip] Failed to load the AuthzSVNAccessFile: The character 'D' in rule '"/CN' is not allowed in authz rules
[date] [error] [client ip] Access denied: '/CN=Damon Wischik' GET foo:/

Qual é a maneira correta de escapar desses personagens engraçados em nomes de usuários, no arquivo authz?

    
por DamonJW 08.10.2012 / 08:28

1 resposta

1

(Obrigado a Stefan Sperling na lista de discussão de usuários do subversion pela resposta.) RTFM! Do livro de feijão vermelho capítulo 6 ,

Subversion 1.5 brought several useful features to the access file syntax—username aliases, authentication class tokens, and a new rule exclusion mechanism—all of which further simplify the maintenance of the access file.

Veja como usar aliases neste caso específico.

[aliases]
djw = /CN=Damon Wischik

[/]
* = 
&djw = r
    
por 08.10.2012 / 20:17