FakeBasicAuth 和 AuthzSVNAccessFile:如何引用用户?

FakeBasicAuth 和 AuthzSVNAccessFile:如何引用用户?

当使用带有客户端证书和 FakeBasicAuth 的 Apache2 时,我该如何在 中引用用户AuthzSVNAccessFile?用户名包含奇怪的字符,如/CN=Damon Wischik,并且 authz 不喜欢=用户名中的字符。

我的 Apache 配置有以下几行

    SSLVerifyClient require
    SSLOptions +FakeBasicAuth

这意味着用户提供了客户端证书,Apache 从证书中获取主题行(例如)/CN=Damon Wischik,并将其用作用户名,将“password”用作密码。我htpasswd为这个用户添加了一个条目,他可以愉快地登录。

现在我想为存储库添加细粒度的访问控制,但我不知道如何在 中引用此用户名AuthzSVNAccessFile。我开始使用

[/]
* = r

并且用户能够读取存储库的内容。我尝试写入

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

用户收到“禁止访问”提示,Apache 错误日志显示

[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:/

在 authz 文件中,转义用户名中这些奇怪字符的正确方法是什么?

答案1

(感谢 subversion-users 邮件列表上的 Stefan Sperling 提供的答案。)RTFM!来自红豆书第六章

Subversion 1.5 为访问文件语法带来了几个有用的功能 - 用户名别名、身份验证类令牌和新的规则排除机制 - 所有这些功能进一步简化了访问文件的维护。

以下是在这种特殊情况下使用别名的方法。

[aliases]
djw = /CN=Damon Wischik

[/]
* = 
&djw = r

相关内容