我正在尝试配置在 Centos 6.5 上运行的 SASL,以允许对企业 Active Directory 服务器进行身份验证。最终目标是验证对该服务器上运行的某些 subversion 存储库的访问权限,但在此阶段,我只是尝试让 saslauthd 进行身份验证,并使用 testsaslauthd 对其进行测试。
每次身份验证都失败,日志中显示以下内容:
saslauthd[20843] :do_auth : auth failure: [user=MYUSER] [service=svn] [realm=MYREALM] [mech=ldap] [reason=Unknown]
saslauthd[20843] :do_request : response: NO
Run Code Online (Sandbox Code Playgroud)
这是我的 /etc/saslauthd.conf:
ldap_auth_method: bind
ldap_servers: ldaps://ldap.ad.mycompany.com:3269/
ldap_bind_dn: MYBINDDN
ldap_password: xxxxxxxxxx
ldap_search_base: DC=mycompany,DC=xx
ldap_filter: (&(cn=%u)(objectClass=person))
ldap_referrals: yes
log_level: 10
Run Code Online (Sandbox Code Playgroud)
请注意,我知道 ldap 服务器 URI、绑定 DN、密码、搜索库和过滤器是正确的,因为我有一个 perl 脚本,它使用这些来为网站执行身份验证,并且它工作正常。perl 脚本使用 Net::LDAP,绑定到 AD,使用搜索库和过滤器搜索用户,然后尝试使用用户的 DN 和密码进行绑定。据我了解,这正是 SASL 应该按照我的配置方式尝试做的事情。
我的第一个观察结果是,尽管将 log_level 设置为 10,但我只收到一行告诉我它因未知原因失败。我正在使用 -d(调试)选项从 shell 启动 saslauthd。我还能做些什么来获得更多的调试输出?
有什么方法可以记录 LDAP 交互?
最后,有人能看出我的配置有什么问题吗?也许一些 AD 怪癖需要在 SASL 配置中进行特殊设置?