0

我已经通过使用 Apache HTTP、mod_authnz_ldap 来保护每个 SVN 存储库,如下所示: -

<Location /svn/myProject/>
    ...
    Require ldap-group some-group
</Location>

无论如何,我想保护 myProject 下的一些子目录,例如

<Location /svn/myProject/document>
    ...
    Require ldap-group sa-group
</Location>

<Location /svn/myProject/code>
    ...
    Require ldap-group dev-group
</Location>

请注意,所有团队成员都允许使用项目根目录和其他子目录。

<Location /svn/myProject/>
    ...
    Require ldap-group sa-group
    Require ldap-group dev-group
    Require ldap-group team-member-group
</Location>

关于上述配置,我无法保护 team-member-group 访问代码和文档。我不确定我是否做错了什么,希望您的帮助能给我一些启发。非常感谢您提前提供的帮助。我期待着尽快收到您的来信。

问候,

4

2 回答 2

1

通常我们不会这样“保护”。

在使用 HTTP 时,我们一般使用 mod_svn_authz,并配置授权文件。但是,根据您之前的解决方案,缺点是默认情况下我们不使用 ldap 组。(我相信应该有一些方法可以利用 ldap 组来维护 authz 文件)

使用 svn authz 文件,它是直截了当的,类似于:

[/]
*=
@sa-group=rw
@dev-group=rw
@team-member-group=rw

[/doc]
*=
@sa-group=rw

[/code]
*=
@dev-group=rw
于 2013-02-06T07:13:29.803 回答
1

恐怕你在路上会遇到比现在更多的麻烦

我从未尝试过、听说过并且无法预测SVN-WebDAV 位置<location> 以下的重载结果(通常它们是从根定义提供的)

为了澄清(对我来说)

  • 是 myProject:单个存储库,存储库树的父目录(您如何在 Aapache 中定义 SVN 位置:使用 SVNPath 为每个存储库单独的位置或使用 SVNParenPath 的公共基础)?
  • 您能否接受并使用“混合”解决方案和手工工作 - mod_authz_svn 为从 LDAP 组准备的组提供基​​于路径的授权?

也许,由于特定于 SVN 的限制,您将无法将 mod_authnz_ldap 用于授权阶段,只能用于身份验证阶段 - 基于路径的授权的所有(我知道的)来源都建议仅使用 mod_authz_svn

也许“mod_authz_svn 和 AD 组同步”(快速谷歌搜索的结果)博客文章对你有用

于 2013-02-06T07:23:48.490 回答