如何在使用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