绑定到LDAP使用SSL保持失败 – Windows Server 2008

我们的脚本在尝试使用SSL绑定到LDAP(活动目录)时会继续失败,我很难过。 我们可以使用不安全的方法成功连接,但是我们正试图执行需要SSL的密码更改。 我们的脚本片段如下:

config.php文件

// SSL $LDAPDOMAIN="dc=campus,dc=local"; $LDAPLOCALDOMAIN="campus.local"; $LDAPHOST='ldaps://localhost'; $LDAPPORT=636; $ldap = ldap_connect($LDAPHOST, $LDAPPORT) or die ('<p class="message">Error connecting'); ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); 

reset.php(使用config.php)

 if ($ldap) { $bind = @ldap_bind($ldap,$username."@".$LDAPLOCALDOMAIN,$password); if (!($bind)) { @ldap_close($ldap); die ('<p class="message">Your password is incorrect, please try again <a href=javascript:history.back()>click here</a><br>'); } 

无论我们做什么,剧本都会在reset.php中“死亡”。 当我们使用正规的LDAP时,我们至less可以沟通。 我们的config.php代码如下:

 $ldap = ldap_connect($LDAPHOST) or die ('<p class="message">Error connecting to LDAP'); 

感谢您的帮助,并感谢您提前。

*更新

我试着运行下面的简单程序来testing我的LDAP。 SSL仍然无法正常工作,但是普通的LDAP却不行。 这是一个configuration问题? 我的证书应该没问题,我创build了一个新的,并注册了我的服务器。 我使用了一个绑定和连接的LDAP实用程序。 只是不是PHP

 <?php $ldap = ldap_connect("ldaps://localhost/"); $username="[email protected]"; $password="password"; if($bind = ldap_bind($ldap, $username,$password )) echo "logged in"; else echo "fail"; echo "<br/>done"; ?> 

我的结果是失败。

你可以尝试运行ldapsearch并给我们错误输出? 它看起来像这样:

 ldapsearch -x -d 1 -LLL -H ldaps://localhost -b 'dc=campus,dc=local' -D 'username' -W '(sAMAccountName=username)' 

参数是:

  • -x:强制连接使用简单authentication而不是SASL(模拟PHP ldap_bind()函数)
  • -d 1:显示debugging输出,增加更多的详细信息
  • -LLL:更改输出格式以删除一些不需要debugging的LDIF信息
  • -H:主机URI说明符; 您可以将其更改为“ldap://”以testing非SSL绑定
  • -b:绑定DN
  • -D:绑定凭证用户名,CN或其他标识string
  • -W:强制ldapsearch要求input密码

如果您使用SASL通过LDAPS连接到Active Directory服务器,则需要将“ maxssf ”参数设置为零。 我不太确定PHP的LDAP函数是如何工作的,所以如果你能弄清楚如何设置这个参数,可能是值得的。

谢谢大家的帮助。 经过进一步的研究,我终于弄清楚了究竟发生了什么。 我知道现在或未来我不会是唯一遇到这个问题的人。 所以请按照这些网站上列出的指示,你将是金。

从第一个链接下载configuration文件,然后按照第二个链接上的说明。

http://jaredjennings.org/index.php5/Enabling_LDAP_SSL_in_PHP
http://www.apple-scripts.com/Downloads/Enable%20LDAPS%20on%20Windows%20IIS.pdf

Windows服务器环境有时候会很笨拙。