您的位置:首页 > 编程语言 > PHP开发

php进行LDAP服务验证的实现

2016-09-27 11:33 786 查看

前言

由于在网上找到一个开源的php项目,但是需要接入到内部的ldap服务器,所以必须重写项目的登录模块,就涉及到ldap服务的登录验证问题。

在网上看到很多类似的代码,说实话,第一,说明不清楚,第二,代码也经不起推敲

DEMO代码

<?php
// 下面是定义ldap服务相关的变量
// dn是ldap中的数据目录结构
$ldapSrv = "ldap.oschina.com";
$username = 'eric';
$dn = "cn=users,cn=accounts,dc=oschina,dc=com";
$passwd = '123qwe';

// 建立ldap服务连接
$ds=ldap_connect($ldapSrv);
if($ds) {
// 进行ldap账号验证,第二参数必须是具体到ldap账号的查询
// 第二参数:uid=eric,cn=users,cn=accounts,dc=oschina,dc=com
// 很多代码对于第二个参数只是传入username,这样的无法验证通过的
$r=ldap_bind($ds, "uid=".$username.",".$dn, $passwd) or die("Unable to connect to LDAP server");
if($r) {
// 如果验证通过,进行用户信息的查询
$sr=ldap_search($ds, $dn, "uid=".$username);
$info = ldap_get_entries($ds, $sr);
for ($i=0; $i<$info["count"]; $i++) {
echo "dn is: " . $info[$i]["dn"] . "<br />";
echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
}
ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: