【发布时间】:2020-07-07 01:03:56
【问题描述】:
我有一个 Active Directory 服务器和一个 Windows WAMP 服务器托管 PHP Web 应用程序,它们需要能够使用 Kerberos 对 Active Directory 进行身份验证。
我能够使用一些示例 PHP 代码轻松连接并绑定到 Active Directory 主机,但我不确定如何使用 Kerberos 来实现。我看到很多论坛和博客详细介绍了如何在 *NIX 机器上执行此操作,但这对我的情况没有帮助。
我确实使用 Wireshark 和 Fiddler 确认没有发生 Kerberos 或 NTLM 协商。
我用来连接和绑定到 LDAP 的示例代码:
<?php
$ldaphost = "example.domain.com";
$ldapport = 389;
$ldapuser = "user";
$ldappass = "password";
$ldapconn = ldap_connect( $ldaphost, $ldapport )
or die( "Unable to connect to the LDAP server {$ldaphost}" );
if ($ldapconn)
{
$ldapbind = ldap_bind($ldapconn, $ldapuser, $ldappass);
if ($ldapbind)
{
echo "LDAP connection successful";
}
else
{
echo "LDAP connction failed";
}
}
?>
任何帮助将不胜感激,谢谢!
更新:我整天都在为此苦苦挣扎,我认为我需要使用 ldap_sasl_bind(),可能使用 GSSAPI 作为机制...无论我在 ldap_sasl_bind 中输入什么参数(),我收到以下错误:'无法绑定到服务器:未知身份验证方法'
我不确定如何实现 GSSAPI,但我看到的一些示例显示使用 ldap_start_tls(),但我不断收到“无法启动 TLS:服务器不可用”错误。
我不知道是否有人知道有关 ldap_sasl_bind()(PHP 未记录)或 ldap_start_tls 的任何信息,但如果我应该这样做,请指出正确的方向。
【问题讨论】:
标签: php active-directory ldap wamp kerberos