ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-28 02:31:53  阅读:192  来源: 互联网

标签:active-directory ldap php


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

$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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有