LDAP模型是由X.500协议中承接来的,是LDAP的组成部分,用来引导客户如何用目录服务。LDAP定义了以下4个模型:
1.信息模型
LDAP信息模型用来表述它中信息的表达方式,包含目、属、值3部分。LDAP用专有逻辑格式存储信息,该模型既不是关系的,也不是完全面向对象的。简单概括为:
①LDAP中信息逻辑上表示为条目。
②条目包含一到多个对象类。
③每个对象类由多个属性组成。
④每个属性包含一到多个同一类型的数值。
⑤对象类和属性的类型定义构成了schema。
条目是目录中最基本的信息单元,可认为是目录树中的一个节点。LDAP客户与服务器用条目共享信息,条目是LDAP服务器的基本元素。执行搜索时服务器返回一组匹配条目,但修改时一次只能影响服务器中的一个条目。条目可被任何支持LDAP的客户端创建,或通过用服务器工具导入,也可由应用程序基于非LDAP数据或用户输入信息创建。
在目录中加一个条目时,该条目一定要包含一个或多个对象类,每个对象类说明了该条目中的必选属性与可选属性。
每个条目均只有一个DN(辨别名),用来标识条目在目录中的位置。
每个条目均是由多个属性构成的,每个属性说明了对象的一个约束。每个属性有一个类型和一个或多个值。该类型说明了含在属性中的信息类型,它的值中有实际数据。
属性有与它关联的语法与匹配规则,属性语法指定可在属性中存放的数据格式,如INTEGER语法允许值中只含数字,不能有非数字字符。
匹配规则有比较值是否相等与对值进行排序两个作用。
2.命名模型
LDAP命名模型定义了怎样在目录系统中组织数据及查找数据。命名模型的灵活性可很方便地以想要的方式组织数据。例如,可把组织中全部人员及所有组放在一个容器下,或按组织结构的地理分布组织目录结构。
LDAP命名模型确定由像倒立的树结构规划条目,与UNIX系统的文件系统特别相似。
在LDAP目录中任意一个节点均可含信息,且也能是个容器,即任意一个LDAP条目都可有子节点。
由命名模型能给出目录中所有条目的仅一个名称,从而可毫无歧义地引用任何一个条目。在LDAP中用DN来引用条目。
在目录中,按目录树从下到上命名条目。因该树形结构决定了从根节点到其他任何节点的路径是唯一的,所以说每一个条目的DN是唯一的。
在DN中最左边的内容叫做相对辨别名(RDN)。对共享同一父节点的全部节点的RDN肯定是只有一个的。若不属于同一个父节点,则节点的RDN可相同。
当特殊字符出现在DN中时,必须转义。
3.功能模型
LDAP功能模型说明了LDAP协议能用的有关操作,来访问在目录树中保存的数据。在LDAP中共有4类10种操作。
①查询类操作,如搜索、比较。
②更新类操作,如添加、删除、修改条目,修改条目名。
③认证类操作,如绑定、解绑定。
④其他操作,如放弃与扩展。
4.安全模型
安全模型给出一个框架,使目录中的信息不被非法访问。LDAP中的安全模型主要由身份认证、安全通道和访问控制实现。
LDAP是面向连接的协议,在对LDAP目录操作前,LDAP客户端一定要获得一个到LDAP服务端的连接,在此过程中要验证LDAP客户端的身份,该过程可以认为是用户绑定。
LDAP Y2只满足简单的密码验证。LDAP V3做到了SASL安全框架,它向多种验证协议给了一种标准的验证方法,对不一样的验证系统,可达到特定的SASL机制。
在LDAP中给出了基于SSL/TLS的通信安全保障。SSL/TLS基于PKI信息安全技术,LDAP由StartTLS方式开启TLS服务,可提供通信中的数据保密性、完整性保护;由强制客户端证书认证的TLS服务,也可双向验证客户端身份与服务器端身份。
在用户验证完成后,可给该用户分配附加的权限。比如,一些用户只可查看特定的条目,但不能修改;一些用户可查看且修改全部的条目等。这一过程可认为是访问控制。