我已经使用 SASL+LDAP 对 AD 进行了身份验证,但没有使用 SASL+GSSAPI,并且有一个小警告:我必须在 Windows 中使用和运行来自 Cygwin 的 svnserve。
1)在 Linux 中通过 SASL+LDAP/AD 让 svnserve 验证用户非常容易(我知道问题是关于 Windows 中的 svnserve,但请耐心等待)。获得针对 LDAP/AD 的身份验证的重要部分是 saslauthd,并使用 testsaslauthd 测试身份验证。
以 Ubuntu 为例:
1a) /etc/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN
这告诉 subversion / svnserve 使用 saslauthd 代表它进行身份验证。
1b) /etc/saslauthd.conf
ldap_servers: ldap://yourADserver.dept.org
ldap_search_base: DC=dept,DC=org
ldap_bind_dn: cn=bindaccount,dc=dept,dc=org
ldap_bind_pw: passwordOfbindaccount
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
ldap_filter: sAMAccountName=%u
ldap_password_attr: userPassword
ldap_timeout: 10
ldap_cache_ttl: 5
ldap_cache_mem: 32768
1c)通过testaslauthd进行测试
testsaslauthd -u myusername -p mypassword
1d) 如果成功,则运行 saslauthd,并启动 svnserve。并使用任何 svn 客户端来测试身份验证。
2) 问题是,Cyrus 的 saslauthd 没有本地端口到 Windows,而且可能永远不会。答案是使用 Cygwin,它有 svnserve、testaslauthd 和 saslauthd。
只需重复上述步骤..但svn.conf的位置可能不同。