一个简单的php LDAP认证脚本

本文介绍了一个使用PHP实现的简单LDAP认证过程。通过配置LDAP服务器的主机名、端口、基本DN等参数,实现了基于用户的认证流程。该流程包括连接LDAP服务器、搜索用户、验证密码等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

$ldapconfig['host'= 'localhost';
$ldapconfig['port'= NULL;
$ldapconfig['basedn'= 'dc=localhost,dc=com';
$ldapconfig['authrealm'= 'My Realm';

function ldap_authenticate() {
    
global $ldapconfig;
    
global $PHP_AUTH_USER;
    
global $PHP_AUTH_PW;
    
    
if ($PHP_AUTH_USER != "" && $PHP_AUTH_PW != "") {
        
$ds=@ldap_connect($ldapconfig['host'],$ldapconfig['port']);
        
$r = @ldap_search( $ds, $ldapconfig['basedn'], 'uid=' . $PHP_AUTH_USER);
        
if ($r) {
            
$result = @ldap_get_entries( $ds, $r);
            
if ($result[0]) {
                
if (@ldap_bind( $ds, $result[0]['dn'], $PHP_AUTH_PW) ) {
                    
return $result[0];
                }
            }
        }
    }
    
header('WWW-Authenticate: Basic realm="'.$ldapconfig['authrealm'].'"');
    
header('HTTP/1.0 401 Unauthorized');
    
return NULL;
}

if (($result = ldap_authenticate()) == NULL) {
    
echo('Authorization Failed');
    
exit(0);
}
echo('Authorization success');
print_r($result);

?>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值