【问题标题】:PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP serverPHP 警告:ldap_bind():无法绑定到服务器:无法联系 LDAP 服务器
【发布时间】:2011-03-15 08:51:16
【问题描述】:

我的 php 脚本有以下问题:

PHP 警告:ldap_bind(): Unable to bind to server: Can't contact LDAP server in ....

ldap_connect() 说“成功”但ldap_bind() 失败,如何解决这个问题?

【问题讨论】:

    标签: php ldap


    【解决方案1】:

    由于 SELinux 限制 HTTPD 可以使用的端口,在 RHEL7 (CentOS7) 上出现此错误。

    LDAP 端口 389 和 636 不在默认允许列表中,您可以通过以下方式取消阻止:

    setsebool -P httpd_can_network_connect 1
    

    您可以通过尝试连接到 LDAP 服务器的套接字来测试限制:

    fsockopen('LDAP-Server-IP', 389);
    

    它会给出“权限被拒绝”,表明它被阻止而不是凭据问题。

    同时检查您的 SELinux 审核日志文件是否有其他被阻止的内容。

    【讨论】:

      【解决方案2】:

      Connect 打开会话。绑定是真正验证你的东西。因此,您连接但未使用有效凭据登录。

      【讨论】:

      • 这个答案不正确。我能够得到 PHP 警告:ldap_bind(): Unable to bind to server: Can't contact LDAP server in ... on a server while I can use the same credentials to get true as the result of bind在我的本地机器上。
      • ldap_connect 方法不会连接或打开与服务器的会话。来自文档 注意:此函数不会打开连接。它会检查给定的参数是否合理,并且可以在需要时立即打开连接。。执行ldap_bind 的行为将启动连接,ldap_start_tls 也是如此。
      • 凭证不一定无效,如某些答案中所述,也可能存在其他问题。
      【解决方案3】:

      ldap_bind() 函数要求三个参数:

      1. 资源 ID
      2. 一个 rdn
      3. 与rdn关联的密码,rdn和密码是可选的

      如果您仅使用资源 ID 进行绑定:-

      // $ldap=ladap_connect(*hostname*,*port*);  
      // ldap_connect() returns a resource id
      ldap_bind() returns a boolean value(true or false)  
      ldap_bind($ladp); //annonymous bind    
      $lb=ldap_bind($ldap,"uid=xxx,ou=something,o=hostname.com","password"); //used to authenticate  
      

      如果没有,这应该可以工作,那么您使用的凭据无效。

      【讨论】:

      • 请改进答案的格式,尤其是使用列表和代码格式 - 请参阅editting help
      • @ObenSonne 请改进您的评论或答案本身的拼写。
      • @CeesTimmerman 感谢您指出这一点。你不妨关注stackoverflow.com/review
      【解决方案4】:

      有时问题取决于您的环境(Linux、Windows...) 尝试使用以下选项之一进行绑定:

      $connect = ldap_connect("ldap://".$ldap_server);
      $auth_user = 'CN=XXX,OU=XXX,DC=XXX,DC=com';
      $bind = ldap_bind($connect, $auth_user , $auth_pass);
      

      $bind = ldap_bind($connect, 'YourDomaine\\'.$auth_user , $auth_pass);
      

      【讨论】:

        猜你喜欢
        • 2015-05-21
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        相关资源
        最近更新 更多