0

我正在尝试在 Mac OS 10.6.8 服务器上实现基于路径的 SVN 访问。如果我使用 htpasswd 跟踪帐户,一切正常。但我想与 Open Directory 集成,以便团队成员可以轻松更改密码。但是,mod_auth_apple 似乎并没有将自己暴露为提供的 authn,因此 authz_svn 不会拾取它可以将其用于身份验证(我在 apache 日志中收到错误消息,显示“未配置 Authn 提供程序。”)。

我知道 Open Directory 可以通过 ldap 获得,但 mod_authn_ldap 没有随 Mac OS X 服务器上安装的 Apache 版本一起提供。我假设如果 authz_svn 包含在股票分配中,有一些方法可以让它工作(但我可能给苹果太多的信任)。有没有人无需使用自定义构建的 Apache 就能完成这项工作?

4

1 回答 1

0

经过几天的闲逛,发现了如何做到这一点。我添加了 authn_file 模块,然后还添加了 AuthBasicAuthoritative 关闭。这似乎仍然强制使用 mod_auth_apple 进行身份验证,但在未指定 AuthUserFile 时不会失败。它还将身份验证信息传递给 authz_svn,以便它可以正确检查访问控制。我希望更熟悉 apache 的人能够正确解释为什么会这样。

所以我的位置指令现在看起来像

<Location "/">
    Options All -Includes -ExecCGI -Indexes +MultiViews
    <IfModule mod_dav.c>
        DAV svn
        SVNPath /Users/path/to/repo
    </IfModule>
    AllowOverride None
    AuthName "Svn Repo"
    AuthType Basic
    AuthzSVNAccessFile /Users/path/to/access/file.txt
    AuthBasicAuthoritative Off
    Require valid-user
</Location>

烦人的是,我必须将 AuthBasicAuthoritative Off 添加到我的服务器托管的任何其他站点。

于 2013-02-28T20:47:23.227 回答