LDAP连接可以在PHP 5上使用,但不能在PHP 7上使用

时间:2019-04-15 13:27:45

标签: php ldap

我想绑定到LDAP服务器,但是当我尝试在PHP 7中这样做时却无法正常工作。但是,相同的代码在PHP 5中也可以使用。

我有代码:

$ldapconn = ldap_connect("ldaps://192.168.22.222:636")
or die("Could not connect to LDAP server.");

if ($ldapconn) {
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);

    $ldapbind = ldap_bind($ldapconn, 'username', 'password');
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }
}

当我在PHP 5中执行此代码时,我得到:

LDAP bind successful...

在LDAP服务器日志中,我可以看到以下内容:

conn=434976 fd=26 ACCEPT from IP=8.8.8.8:43536 (IP=0.0.0.0:636)
conn=434976 fd=26 TLS established tls_ssf=128 ssf=128
conn=434976 op=0 BIND dn="" method=128
conn=434976 op=0 RESULT tag=97 err=0 text=
conn=434976 op=1 UNBIND
conn=434976 fd=26 closed

在PHP 7中,我得到响应:

Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server

和LDAP日志中:

conn=434975 fd=26 ACCEPT from IP=8.8.8.8:50919 (IP=0.0.0.0:636)
conn=434975 fd=26 TLS established tls_ssf=256 ssf=256
conn=434975 fd=26 closed (connection lost)

我找到了一些在LDAP服务器上禁用证书验证的解决方案,但是我无法更改该服务器的配置。

您能帮我如何在PHP 7中进行绑定吗?我在PHP 7.2和7.3中使用默认配置进行了测试。

0 个答案:

没有答案