在Ubuntu更新10.04 – > 12.04之后,svn授权sasl + ldap失败

我在Ubuntu 10.04上使用svnserve解决scheme,通过SASL授权svn用户到Active Directory(LDAP,而不是LDAPDB)。 configuration文件在底部。

升级服务器到12.04版本后,这不再起作用。 我可以通过SASL授权用户使用LDAP

testsaslauthd -u ldap_username -p his_password => 0: OK "Success." 

但是,当我尝试在同一台服务器上“svn更新”文件夹时,它会问我三次凭据,并以此结束

  svn: Authentication error from server: SASL(-4): no mechanism available: 

我不知道如何跟踪svn和sasl之间的通信。

情况:

  • Ubuntu 10.04 + Subversion 1.6.6(支持Cirrus SASL)=>正常工作
  • Ubuntu 12.04 + Subversion 1.6.17(支持Cirrus SASL)=>不工作(具有相同的configuration)

文件/usr/lib/sasl2/svn.conf

  pwcheck_method: saslauthd auxprop_plugin: ldap mech_list: PLAIN 

文件/usr/lib/sasl2/subversion.conf – >符号链接到/usr/lib/sasl2/svn.conf

文件/opt/svn/repos/conf/svnserve.conf

  [general] anon-access = none auth-access = write #password-db = passwd authz-db = authz realm = smartsvn [sasl] use-sasl = true min-encryption = 0 max-encryption = 256 

任何想法,如何解决或追踪问题?

像以上一样的问题只有在debian挤压后才能升级。 经过几个小时的configuration,重新启动并重新安装疯狂我给了下面的“svn.conf”一试:

 pwcheck_method: saslauthd #auxprop_plugin: ldap mech_list: plain login cram-md5 digest-md5 

IMO,“mech_list:plain”应该就够了。 其他的机器都是以前的试用版本。

这是我的/etc/saslauthd.conf

 ldap_servers: ldap://xxx.xxx.xxx.xxx ldap_use_sasl:no ldap_search_base: DC=domain,DC=tdl ldap_bind_dn: [email protected] ldap_bind_pw: magic_word:) ldap_mech: PLAIN ldap_auth_method: bind ldap_filter: (sAMAccountName=%U) log_level: 7 

在这里我的/ etc / default / saslauthd

 START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="ldap" MECH_OPTIONS="" THREADS=5 

更新Dez 14:

今天我在svnserve升级(r1615264)之后再次遇到同样的问题:

我不得不将以下内容添加到svn.conf中:

 ldapdb_uri: ldap://myldadphost.tld 

不要问我为什么,我只是试了一下,因为三四年前,svn.conf中的参数已经(和其他ldap参数一样)…

(1)在/etc/sasl2/svn.conf中,你可以设置saslauthd的日志级别,如:

 log_level: 7 

在sasl.h中我发现:

 #define SASL_LOG_NONE 0 /* don't log anything */ #define SASL_LOG_ERR 1 /* log unusual errors (default) */ #define SASL_LOG_FAIL 2 /* log all authentication failures */ #define SASL_LOG_WARN 3 /* log non-fatal warnings */ #define SASL_LOG_NOTE 4 /* more verbose than LOG_WARN */ #define SASL_LOG_DEBUG 5 /* more verbose than LOG_NOTE */ #define SASL_LOG_TRACE 6 /* traces of internal protocols */ #define SASL_LOG_PASS 7 /* traces of internal protocols, including passwords */ 

它似乎logging到/var/log/auth.log。

我有几乎相同的问题(从Ubuntu 11.04迁移到12.04),并获得auth.log:

 svnserve: could not find auxprop plugin, was searching for 'ldap' 

有趣的是,日志说“svnserve”,而不是saslauthd。 这导致我…

(2)你可以试试

 ldd /usr/bin/svnserve 

对我来说,工作服务器(Ubuntu 11.04)显示:

 libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 

但失败的服务器(12.04)没有。

尝试将configuration更改为/usr/lib/sasl2/svn.confconfiguration文件(SVN saslconfiguration):

 auxprop_plugin: ldapdb mech_list: PLAIN ldapdb_mech: PLAIN saslauthd_path: /var/run/saslauthd/mux ldapdb_uri: <address of your ldap server (ldap://hostname)>