1、先安装php LADP 扩展,具体教程就不详细说明了。。
$ldapConnect = ldap_connect('xxxx'); //建立到ldap服务器的连接LDAP_SERVER_IP是ldap服务器ip,LDAP_SERVER_PORT是ldap服务器端口(默认389) $bind = @ldap_bind($ldapConnect, 'xxx', 'xxxxxx'); //验证帐号密码,ldap_bind第一个为绑定的连接,第二个为用户名(注意是否有后缀),第三个为密码。 if ($bind) {//验证成功 $SEARCH_DN = 'OU=xx,DC=xx,DC=xx,DC=xx'; // //搜索基本条件值(类似于数据库的库和表) $SEARCH_FIELDS = array('xxx'); // //需要的搜索结果 $result = @ldap_search($ldapConnect, $SEARCH_DN, "sAMAccountName=*", $SEARCH_FIELDS); // //第三个参数是限定搜索结果为用户名为$user(类似where后的搜索条件) $retData = @ldap_get_entries($ldapConnect, $result); echo ldap_count_entries($ldapConnect,$result); // var_dump($retData); foreach ($retData as $k => $v) {//筛选整理数据,返回 var_dump($v); } } else { } //关闭ldap连接 ldap_close($ldapConnect);
由于之前字段搞错,用cn 来查询的导致 ldap_search 死活找不到数据,建议大家先用软件测试一下是否可以正确查询成功然后再尝试用代码调试,推荐LDAPadmin 软件配置一下就可以使用。。
软件链接成功以后直接照着配置填写即可
LDAP 对应字段的说明,需要映射哪些字段可以在直接写对应名称
1.常规属性,标签
项 | AD字段 | 实例 |
姓 | sn | 李 |
名 | givenName | 四 |
显示名 | displayname | 李四 |
英文缩写 | initials | LS |
描述 | description | 描述信息 |
办公室 | physicalDeliveryOfficeName | 7楼Office |
电话号码 | telephoneNumber | 01056789999 |
电子邮件 | | |
网页 | wWWHomePage | http://Lis.contoso.com |
|
2.地址属性,标签
项 | AD字段 | 实例 |
国家 | c | CN |
省/自治区 | st | 北京 |
市/县 | l | 北京 |
街道 | streetAddress | 酒店桥路 |
邮政信箱 | postOfficeBox | 44信箱 |
邮政编码 | postalCode | 100000 |
3.电话属性、标签
项 | AD字段 | 实例 |
家庭电话 | homePhone | 01098765432 |
寻呼机 | pager | 400000 |
移动电话 | mobile | 13800138000 |
传真 | facsimileTelephoneNumber | 01098765433 |
IP电话 | ipPhone | 01098765431 |
4.组织属性、标签
项 | AD字段 | 实例 |
公司 | company | Contoso |
部门 | department | 信息部 |
职务 | title | IT管理员 |
经理 | manager | 张三
|
5、账户、标签
项 | AD字段 | 实例 |
用户登录名 | userPrincipalName | pccai1983@hotmail.com |
用户登录名(以前版本) | sAMAccountName | zhangsan |
登录时间 | logonHours |
|
登录到 | userWorkstations |
|
用户帐户控制 | userAccountControl (启用:512,禁用:514, 密码永不过期:66048) | |
帐户过期 | accountExpires |