在 Windows 上使用 Active Directory 身份验证的 SvnServe

在 Windows 上使用 Active Directory 身份验证的 SvnServe

目前,我公司正在使用网络共享与 SVN 存储库通信。它真的很慢,所以我想切换到 SVNSERVE。

我的公司选择文件系统路线的主要原因是它可以轻松地使用我们现有的活动目录身份验证系统来确保安全。

据我所知,只要您使用Sasl 库。我只是想知道是否有其他人正在这样做,并且可以就配置提供一些指示,因为它似乎没有在任何地方记录。

谢谢

編輯

我们在一台快速服务器上有 svn,但不幸的是它被用于其他公司文件共享和服务。

有人告诉我,HTTP 协议不会比使用 SMB 的 file:// 更快。有人有这方面的文档吗?我认为真正的客户端服务器模型会表现更好。我们有大约 13 名开发人员和一个构建服务器,整天都在从它提交和更新。

答案1

选择最简单的方式,只需安装 Visual SVN 服务器即可。

http://www.visualsvn.com/server/

将其安装在已加入 Active Directory 的服务器上。现在,您已通过 http(s) 和 AD 身份验证拥有 SVN。使用它附带的方便的 MMC 工具管理权限。从 0 到部署大约需要 15 分钟。

答案2

请注意,不建议对 SVN 存储库使用 file:// 访问,它更适合管理工具。文件访问的问题在于,中间没有服务器来确保所有写入都正确写入。因此,请尽快停止使用它。

Svnserve(或 Apache)要好得多,但您会遇到相同的性能问题 - 它不会变得更好,因为您的网络使用 http 或 svn 协议而不是 smb。如果您今天的访问速度很慢,除非您对网络或文件系统(或其他导致速度变慢的因素)采取措施,否则它仍然会很慢。

然而,迁移到 Apache 或 Svnserve 本身就是值得的。

svnserve 和 sasl 库存在问题,正如最近在 svn 邮件列表中提到的那样。问题是 svn 协议不允许纯文本,但 saslauthd 只允许纯文本身份验证。最终结果 -它根本不起作用, 并且是已知问题

不过,这也不是全都是坏事,如果您在 Windows 上运行,只需安装 VisualSVN Server。它是顶级软件包,为您提供 Apache 安装,作为 Windows 服务运行,具有完整的管理单元管理和活动目录身份验证,只需在安装过程中单击单选按钮即可。您甚至可以将 acl 放在存储库中的目录或文件上。

如果没有,我仍然推荐使用 Apache,因为它的配置有更好的文档记录,并且它确实支持 LDAP 身份验证(可与 AD 配合使用)。有很多博客文章描述了如何做到这一点。

使用 http 而不是 svn 的性能会更慢,但我怀疑除非您同时安装两者并签出/提交大型目录,否则您不会注意到这一点。试试看 - 您可以同时使用 Svnserve 为 Apache 服务的存储库提供服务。(不过我会在付诸实践之前验证这一说法)。

答案3

抱歉,没有带 Windows 身份验证的 Svnserve。不过,我使用带 SASL 的 Svnserve 并手动管理帐户,因为这里实际使用 SVN 的程序员数量非常少。

事实上,你愿意冒着 Windows 文件共享的风险来做 SVN,这表明你一定处于绝境,所以我建议你使用 SSL 而不是 Apache,因为获取 Windows 身份验证。它使用 SSL 而不是 SVN,但已经足够接近了。如下所示:

  1. 关闭文件共享。
  2. 安装 CollabNet Subversion Server(免费)。这包括 Apache,从现在起您将通过它访问 SVN。
  3. 在 Apache 中安装并在CollabNet Subversion 服务器附带的mod_auth_sspi中进行设置。httpd.conf

我同时运行 HTTPS 和 SVN,但个人更喜欢手动管理 SASL 帐户,这样我就可以获得 SVN 协议的额外速度,它比 HTTPS 快一点。

答案4

这并不完全一样,但我在 Linux 服务器上有一个 svn repo。该服务器未运行 svnserve,但允许用户通过 ssh 使用 svn。由于 Linux 服务器是 AD 成员服务器,并且用户也来自 AD,因此这是一个非常简单且安全的解决方案。

相关内容