由于公司有些项目使用ldap协议进行用户认证,所以安装下
ldap是基于TCP/IP协议的目录访问协议,是Internet上目录服务的通用访问协议。LDAP的出现简化了X.500目录的复杂度,降低了开发成本,是X.500标准的目录访问协议DAP的子集,同时也作为IETF的一个正式标准。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
2、ldap也有图形管理界面,一般用phpldapadmin
4、php代码测试,具体操作可参考手册:http://php.freehostingguru.com/group.php-25.php
<?php echo '<pre>'; $ldap_host = "ldap://192.168.10.111";//LDAP 服务器地址 $ldap_port = "389";//LDAP 服务器端口号 $ldap_user = "cn=wangping,ou=Practice,dc=baidush,dc=com";//设定服务器用户名 Practice实习 不加提示非法凭证credentials $ldap_pwd = "wangping123";//设定服务器密码 $ldap_user = "cn=Manager,dc=baidush,dc=com";//管理员 $ldap_pwd = "e6666_baidu";//设定服务器密码 $ldap_conn = ldap_connect($ldap_host, $ldap_port) or die("Can't connect to LDAP server");//建立与 LDAP 服务器的连接 $rs=ldap_bind($ldap_conn, $ldap_user, $ldap_pwd) or die("Can't bind to LDAP server.");//与服务器绑定 用户登录验证 成功返回1 $base_dn = "dc=baidush,dc=com";//定义要进行查询的目录主键 //邮箱验证 $filter_col = "mail";//定义用于查询的列 $filter_val = "[email protected]";//定义用于匹配的值 //用户名认证 $filter_col = "cn";//定义用于查询的列 $filter_val = "Manager";//定义用于匹配的值 $result= ldap_search($ldap_conn, $base_dn, "($filter_col=$filter_val)");//执行查询 $entry= ldap_get_entries($ldap_conn, $result);//获得查询结果 //print_r($entry);exit;//输出查询结果 //修改 ok 必须管理权限 dn即cn=wudahong,ou=Practice,dc=baidush,dc=com需写对 $entry = array("telephonenumber" => "18290907878", "userpassword" => "wangping123");//设定要修改的记录属性 //$rs=ldap_modify($ldap_conn, "cn=wudahong,ou=Practice,dc=baidush,dc=com", $entry) or die("Can't modify entry."); //新增 ok $info=array(); $info["cn"] = "wu"; $info["sn"] = "test2"; $info["givenName"] = "wu"; $info["telephonenumber"] = "18290907878"; $info["userpassword"] = "wutest2";//可不加密码 $info["mail"] = "[email protected]"; $info["objectclass"] = "inetOrgPerson";//此处不是inetOrgPerson1 //$info["objectclass"][0] = "inetOrgPerson";//可这样写 只需1个即可 //$info["objectclass"][1] = "posixAccount2";//加上这个ldap_add(): Add: Invalid syntax $rs = ldap_add($ldap_conn, "cn=wutest2,ou=Practice,dc=baidush,dc=com", $info); //删除 ok 如果不存在 ldap_delete(): Delete: No such object $rs = ldap_delete($ldap_conn, "cn=John Jones,ou=Practice,dc=baidush,dc=com"); print_r($rs);exit;//输出查询结果 ldap_unbind($ldap_conn) or die("Can't unbind from LDAP server."); //与服务器断开连接 ldap_close($ldap_conn);//关闭连接