zhaoyu@home:~$

ldap

LDAP(Lightweight Directory Access Protocol)轻型目录访问协议,它不会定义数据如何存储,而只是定义了它如何访问。但是大多数LDAP使用了 数据库作为后端。

LDAP和数据库

LDAP的特点是一次写入,多次读取。存入LADP的数据在访问时应该不会改变。所以LDAP不适合存放银行的交易记录(每次发生交易会改变),而适合存储银行 分支机构信息,开放时间,员工信息等不怎么改变的信息。而数据库适合维护经常变化的数据。
LDAP和数据库一样,也有客户端和服务器,服务器也可以有master和slave。他们之间也会有同步。

LDAP的数据模型

LDAP使用目录将数据表示为一个对象的层级机构。

对象树结构

对象树结构是LDAP的根本,数据被LADP表示为一个层级的对象树,每个对象称为entry。这就让树结构被称为Directory Information Tree(DIT),树的 顶部被称为root。每个entry由一或者多个objectClasses组成,每个objectClasses包含零或者多个attributes。attribute含有name和数据。DIT 的结构如下图所示

  1. 每个Entry由一或者多个ObjectClasses组成。
  2. 每个ObjectClass有一个name和多个attributes
  3. 每个Attributes有一个name,和包含的数据。
  4. 当DIT生产时,每个entry会被唯一标识。

LDAP的实现有微软的Active Directory,开源的OpenLDAP。

LDAP的操作

假如我们需要定位树上的一个节点,它的位置可以如下描述:

树(dc=ljheee)
分叉(ou=bei,ou=xi,ou= dong)
苹果(cn=redApple)

描述出记录的详细位置,如下:

dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=ljheee

上述命令的解释如下:

dn :一条记录的详细位置
dc :一条记录所属区域    (哪一颗树)
ou :一条记录所属组织    (哪一个分支)
cn/uid:一条记录的名字/ID   (哪一个苹果名字)
LDAP目录树的最顶部就是根,也就是所谓的“基准DN"。