繁体   English   中英

通过安全域上的PHP连接到非安全LDAP服务器

[英]Connecting to a non-secure LDAP server via PHP on a Secure Domain

我正在尝试连接到客户端IT人士说没有SSL证书的ldap服务器。 该文件位于其域上的测试文件中,该文件已安装SSL。 假设文件位于https://client.org/test_LDAP.php

因此,我使用了非常简单的代码进行连接,就在过去的一个月中,该代码与另一个客户端的运行良好:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

define("LDAP_SERVER","ldap://name.their.junk");
define("LDAP_BASE","CN=Users,DC=their,DC=junk");

$username = 'CN=Username,'.LDAP_BASE;
$password = "Password";

$ldap = ldap_connect(LDAP_SERVER, 389) or die("Can't connect to LDAP server");

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) ;

if (ldap_bind($ldap, $username, $password)) {
    ldap_unbind($ldap);
    echo 'OK - Login valid';
} else {
    die(ldap_error($ldap) . ' (' . ldap_errno($ldap) . ')');
}

如果我从安装了SSL的域中运行代码,这是否意味着即使客户端的AD服务器没有证书,我也必须使用ldaps和端口636? 我已经在不安全的启动域和他的安全活动域上尝试了同时使用端口和ldaps:和ldap:的代码。 似乎没有任何作用。 但是他发誓用户名和密码,并且所有变量都是正确的,并告诉我使用主机名的IP地址(例如ldap:000.000.000.00)。

我在这里做错什么了吗?

是的,我确实在服务器端正确配置了LDAP,因为最近我们刚刚能够与另一个客户端执行相同的操作。

任何见解将不胜感激。

如果尝试在Windows 2003 Server Active Directory或更高版本上执行搜索,则似乎必须将LDAP_OPT_REFERRALS选项设置为0:

ldap_connect(..) 
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0); 
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_bind(..) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM