我们正在使用 SugarCRM 社区版 5.2.0f(在 OpenSuSE 11.1 上运行的 Build 5688),并设置了 LDAP 内容,以便用户可以通过联系我们的 DC(Server 2008)使用他们的 AD 凭据登录。
我们遇到了几个用户的问题;他们最近(大约一周前)更改了他们的 AD 密码,现在无法登录到 Sugar。其他用户仍然可以进行 LDAP 登录,如果我手动设置了问题用户的密码,那么他们也可以登录,但 LDAP 只是不想知道他们。当他们尝试时,我在日志中得到以下信息:
Mon Sep 21 16:16:16 2009 [17854][-none-][FATAL] [LDAP ERROR][1]Operations error
Mon Sep 21 16:16:16 2009 [17854][-none-][FATAL] SECURITY: ldapauth: failed LDAP bind (login) by user@domain, could not construct bind_user
Mon Sep 21 16:16:16 2009 [17854][-none-][FATAL] SECURITY: User authentication for user@domain failed
Mon Sep 21 16:16:16 2009 [17854][-none-][FATAL] SECURITY: User authentication for user@domain failed
Mon Sep 21 16:16:16 2009 [17854][-none-][FATAL] FAILED LOGIN:attempts[1] - user@domain
有谁知道这里可能发生了什么?允许的密码是否有任何限制 - 长度、特殊字符的存在等?我知道用户的新密码以单引号结尾,这是一个 SQL 分隔符,但我认为登录代码会正确地转义它。
没关系,我解决了;问题出在用户的密码上。LDAP 数据的 tcpdump 显示单引号被转义为“'”,而 DC 正确地说“不”。考虑到让用户更改密码或学习足够的 PHP 来调试登录脚本,我想我会选择前者。
另外,我刚刚发现这是已知的错误 - #24923,如果有人感兴趣的话。
我使用的解决方案是将服务器设置为 ldap:// 并使用端口 3268 ..
希望这对某人有帮助。