尝试使用以下代码在PHP Web应用程序上实现LDAP身份验证:
$conn = ldap_connect("ldap://" . $host);
try {
$user = $username . "@" . $domain;
ldap_bind($conn, $user, $password);
} catch (Exception $e) {
Log::info($e->getMessage());
}
它对少数人有效,对其他人无效。正在记录以下错误:
ldap_bind(): Unable to bind to server: Invalid credentials
对于到目前为止的所有用户,已使用以下命令确认其凭据正确无误:
ldapsearch -H {HOST} -x -W -D {USERNAME}@{DOMAIN} -b '{BASE_DN}' "(userprincipalname={USERNAME}@{DOMAIN})"
有人知道ldap_bind
可能在PHP中失败但在命令行中失败的原因吗?
答案 0 :(得分:0)
添加以下内容后,它终于可以工作了:
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);