ldap协议资料收集
区分名(DN,Distinguished Name)?
在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 或 其他自定义的值)
?
*常用关键字及其对应的含义
【dc】-- Domain Component-- 域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com
【uid】-- User ID-- 用户ID,如“tom”
【ou】-- Organization Unit-- 组织单位,类似于Linux文件系统中的子目录,是一个容器对象,组织单位可以包含其他各种对象(包括其他组织单元),如“market”
【sn】-- Surname-- 姓,如“Johansson”
【dn】-- Distinguished Name-- 唯一辨别名,类似于Linux文件系统中的绝对路径,每个对象都有一个唯一的名称,如“uid=tom,ou=market,dc=example,dc=com”,在一个目录树中DN总是唯一的
【rdn】-- Relative dn-- 相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=ton”或“cn=Thomas Johansson”
【c】-- Country -- 国家,如“CN”或“US”等
【o】-- Organization -- 组织名,如“Example,Inc.”
?
?
假设有一个名为Example的公司(DNS名为example.com),其组织结构如下:
???? (1)首先要为目录树建立一个“根(Root)”。根是目录树的最顶层,后面建立的所有对象都是基于这个根的,所以它也称为基准DN。它可以有3种格式表示。
???? *使用X.500标准格式:o=example,c=CN。?
???? *直接使用公司的DNS域名:o=example.com。
???? *使用公司的DNS域名的不同部分:dc=example,dc=com。
???? 第3种格式更利于以后目录树的扩展,如将来Example公司合并了abc公司,之需要将dc=com最为根即可,不需要修改原有的结构。
???? (2)公司中的部门作为OU,如“ou=market”。OU是目录树的分枝节点,下面可以包含其他分枝节点或叶子节点。
???? (3)用户是目录树的最底层(即叶子节点),可以根据用户所在的部门将其放置在不同的OU中,使用uid或cn描述都可以,如“uid=tom”或“cn=Thomas Johansson”。
?
?
?
Php如何操作LDAP