"ldap_bind(): Unable to bind to server: Invalid credentials" 凭据正确

"ldap_bind(): Unable to bind to server: Invalid credentials" with correct credentials

正在尝试使用以下代码在 PHP 网络应用程序上实施 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 中失败但在命令行中失败的任何可能原因吗?

它在添加以下内容后结束了工作:

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