我有一台运行在 Windows Server 2003 计算机上的 SVN 1.6 服务器,通过 CollabNet 的svnserve
服务运行(使用协议svn
)。我想避免在服务器上以纯文本形式存储密码。不幸的是,默认配置和带有 DIGEST-MD5 的 SASL 都需要纯文本密码存储。
避免以纯文本形式存储密码的最简单的方法是什么?
我的限制是:
- 需要能够实现对 SVN 存储库的基于路径的访问控制(目前我可以使用文件
authz
)。据我所知,这或多或少与身份验证方法无关。 - 活动目录可用,但不仅仅是域连接的 Windows 机器需要进行身份验证:工作组 PC、Linux PC 和使用 PySVN 执行 SVN 操作的软件都需要能够访问存储库。
升级 SVN 服务器是可行的,安装附加软件也是可行的。
答案1
我们用Collabnet 的免费 SVN 产品安装在旧的 Windows 2003 服务器上,使用 LDAP 和 HTTPS。我们从未遇到过域和非域计算机的任何问题。身份验证正常工作;但我也曾在 Linux 机器上通过 Apache 访问 SVN 时这样做过。
常规 HTTP 访问:
Apache 配置:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
<Location /SVN/>
DAV svn
SVNParentPath D:\SVN
AuthName "Subversion Repositories"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL "ldap://domain.local:3268/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
AuthLDAPBindDN [email protected]
AuthLDAPBindPassword password
require valid-user
</Location>