【发布时间】:2012-01-04 23:39:20
【问题描述】:
我正在尝试连接到客户端的 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 的域运行代码,这是否意味着我必须使用 ldaps 和端口 636,即使客户端的 AD 服务器没有证书?我已经在一个不安全的启动域和他的安全实时域上尝试了两个端口和两个 ldaps: 和 ldap: 的代码。似乎没有任何效果。但他发誓用户名和密码以及所有变量都是正确的,并告诉我使用他们的 IP 代替主机名(例如 ldap:000.000.000.00)。
我在这里做错了吗?
是的,我确实在我的服务器端正确配置了 LDAP,因为我们最近能够对另一个客户端做同样的事情。
任何见解将不胜感激。
【问题讨论】:
-
您是否遇到任何错误?日志里有东西?您是否尝试过观看尝试的连接(tcpdump 等)
-
是我的还是他的?我已经让他检查他的日志,但没有收到回复。我应该查看哪些日志?
-
您应该检查您的应用程序的标准日志(例如,php 错误日志,如果需要,请打开详细的 AD 日志记录),这真的取决于您说
its not working和 SO 用户说 @ 987654324@。日志应该是您在寻求帮助之前查看的内容,因为它们通常指向错误(如果已记录)。这只是对更好的问题格式的建议。 -
感谢您的信息。当谈到服务器时,我是个菜鸟,所以我只是在检查任何类型的日志时一头雾水。应该很明显。
-
使用错误日志中没有任何内容。从我所看到的情况来看,您的代码所在的域是否是 SSL 无关紧要。他的服务器要么阻止了该站点,要么我的某些设置不正确。
标签: php apache active-directory ldap