使用PHP进行LDAP身份验证

我正在尝试使用
PHP进行LDAP身份验证.

以下是我的代码:

<?php

$ldaphost = 'ldap://ldapServer';
$ldapport = 389;

$ds = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
//ldap_set_option($ds, LDAP_OPT_DEBUG_LEVEL, 7);
if ($ds) 
{
    $username = "testuser@domain.com";
    $upasswd = "testpass";

    $ldapbind = ldap_bind($ds, $username, $upasswd);


    if ($ldapbind) 
        {print "Congratulations! $username is authenticated.";}
    else 
        {print "Access Denied!";}


}
?>

但它引发了以下错误:

PHP Warning: ldap_bind(): Unable to bind to server: Can’t contact LDAP server

任何想法,我怎么能解决它?

注意:当我在某个论坛上遇到这个术语时,我们是否需要ldap.config文件.我的机器上没有看到任何这样的文件.我在ext文件夹中使用php_ldap.dll并使用Windows.

最佳答案 绑定时,不绑定用户名,而是绑定到
DN.

您的$username变量应如下所示:

$username = 'uid=testuser,ou=People,dc=domain,dc=com';
点赞