使用 LDAP 进行 PHP 身份验证

标签 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 成功连接并确定它使用的是协议(protocol)版本 3。我尝试过 ldap_search 和 ldap_bind,但所有尝试均未成功。我开始认为这是因为 -x 和 -w 选项。或者可能是因为 LDAP 仍然让我感到困惑。

我们将不胜感激任何提示!

最佳答案

$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 - 我的代码应该在大多数系统上都有效。

关于使用 LDAP 进行 PHP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449356/

相关文章:

php - 无法联系 ldap_bind($con, $rdn, $pwd) 上的 LDAP 服务器

c# - 如何从 Lotus Notes 获取 Internet 地址

java - SearchControls.setTimeLimit() 是否处理读取超时?

php - 为什么用php无法将日期写入mysql?

php - 用户评论未使用 PDO 进入数据库

php - 如何将 twitter api 与 "http basic auth"一起使用?

ios Facebook 登录 : com. facebook.sdk:ErrorLoginFailedReason = invalid_client

php - 在指定时间后更新 mySQL 行(PHP、MySQL)

javascript - 使用数据库结果数组 codeigniter 填充 html 表单

php - Paypal 沙盒 API 10055 错误?