关于LDAP协议
什么是LDAP协议?
LDAP,全称为轻量级目录访问协议,是一项开放协议,用于通过分层目录结构对数据进行存储与检索。LDAP是一种灵活得解决方案,适用于定义各类条目及相关性质。OpenLDAP项目是实现了LDAP协议的开源软件。
基本LDAP数据组件
属性(Attribute)
LDAP系统中的数据主要以被称为属性得元素形式存储。属性在本质上属于健-值对。与其它系统不同,其中的健名称由为条目选定得objectClass进行预定义。另外,属性中的数据必须匹配属性初始定义内所定义得类型。属性不是随便定义的,需要符合一定规则,而这个规则可以通过schema制定。
条目(Entry)
单凭属性本身没有多少作用,我们必须将其与其它事物进行关联。在LDAP中,我们在条目内使用属性。条目基本上相当于属性与一条用于描述事物得名称得集合。条目也叫记录项,是LDAP中最基本的颗粒,就像字典中的词条,或者是数据库中的记录。通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。一个Entry就是一条记录,是LDAP中一个基本的存储单元。也可以看作是一个DN和一组属性的集合。
dn:每一个条目都有一个唯一的标识名
rdn:一般指dn逗号最左边的部分
Base DN:LDAP目录树的最顶部
DIT
DIT代表的是与文件系统类似得一种组织化结构,其中每个条目有且只有一个父条目,其下则可能有任意数量子条目。
定义LDAP数据组件
属性Attribute定义
属性定义必须注明属性名称、任何其它能够用于引用该属性得名称、可以输入的数据类型以及其它各类元数据。该元数级能够描述此属性,告知LDAP如何对属性值进行排序或比对,同时告知其如何将其与其它属性相关联。
幸运的是,大多数情况下我们无需自行定义属性,因为大部分LDAP实现方案中已经提供各类最为常用得属性,其它方案也能够导入现成属性。
ObjectClass定义
各个属性被收集在objectClass条目中。ObjectClass属于相关属性得简单分组,可用于描述特定事物。
对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类。通过对象类可以方便的定义条目类型。每个条目可以直接继承多个对象类。对象类有三种类型:结构类型,抽象类型和辅助类型。结构类型是最基本的类型,它规定了对象实体的基本属性,每个条目属于且仅属于一个结构型对象类。抽象类型可以是结构类型或其它抽象类型父类,它将对象属性中共性的部分组织在一起,称为其它类的模板,条目不能直接集成抽象型对象类。辅助类型规定对象实体的扩展属性。每个条目至少有一个结构性对象类。
Schema
objectClass定义与属性定义两者由一套架构组合在一起,这个就是schema。就是对象类,属性分别约定了条目、属性、值,所有的这些构成了模式——对象类的集合。
LDAP特点
LDAP的结构用树表示,而不是用表格。
LDAP可以很快地得到查询结果,不过在写方面,就慢得多
LDAP提供了静态数据得快速查询方式
Client/server模型:Server用于存储数据,Client提供操作目录信息树的工具
LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议