我一直在按照我在网上找到的所有指南来获得一个有效的 svnserve + SASL + OpenLDAP 配置,我让一切正常工作了大约一天,然后在玩了 svn+ssh 之后,我一定是弄坏了一些东西并且可以'让它再次工作。
在我的 /srv/svn/repo/conf/authz 文件中,我列出了这样的 Active Directory 组:
Admins = User One, User Two
Engineers = Other User, Someone Else
它为这些组使用每个用户的 CN,这在以前有效,但现在我可以让我的 SVN 客户端进行身份验证的唯一方法是,如果我在我的 authz 文件中为这些组指定用户名而不是 CN。
这是我的配置(在 Gentoo 系统上,编辑了域名和密码以确保安全):
/etc/conf.d/saslauthd:
SASLAUTHD_OPTS="${SASLAUTHD_OPTS} -a ldap"
/etc/saslauthd.conf:
# LDAP auth/lookup settings
ldap_servers: ldap://domain.com
ldap_default_domain: domain.com
ldap_search_base: DC=domain,DC=com
ldap_bind_dn: CN=LDAP Bind,CN=Users,DC=domain,DC=com
ldap_bind_pw: password
# AD Options
ldap_deref: never
ldap_restart: yes
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: 30
ldap_cache_mem: 32768
ldap_mech: PLAIN
/etc/sasl2/svn.conf:
pwcheck_method: saslauthd
auxprop_plugin: ldap
mech_list: PLAIN LOGIN
ldapdb_mech: PLAIN LOGIN
/srv/svn/repo/conf/svnserve.conf:
[general]
anon-access = none
auth-access = write
authz-db = /srv/svn/repo/conf/authz
realm = Engineering
[sasl]
use-sasl = true
min-encryption = 0
我无法弄清楚当我使用 svn+ssh 选项时会发生什么变化,当我意识到它不起作用时我会忘记恢复。任何帮助将不胜感激。