php怎么访问ldap,PHP连接LDAP

这篇博客介绍了如何在PHP环境中配置并使用php-ldap插件连接到LDAP服务器。通过ldap_connect,ldap_set_option和ldap_bind等函数实现服务器的连接、身份验证及用户信息检索。当用户名存在时,会尝试使用提供的密码进行登录验证。
摘要由CSDN通过智能技术生成

首先,需要安装php-ldap插件,在php.ini中进行配置后,重启apache服务器。

$user="name";

$pwd="password";

login($user, $pwd);

function login($user,$pwd){

$ldap_svr =

"10.10.192.34";

$ldap_port = 389;

try{

// 连接LDAP服务器​

$ldap_conn =

ldap_connect($ldap_svr,

$ldap_port)

or die("Could not connect to LDAP server.");

//LDAP服务器访问的用户名、密码​

$ldapuser = "CN=,OU=,DC=,DC=";

$ldappasswd="";

//用户查找过滤器和用户域

$searchFilter =

"(sAMAccountName=".$user.")";

$baseDN = "OU=,DC=,DC=";

if ($ldap_conn) {

// binding to ldap server

if

(ldap_set_option($ldap_conn,LDAP_OPT_PROTOCOL_VERSION,3)){

}else{

echo "Failed to set version to protocol 3";

}

$ldap_opt =

ldap_set_option($ldap_conn,

LDAP_OPT_REFERRALS,0)

or exit("Failed to set

LDAP_OPT_REFERRALS to 0");

$ldapbind =

ldap_bind($ldap_conn, $ldapuser, $ldappasswd);

if( $ldapbind ){

$res =

ldap_search($ldap_conn, $baseDN,

$searchFilter)

or

exit("Unable to search ldap server");

$info =

ldap_get_entries($ldap_conn, $res);

//如用户名存在,获取其登录域名

if( $info["count"]

> 0 ){

$dn = $info[0]["distinguishedname"][0];

$userbind =

ldap_bind($ldap_conn, $dn,$pwd);

}else{

echo "username does not exist.";

return false;

}

}

else{

echo "LDAP bind

failed..";

}

ldap_unbind($ldap_conn);

//或者使用

ldap_close($ldap_conn);

if

($userbind) {

echo "loged in";

return true;

} else

{

echo "password error";

return false;

}

}

}catch(Exception $e){

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值