gpt4 book ai didi

php - LDAP 和 PHP 连接失败

转载 作者:IT王子 更新时间:2023-10-29 00:18:16 26 4
gpt4 key购买 nike

我正在尝试通过 PHP 连接到一个安全的 LDAP 服务器(使用 LDAP),但我遇到了问题。我收到以下错误

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

当我尝试不使用 LDAP 进行连接时,我会工作,但我需要使用 LDAP,因为我将要处理敏感信息。

我正在使用下面的代码

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("ldaps://server"); // must be a valid LDAP server!




print $ds;

if ($ds) {
echo "<br><br>Binding ...";
$r=ldap_bind($ds); // this is an "anonymous" bind, typically
// read-only access
echo "Bind result is " . $r . "<br />";

echo "Searching for (sn=S*) ...";
// Search surname entry
$sr=ldap_search($ds, "ou=people,o=server.ca,o=server", "uid=username*");
echo "Search result is " . $sr . "<br />";

echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

echo "Getting entries ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Data for " . $info["count"] . " items returned:<p>";

print_r($info);
// for ($i=0; $i<$info["count"]; $i++) {
// echo "dn is: " . $info[$i]["dn"] . "<br />";
// echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
// echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
// }

echo "Closing connection";
ldap_close($ds);

} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

最佳答案

该问题与实际绑定(bind)过程(无效凭据)无关,因为如果 LDAP 服务器无法验证您的凭据,则警告会有所不同。但是作为Paul Dixon注意使用ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)应该是必需的 - 尽管我认为这不是导致您出现问题的原因。

  • 您要连接到哪种 LDAP 服务器类型? OpenLDAP、Active Directory 或其他?
  • 运行您的 PHP 程序的计算机的操作系统是什么?
  • 您是否在 LDAP 服务器上使用自签名 SSL 证书,给定证书的证书颁发机构是否受到运行 PHP 程序的机器的信任?
  • LDAP 服务器在哪个端口上运行? 636 将是 LDAPS 的“官方”端口。也许您可以将端口显式添加到服务器地址:ldaps://<<server>>:636 .

ext/ldap SSL/TLS 安全连接存在一些问题。你可以尝试添加

TLS_REQCERT never

ldap.conf (在基于 *nix 的系统上为 /etc/ldap.conf/etc/ldap/ldap.conf)或为 Windows 机器创建 ldap.conf以上内容在C:\OpenLDAP\sysconf\ldap.conf (路径必须完全匹配,因为它已硬编码到扩展中)。

关于php - LDAP 和 PHP 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com