gpt4 book ai didi

PHP 无法连接到 LDAP Oracle Directory Server 企业版

转载 作者:行者123 更新时间:2023-12-04 06:27:21 25 4
gpt4 key购买 nike

玩了几天,无法让 php 在 Oracle 的 DSEE 上绑定(bind)到 ldap。

function test(){


// LDAP variables
$ldaphost = "xxx.xxxxx.com";
$ldapport = 636;
$ldaprdn = 'cn=xyxyxyxy,ou=Accounts,dc=xxx,dc=xxxxx,dc=com';
$ldappass = 'vcvcvcvcvc';

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); // isn't helping

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");

if ($ldapconn) {

// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}

}
}

我得到错误:

消息:ldap_bind() [function.ldap-bind]:无法绑定(bind)到服务器:无法联系 LDAP 服务器

在这个上扯掉我的头发。我就是无法绑定(bind)东西。

已尝试直接 telnet 到端口 636 上的主机,并且没有被任何防火墙阻止。特别是我没有从屏幕上的“LDAP_OPT_DEBUG_LEVEL”或我的日志中获得任何额外的调试信息。

最佳答案

start_tls()ldaps是互斥的,这意味着您不能发出 start_tls()在 ssl 端口(标准 636)上,或启动 ldaps在未加密的端口(标准 389)上。 start_tls()命令在启动连接后在未加密端口上启动安全连接,因此您将在绑定(bind)发生之前发出此命令以使其加密。另一组常见端口是 3268(未加密)和 3269(ssl),可能在您的服务器中启用。
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
正在记录到您的 Web 服务器错误日志,具体取决于您的日志级别,或 stout(来自 PHP CLI)。要在此处获取更多信息,请检查您的 Web 服务器日志级别设置,或者只是从命令行运行您的 php 脚本。

要成功使用 ssl 端口,您需要指定 ldaps://前缀,而在未加密的端口上这不是必需的(带有 ldap:// 前缀)。

查看您的代码,这可能是协议(protocol)版本问题,因为 PHP 默认使用版本 2。要解决此问题,您可以发出:

ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($conn, LDAP_OPT_REFERRALS,0);

在您尝试绑定(bind)之前。

您也可以查看 Problems with secure bind to Active Directory using PHP 中的代码我在 CentOS 5 中成功使用,但在 Ubuntu 中遇到问题。如果您的服务器有一个开放的未加密端口,最好对它进行未加密测试绑定(bind)以排除任何连接问题。

要检查端口是否打开,您可以检查 telnet 是否连接到它,例如:
telnet my.server.com 3268

如果端口是打开的,那么您应该能够使用它进行绑定(bind)。

*编辑 : 如果 ssl 证书被认为无效,则连接将失败,如果是这种情况,将调试级别设置为 7 会宣布这一点。要解决这个特定问题,您需要忽略有效性:

您可以通过发出忽略 Windows 中的有效性
putenv('LDAPTLS_REQCERT=never');

在你的 php 代码中。在 *nix 中,您需要编辑/etc/ldap.conf 以包含
TLS_REQCERT never

关于PHP 无法连接到 LDAP Oracle Directory Server 企业版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888968/

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