• 手机站
  • 收藏
聚培教育网合作机构 > 珠海达内教育
珠海达内教育
400-998-6158
珠海达内教育是国内首家上市IT培训企业。已在中国多个中心城市建立了多家实训中心。
珠海达内教育

用Php怎样操作LDAP

php学习网

更新时间:2021-10-07 浏览:112
核心提示:LDAP是一个用于公布文件目录信息内容到很多不一样資源的协议。一般它都做为一个集中化的详细地址本应用,但是依据策划者的*,它能够做得更为强劲

LDAP是一个用于公布文件目录信息内容到很多不一样資源的协议。一般它都做为一个集中化的详细地址本应用,但是依据策划者的*须,它能够做得更为强劲。

LDAP最基本上的方式是一个数据库连接的规范方法。该数据库查询为读查看作了提升。因而它能够迅速地获得查看結果,但是在其他层面,比如升级,就慢得多。要需注意的是,LDAP一般 做为一个hierarchal数据库查询应用,而不是一个关系型数据库。因而,它的构造用树来表明相比报表好。正由于那样,就不能用SQL句子了。

简易来说,LDAP是一个获得有关人或是資源的集中化、数据格式的迅速方法。

LDAP是轻巧文件目录浏览协议书(Lightweight Directory Access Protocol)的简称,实际上是一话号簿,类似大家所应用例如NIS(Network Information Service)、DNS (Domain Name Service)等互联网文件目录,也类似你一直在花苑中所见到的花草树木。

LDAP是一种独特的数据库查询。可是LDAP和一般的数据库查询不一样,搞清楚这一点是很重要的。 LDAP对查看开展了提升,与写特性对比LDAP的读特性要出色许多。

1.1 LDAP的储存标准

区别名(DN,Distinguished Name)

和大自然中的树不一样,系统文件/LDAP/电话号码簿文件目录的每一片枝干都最少有一个*的特性,这一特性能够协助大家来差别这种枝干。

在系统文件中, 这种*的特性便是含有详细途径的文件夹名称。例如/etc/passwd,该文件夹名称在该途径下是*的。自然我们可以有/usr/passwd, /opt/passwd,可是依据他们的详细途径,他们依然是**的。

在LDAP中,一个条目地区别名字称为“dn”或是称为区别名。在一个文件目录中这一名字一直**的。例如,我的dn是"uid=aghaffar, ou=People, o=developer.ch"。不太可能有同样的dn,可是我们可以有例如"uid=aghaffar, ou=Administrators, o=developer.ch"的dn。这同上边系统文件中/etc/passwd 和 /usr/passwd的事例很相近。

大家有*的特性,在"ou=Administrators, o=developer.ch" 中uid与在"ou=People, o=developer.ch"中的uid。这并不矛盾。

CN=Common Name 为登录名或网络服务器名,最多能够到80字符,能够为汉语;

OU=Organization Unit为机构模块,数最多能够有四级,每级最多32字符,能够为汉语;

O=Organization 为组织名,能够3—64字符长

C=Country为*名,可选,为2字符长

LDAP文件目录以一系列“特性对”的方式来储存纪录项,每一个纪录项包含特性种类和特性值(这与关联型数据库查询用列和行来数据存储结构有压根的不一样)。

mail = testmail@mccc.net

othermailbox = testmailother@mccc.com

givenname = givenname

sn = test sn

特性可加上,下列一个特性务必取值:

objectclass=person (数值:person 或 server 或 organization 或 别的自定的值)

2 PHP(PHP学习培训 php教程 )怎样实际操作LDAP

2.1 Php怎样与LDAP联接和关掉

$ds=ldap_connect("ServerName")

ServerName是LDAP的网络服务器名,

例:

$ds=ldap_connect(“10.31.172.30:1000”)

传参是:true 或 false

关掉联接

ldap_close($ds);

2.2 在php中怎样检索客户信息

$ds=ldap_connect("10.31.172.30:1000");

//*联接上网络服务器

$justthese = array("cn","userpassword",”location”);

//检索涵数中的一个主要参数,规定回到什么信息内容,

//之上传到cn,userpassword,location,这种都规定小写字母

$sr=ldap_search($ds,"o=jite", "cn=dom*",$justthese);

//**个主要参数打开LDAP的编号

//第二个主要参数最基本上的 dn 标准值 , 例:”o=jite,c=cn”

//第三个主要参数 filter 为布林标准,它的英语的语法能够在 Netscape 站在找一份 dirsdkpg.pdf 档案资料.

// ’o’为组织名,’cn’ 为登录名,登录名可以用使用通配符 ’*’

echo "domadmin姓式有".ldap_count_entries($ds,$sr)." 个

";

//ldap_count_entries($ds,$sr)传到纪录数量

$info = ldap_get_entries($ds, $sr);

//LDAP的所有传到材料

echo "材料传到 ".$info["count"]."笔:

";

for ($i=0; $i<$info["count"]; $i ) {

echo "dn为:". $info[$i]["dn"] ."

";

echo "cn为:". $info[$i]["cn"][0] ."

"; //表明登录名

echo "email为:". $info[$i]["mail"][0] ."

"; //表明mail

echo "email为:". $info[$i][“userpassword"][0] ."

"; //表明数据加密后的登陆密码

}

2.3 加上客户

$ds=ldap_connect("10.31.172.30:1000");

//*联接上网络服务器

$r=ldap_bind($ds,"cn=domadmin,o=jite","password");

//系住一个管理人员,有写的管理权限

// cn=domadmin,o=jite次序不可以变

$info["cn"]="aaa"; //选填

$info["userpassword"]="aaa";

$info["location"]="shanghai";

$info["objectclass"] = "person"; //选填person为本人,也有server…

ldap_add($ds, "cn=".$info["cn"].",o=jite", $info);

ldap_unbind($ds);

//撤销关联

ldap_close($ds);

//关掉联接

2.4 清理数据

$ds=ldap_connect("10.31.172.30:1000");

//*联接上网络服务器

ldap_bind($ds,"cn=domadmin,o=jite","password");

//关联管理人员,有删掉的管理权限

$dn="cn=dingxf,o=jite";

ldap_delete($ds, $dn);

//清理数据

ldap_unbind($ds);

//撤销关联

ldap_close($ds);

//关掉联接

2.5 改动客户材料

$ds=ldap_connect("10.31.172.30:1000");

//*联接上网络服务器

ldap_bind($ds,"cn=domadmin,o=jite","password");

//关联管理人员,有改动的管理权限

$dn="cn=dingxf,o=jite";

//客户dn

$info["userpassword"]="aaa"; //要改动的信息内容,放到二维数组自变量中

$info["location"]="shanghaisdaf";

ldap_modify($ds, $dn , $info);

//改动涵数

ldap_unbind($ds);

//撤销关联

ldap_close($ds);

//关掉联接

2.6 账号登录认证

$ds=ldap_connect("10.31.172.30:1000");

//*联接上网络服务器

if (ldap_bind($ds,"cn=dingxf,o=jite","dingxf")){

echo "验证成功";

}else{

echo "认证不通过";

}

ldap_unbind($ds);

//撤销关联

ldap_close($ds);

//关掉联接

更多>同类资讯
更多>相关课程
顶部