1、1 Schema 介绍schema 类似关系数据库的字段说明,包括字段名,数据类型,数据长度等等。最重要的是 core.schema。为了适应我们的应用,我们要创建自己的 schema 文件。在 LDAP 的 schema 中,有四个重要的元素:1. Objectclassobjectclass 定义了一个类别,这个类别会被不同的目录(在 LDAP 中就是一个 Entry)用到,它说明了该目录应该有哪些属性,哪些属性是必须的,哪些又是可选的。一个 objectclass 的定义包括名称(NAME) ,说明(DESC ) ,类型(STRUCTURAL 或 AUXILARY ,表示是结构型的还是辅
2、助型的) ,必须属性(MUST) ,可选属性( MAY)等信息。$隔开2. Attributeattribute 就是一个上面 objectclass 中可能包含的属性,对其的定义包括名称,数据类型,单值还是多值以及匹配规则等。后面用具体的例子来说明。3. Syntaxsyntax 是 LDAP 中的“ 语法”,其实就是 LDAP 中会用到的数据类型和数据约束,这个语法是遵从X.500 中数据约束的定义的。其定义需要有一个 ID(遵从 X.500)以及说明( DESP)4. Matching Rules是用来指定某属性的匹配规则,实际上就是定义一个特殊的 Syntax 的别名,让 LDAP 服
3、务器可以识别,并对定义的属性进行匹配。所有的 Attribute 可能被放到一起用来组成一个叫做 Object Class 的类型如果你熟悉关系型数据库,那么下面的描述有助于你对 Schema 的理解:Attribute 相当于字段(Field) ,而 Object Calss 相当于表。Sup 表示父类(有点想面向对象编程) ,top 表示没有父类,自己就是顶级。Structual 是存储方式。attributeType 的说明a) 第一个数字表示序号b) Name 表示属性的名字c) Desc 是对该属性的说明文字d) AUXILIARY 说明是辅助型e) 下面的表示匹配方式,substr
4、 是字符串匹配,equality 是相等匹配,ORDERING 是顺序匹配,syntax 表示字段的数据类型f) Single-value 表示这个属性只有一个值,有些属性可以有多个值,比如联系地址。默认是多值。g) 这一串数字 1.3.6.1.4.1.1466.115.121.1.5 就代表了 LDAP 中的字符串,这个数字串的定义和X.500 相关,包括了它的存储方式,所占空间大小等。h) 在 Schema 中 最 难 理 解 的 是 匹 配 规 则 , 这 是 LDAP 中 为 了 加 快 查 询 的 速 度 , 针对 不 同 的 数 据 类 型 , 可 以 提 供 不 同 的 匹 配 方 法 , 如 针 对 字 符 串 类 型 的 相 等 、 模糊 、 大 于 小 于 均 提 供 自 己 的 匹 配 规 则 。自己编写的 schema 文件必须放在 core.schema 的后面,因为2 环境搭建3 Ldap 操作4 Ldap 工具