欢迎各位兄弟 发布技术文章
这里的技术是共享的
先通过 程序的最大范围的 $basedn来查
弄一个程序 找出一个用户,就可以看到大概的basedn了 ,基本原理见 /node-admin/16715 /node-admin/16551
ad_info_ldap_get_entries_ks_ok.php 文件的源代码如下:
<?php
//if (empty($_GET['gh'])) {
// die("请在网址后加上 ?gh=八位数字 ");
//}
$host = '192.138.2.2';
$port = '389'; //一般都是389
$domain = 'xx.yy.zz';
$account = 'aaaaa';
$user = 'aaaa@' . $domain; //域用户名
$password = 'bbbbbb'; //域用户密码
$conn = ldap_connect($host, $port); //不要写成ldap_connect($host.':'.$port)的形式
if ($conn) {
//设置参数
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3); //声明使用版本3
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0); // Binding to ldap server
$bd = ldap_bind($conn, $user, $password);
$basedn = "dc=xx,dc=yy,dc=zz";
// $filter = "(objectClass=*)";//选择器
// $filter = "(&(sAMAccountName=史平忠))";//选择器
// $filter = "SamAccountName=" . $_GET['gh']; //根据工号 比如 12345739
$filter = "SamAccountName=*" ;
//$filter="(|(sn=史平忠*)(givenname=史平忠*))";
$justthese = array('sn', 'department', 'company', 'objectsid', 'mail', 'givenName', 'displayName', 'telephoneNumber', 'memberof', 'samaccountname', 'primarygroupid'); //选择要获取的用户属性
$justthese = array('*'); //选择要获取的用户属性
//$sr=ldap_search($conn, $basedn,$filter );
$sr = ldap_search($conn, $basedn, $filter, $justthese);
var_dump("AAAAAAA");
echo "<pre>";
$info = ldap_get_entries($conn, $sr);
print_r($info);
echo "</pre>";
if ($bd) {
echo 'LDAP 绑定成功'; //相当于登录成功
} else {
echo 'LDAP 绑定失败';
}
} else {
echo '无法连接到AD域服务器';
}
ldap_close($conn);
?>