PHP使用LDAP进行身份验证

时间:2011-03-27 12:58:29

标签: php authentication ldap

我对PHP相对较新,甚至对LDAP更新,我需要只为经过身份验证的用户提供一个页面。

我所有工作的是控制台上的以下命令:

$ ldapsearch -b 'dc=ut,dc=ee' -D 'uid=USER,ou=People,dc=ut,dc=ee' -x -w 'PASSWORD' 'uid=USER' 'description'

到目前为止,我已成功使用ldap_connect进行连接,并确定它正在使用协议版本3.我使用了ldap_search和ldap_bind,但所有尝试均未成功。我开始认为这是因为-x和-w选项。或许是因为LDAP仍然让我感到困惑。

任何暗示都将深深地,深深地感激!

1 个答案:

答案 0 :(得分:5)

$username = 'user';
$password = 'passwd';
$account_suffix = '@example.com';
$hostname = 'ldap.example.com';


$con =  ldap_connect($hostname);
if (!is_resource($con)) trigger_error("Unable to connect to $hostname",E_USER_WARNING);
ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($con, LDAP_OPT_REFERRALS, 0);

if (ldap_bind($con,$username . $account_suffix, $password))
{
    // Logged in
}
ldap_close($con);

要使用安全连接,您可以在此处查看我的帖子:Problems with secure bind to Active Directory using PHP - 我的代码在大多数系统上都有效。