【发布时间】:2016-08-29 18:12:15
【问题描述】:
首先,对不起我的英语。
我目前正在安装最新版本的 simplesamlphp(一个未知的工具,直到现在对我来说 + 我是一名 Java 开发人员(不是 php),所以我对 php 的了解有限)。
主要目的是使用 simplesamlphp 将 CAS 与 SAML2 结合使用。
问题是...在 CAS.php 模块文件中,我们调用了“new SimpleSAML_Auth_LDAP(...)”,它应该创建到 ldap 服务器的连接,但它失败并且没有显示错误(只是空白页)。我将错误跟踪到 ../lib/SimpleSAML/Auth/LDAP.php 文件构造函数;尝试连接到 ldap 时失败:
$this->ldap = @ldap_connect($hostname, $port);
有什么想法吗?
【问题讨论】:
-
您确定为您的 ldap 服务器提供了正确的主机名和端口吗?您可以使用 PHP 手册中的第一个 ldap_connect 示例作为简单的测试脚本。刚刚提供了您的设置,看看您是否可以连接。 php.net/manual/en/function.ldap-connect.php
-
我确信 100% 的主机名是正确的,并且 90% 的端口也是正确的。我什至尝试安全地连接到 LDAP 服务器,因为它在 Java 应用程序上运行时应该没有错误地运行。我想它可能是别的东西:S
-
您提供什么作为主机名和端口?
-
您使用的是基于 SSL 的 LDAP(又名 LDAPS)还是常规 LDAP?如果您使用 LDAPS,请确保您的客户端(PHP 应用程序)信任 LDAP 服务器证书。
-
我终于让它运行起来了,我只需要重新安装php5-ldap,第一次安装时似乎出了点问题。现在我发现了另一个问题,那就是在验证用户名时: $ldap->validate($this->_ldapConfig, $username);我收到另一个错误:不允许未经身份验证的绑定(DN 没有密码)
标签: php ldap cas saml-2.0 simplesamlphp