美好的一天!我们怎么知道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服务器 绑定结果是
需要帮助..谢谢.. =)
答案 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()
上引发所有连接错误。
请检查以下内容:
apserv
?您可以ping
apserv
按名称或运行nslookup
对此进行测试。 apserv
的IP地址吗?答案 2 :(得分:0)
这是一个有趣的!据我所知,根据LDAP标准,使用用户名进行绑定,但没有密码计为匿名绑定。
因此,请与有效用户联系,但不要使用密码,并查看您是否已连接并访问。如果是这样,它允许匿名绑定,如果没有,你应该得到像LDAP -13机密性所需的东西。