conkeyn 发表于 2013-2-7 01:37:40

LDAP使用

LDAP服务架设

目前我只是使用OpenDS 2.2.0简单运行起来而已,这样就成了一个LDAP服务了。
打开OpenDS控制台,在OpenDS_HOME/bat/control-panel.bat
<ul>列表和计算条目数目<?phpheader("content-type:text/html;charset=utf-8");if(!extension_loaded("ldap")){    if(substr(PHP_OS, 0,3)=="WIN"){         dl("php_ldap.dll");    }else{      dl("php_ldap.so");    }}else{    echo "ldap 已经安装。<br/>";}$ldap = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ldap){    echo "连接到ldap服务器。<br/>";    $ldap_bind = ldap_bind($ldap, "cn=admin", "gbit");    if($ldap_bind){      echo "ldap binded successfully.<br/>";      $sr = ldap_list($ldap, "dc=example,dc=com", "sn=*");      echo "有".ldap_count_entries($ldap, $sr)."记录<br />";      //print_r($sr);      $info = ldap_get_entries($ldap, $sr);       //print_r($info["count"]);      for($i=0;$i<$info["count"];$i++){            print_r( $info[$i]["cn"]);      }    }else{         echo "ldap binded failed.<br/>";    }    ldap_unbind($ldap);}$i=1;$password="password";echo $password{$i};//ldap_close($ldap);?> 
添加一个简单的条目<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    // 在添加一个条目时,cn、sn、objectClass是必填属性,每个属性都是一个对象数组。    // 添加姓名全称    $info["cn"]="John jeniess";    // 添加姓氏    $info["sn"]="jeniess";    // 添加对象类,此对象类用描述该条目的性质。    $info["objectClass"]="top";    $info["objectClass"]="inetOrgPerson";   $info["objectClass"]="organizationalPerson";    $info["objectClass"]="person"; // 个人条目   if(ldap_add($ds, "cn=John jeniess,dc=example,dc=com", $info)){       echo "添加成功~";   }ldap_close($ds);}?> 
修改条目<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    $info["cn"]="John jeniess1";    // 添加姓氏    $info["sn"]="jeniess1";    // 添加对象类,此对象类用描述该条目的性质。    $info["objectClass"]="top";    $info["objectClass"]="inetOrgPerson";    $info["objectClass"]="organizationalPerson";    $info["objectClass"]="person"; // 个人条目    // 编辑时不能在根目录中操作(RDN= Root DN),即必需要先有A分组,然后才能对A分组的条目进行修改。ou相当于dc为j的People分组。   if(ldap_modify($ds, "uid=user.4,ou=People,dc=j", $info)){       echo "编辑成功~";   }ldap_close($ds);}?> 
删除条目<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    $dn = "uid=user.5,ou=People,dc=j";    // 删除方法比较简单,直接输入条目的dn路径的就可以了。   if(ldap_delete($ds, $dn)){    echo "删除成功~";   }ldap_close($ds);}?> 
增加条目属性<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    // 添加属性时,只需要把想要添加的属性增加到数组中即可。    $info["st"]="jeniess address";   if(ldap_mod_add($ds, "cn=John jeniess,dc=example,dc=com", $info)){       echo "条目属性添加成功~";   }ldap_close($ds);}?> 
修改条目属性<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    // 修改属性时,只需要把想要添加的属性增加到数组中即可。    $info["st"]="jeniess address 111";    // 此方法与增加属性的方法相当   if(ldap_mod_replace($ds, "cn=John jeniess,dc=example,dc=com", $info)){       echo "条目属性编辑成功~";   }ldap_close($ds);}?> 
删除条目属性<?php$ds = ldap_connect("localhost",389) or die("Could not connect to LDAP Server: ");if($ds){    $r = ldap_bind($ds,"cn=admin","gbit");    // 删除条目属性时,需要把它的value值也加进来才行,不然会认为没有此属性。    $info["st"]="jeniess address 111";   if(ldap_mod_del ($ds, "cn=John jeniess,dc=example,dc=com", $info)){       echo "条目属性删除成功~";   }ldap_close($ds);}?> LDAP的数据结构

<div class="table-wrap">标准键值描述ogbit组织 organization的单词首字母oudb center 组织单位 organization unit的两个单词首字母lamoy fujian china城市/所在地(location)uidlinzq用户名。应该是用到验证的用户名,与我们在数据库中用于登陆的用户名一样。czh-cn国家(country)cn林忠青用户全名sn林用户名中的姓stavailable状态,用户的使用状态(status)givenName忠青用户名中的名字employeeNumberA445员工编号employeeType员工类型description描述maillinzq@gbit.com邮箱地址telephoneNumber13799265585电话facsimileTelephoneNumber传真号码mobile移动电话号码pager寻呼机号码photo相片(应该是存放相片的字节流)postalAddress邮政地址postalCode邮政编码homePhone住宅电话号码roomNumber门牌号preferredLanguagezh-cn母语street街道地址entryDNcn=林忠青,dc=example,dc=com唯一标识entryUUIDb2d07f19-0214-425b-a652-409a84ed9ac4全局ID值userPassword e1NTSEF9aXUwSlNPWEEzejRBQlhOemd
0Q3NDaXdENUh1cmo4Y2labTBzeWc9PQ==用户密码
页: [1]
查看完整版本: LDAP使用