在adLDAP中对用户进行身份验证时,结果为“用户身份验证失败”

时间:2012-04-27 18:11:20

标签: php authentication active-directory

信息:我正在尝试进行身份验证和adLDAP

问题: adLDAP告诉我“用户身份验证失败”

问题:如果没有错误告诉我处理这个问题,我怎么知道我需要做什么。

搜寻/尝试:

  1. http://adldap.sourceforge.net/faq.php
  2. stackoverflow.com/questions/2465260/using-adldap-php-class-but-getting-error-when-looking-for-group-user-belongs-to
  3. adldap.sourceforge.net/wiki/doku.php?id=documentation_examples#authenticating_a_user
  4. http://phreek.org/blog/2011/12/enable-php-ldap-module-in-xampp
  5. CODE:

    require_once(dirname(__FILE__) . '/adLDAP.php');
    $adldap = new adLDAP();
    
    $username = "user";
    // $username = "domain\user"; // I have also tried
    $password = "pass";
    
    $authUser = $adldap->authenticate($username, $password);
    if ($authUser == true) {
      echo "User authenticated successfully";
    }
    else {
      echo "User authentication unsuccessful";
    }
    
    echo('<hr />');
    
    $result=$adldap->user_info("jboyle");
    print_r($result);
    

    HTML OUTPUT:

    User authentication unsuccessful
    
    Fatal error: Call to undefined method adLDAP::user_info() in C:\xampp\htdocs\adLDAP\compare.php on line 18
    

1 个答案:

答案 0 :(得分:1)

<强>替换

echo "User authentication unsuccessful";

echo "Username '{$username}' login failed: ".$adldap->getLastError();

<强>结果:

Username 'user' login failed: Can't contact LDAP server

信息/来源:

https://sourceforge.net/projects/adldap/forums/forum/358759/topic/1719128?message=4368835 http://adldap.sourceforge.net/wiki/doku.php?id=ldap_over_ssl#tell_apache_how_to_use_ldaps

执行phpinfo()并检查HOME变量在Apache环境中指向的位置。创建符号链接或将ldap.conf复制到此位置。

如果出现连接错误,可能是因为您的本地OpenSSL安装无法识别服务器提供的证书(或其权限)。这可以通过在服务器上的ldap.conf中添加以下行来规避:

更改TLS_REQCERT允许TLS_REQCERT永远不会

Apache必须能够读取ldap.conf,你不能跳过这一步。