具有正确凭据的“ ldap_bind():无法绑定到服务器:无效凭据”

时间:2019-10-25 19:05:41

标签: php ldap

尝试使用以下代码在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中失败但在命令行中失败的原因吗?

1 个答案:

答案 0 :(得分:0)

添加以下内容后,它终于可以工作了:

ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);