编程语言
首页 > 编程语言> > 如何在使用PHP的LDAP身份验证中使用电子邮件代替用户名?

如何在使用PHP的LDAP身份验证中使用电子邮件代替用户名?

作者:互联网

目前,我可以使用用户名和密码登录.我希望能够使用电子邮件地址而非用户名登录.您如何建议我这样做?脚本:

$ldap['username'] = "domain\user123";
$ldap['password'] = "password123";
$ldap['host']   = 'site.domain.com';
$ldap['port']   = 389;
$ldap['dn'] = "CN=Users, DC=domain, DC=com";

$ldap['conn'] = ldap_connect( $ldap['host'], $ldap['port'] )
or die("Could not connect to {$ldap['host']}" );

$ldap['bind'] = ldap_bind($ldap['conn'], $ldap['username'], $ldap['password']);

if( !$ldap['bind'] )
{
echo "Failed";
}

else if( $ldap['bind'] )
{
echo "Success";
}

任何帮助将不胜感激.

非常感谢!

解决方法:

您将必须与对LDAP服务器具有读取权限的用户绑定,使用所涉及的电子邮件地址搜索该用户的DN,然后使用该DN进行第二次绑定.如果第二次绑定成功,则用户登录;如果第二次绑定失败,则登录失败.

我创建了一个要点,以https://gist.github.com/heiglandreas/5689592表示该过程

标签:active-directory,ldap,php
来源: https://codeday.me/bug/20191028/1948922.html