PHP 使用 LDAP 进行身份验证

2024-08-23php开发问题
9

本文介绍了PHP 使用 LDAP 进行身份验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我对 PHP 和 LDAP 还比较陌生,我需要让一个页面只有经过身份验证的用户才能访问.

I'm relatively new to PHP and even more to LDAP and I need to make one page accessible only to authenticated users.

我得到的只是控制台上的以下命令:

All I got working is the following command on console:

$ 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 仍然让我很困惑.

So far I've successfully connected using ldap_connect and determined that it's using protocol version 3. I have played around with ldap_search and ldap_bind, but all the attempts are unsuccessful. I'm beginning to think it's because of the -x and -w options. Or maybe because LDAP is still really confusing to me.

任何提示都将受到深深的赞赏!

Any hints will be deeply, deeply appreciated!

推荐答案

$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);

要使用安全连接,您可以在此处查看我的帖子:使用 PHP 安全绑定到 Active Directory 的问题 - 我的代码应该在大多数系统上都有效.

To utilize a secure connection, you can have a look at my post here: Problems with secure bind to Active Directory using PHP - my code should be valid on most systems.

这篇关于PHP 使用 LDAP 进行身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17