【发布时间】:2011-05-13 12:09:36
【问题描述】:
我有一个执行 LDAP 连接、绑定和搜索的 PHP 脚本。它与大多数 Active Directory 服务器配合得很好,但是我们的一个客户遇到了问题。脚本返回
Strong(er) authentication required.
尝试 ldap_bind 时出错。
我所做的所有搜索都指向两个可能的问题:
- 我必须将
LDAP_OPT_PROTOCOL_VERSION设置为3- 这是我之前做过和做过的,所以这不是我的问题。 - AD 服务器配置为使用 SSL 身份验证 - 但我们的客户端坚持认为它是默认的 Windows 2008 R2 服务器安装,并且肯定不会默认使用 SSL。
还有哪些其他原因会导致此错误发生?
更新
Active Directory 服务器上需要 SSL ...
【问题讨论】:
-
您是否在 ssl 端口上使用 ldaps:// 进行连接?如果您省略 ldaps:// - 那么 PHP 将尝试进行未加密的绑定
-
打赌 Jon Skarpeteig 是对的,在我明确使用 ldaps 之前,我遇到了完全相同的问题。检查 LDAP 部分下的 phpinfo() 以确保它支持 SASL
-
我知道 ldaps:// 并且配置起来非常困难。从 AD 服务器导出证书,将它们复制到 Linux 机器上,将它们转换为 pem,说服 openssl 使用它们......所以,我没有使用 ldaps://,据我所知 AD 服务器没有不需要安全身份验证,至少我们的客户告诉我们这是一个基本安装......不幸的是,我无法自己检查它,并且在每台 AD 服务器上我都尝试了它运行良好的脚本,除了上面提到的那个。
-
奇怪到我执行
ldap_add()时没有出现问题。