六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 129|回复: 0

LDAP使用

[复制链接]

升级  1.4%

153

主题

153

主题

153

主题

进士

Rank: 4

积分
507
 楼主| 发表于 2013-2-7 01:37:40 | 显示全部楼层 |阅读模式
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"][0]);        }    }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"][0]="John jeniess";    // 添加姓氏    $info["sn"][0]="jeniess";    // 添加对象类,此对象类用描述该条目的性质。    $info["objectClass"][0]="top";    $info["objectClass"][1]="inetOrgPerson";     $info["objectClass"][2]="organizationalPerson";    $info["objectClass"][3]="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"][0]="John jeniess1";    // 添加姓氏    $info["sn"][0]="jeniess1";    // 添加对象类,此对象类用描述该条目的性质。    $info["objectClass"][0]="top";    $info["objectClass"][1]="inetOrgPerson";    $info["objectClass"][2]="organizationalPerson";    $info["objectClass"][3]="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"][0]="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"][0]="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"][0]="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==用户密码
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表