Ldap_bind()错误

时间:2009-07-06 05:57:59

标签: ldap

美好的一天!我们怎么知道LDAP服务器允许匿名连接?

当我运行我的php程序时: 我收到这个错误:

警告:ldap_bind()[function.ldap-bind]:无法绑定到服务器:无法联系第14行/var/www/sue/ldapTest2.php中的LDAP服务器

这是我的简单样本测试程序:

LDAP查询测试“;         echo“正在连接......”;         $ DS = ldap_connect( “apserv”); //必须是有效的LDAP服务器!         echo“连接结果是”。$ ds。“

”;          if($ ds){                 echo“Binding ......”;                 $ R =的ldap_bind($ DS); //这通常是“匿名”绑定         //只读访问权限         }         echo“Bind result is”。$ r。“

”; ?>

输出:

LDAP查询测试 正在连接...连接结果是资源ID#2

绑定...... 警告:ldap_bind()[function.ldap-bind]:无法绑定到服务器:无法联系第14行/var/www/sue/ldapTest2.php中的LDAP服务器 绑定结果是

需要帮助..谢谢.. =)

3 个答案:

答案 0 :(得分:3)

你的服务器了吗?首先通过telneting到端口389来验证它是否已启动。这看起来像服务器没有运行问题。

答案 1 :(得分:1)

您是在尝试检查您的特定服务器是否支持匿名绑定(1),还是在寻找一种通用方法来确定某个LDAP服务器是否支持匿名绑定(2)?

(1)您正在测试哪台服务器? OpenLDAP提供以下配置设置:

  • disallow bind_anon:不允许匿名绑定;默认启用
  • allow bind_anon_cred:允许所谓的未经身份验证的绑定(用户名但未提供密码);默认情况下已禁用
  • disallow bind_simple_unprotected:禁止在非TLS连接上进行简单绑定;默认启用
  • disallow bind_simple:完全禁止简单绑定;默认启用

因此,您应检查您的服务器配置是否禁用匿名绑定。

(2)检查匿名绑定支持的一般方法是禁止ldap_bind()上的警告并检查结果:

function isAnonymousBindSupported($ldap)
{
    return @ldap_bind($ldap)
}

您的错误消息

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in /var/www/sue/ldapTest2.php on line 14

虽然实际上是一个明确的迹象,表明运行脚本的计算机与LDAP服务器之间存在某种连接问题。在调用ldap_connect()时未报告连接错误,因为在调用ldap_bind()之前未尝试连接 - 因此将在ldap_bind()上引发所有连接错误。

请检查以下内容:

  • 运行脚本的计算机是否能够通过DNS解析名称apserv?您可以ping apserv按名称或运行nslookup对此进行测试。
  • 您可以ping apserv的IP地址吗?
  • 您可以使用其IP地址连接服务器吗?
  • 是否存在阻止访问目标计算机端口389的防火墙?
  • 您是否可以使用某种LDAP工具连接到LDAP服务器?

答案 2 :(得分:0)

这是一个有趣的!据我所知,根据LDAP标准,使用用户名进行绑定,但没有密码计为匿名绑定。

因此,请与有效用户联系,但不要使用密码,并查看您是否已连接并访问。如果是这样,它允许匿名绑定,如果没有,你应该得到像LDAP -13机密性所需的东西。