一、简介
RFC2251:Lightweight Directory AccessProtocol(v3)
RFC2252:Lightweight Directory AccessProtocol(v3):Attribute Syntax Definitions
RFC2253:Lightweight Directory AccessProtocol(v3):UTF-8 String Representation of Distinguished Names
RFC2254:The String Representation of LDAPSearch Filters
RFC2255:The LDAP URL Format
RFC2256:A Summary of the X.500(96) UserSchema for Use with LDAPv3
RFC2829:Authentication Methods for LDAP
RFC2830:Lightweight Directory AccessProtocol(v3):Extension for Transfort Layer Security
RFC3377:Lightweight Directory AccessProtocol(v3):Technical Specification
1、 LDAP适用于保存“More Read,Less Write”的数据;而Database对数据读写率没有特别要求。
2、 LDAP以DIT(Directory Information Tree)的形式存储,各个节点(Entry)之间的关联比较单一;而Database是以表结构的方式存储,各表之间可以任意关联。
二、描述
1、 信息模型(Information Model)----描述了LDAP信息的基本元素
LDAP信息由数据(Entry)组成。下图展示了一个LDAPDirectory的示例,每一个节点都是一个Entry:
Entry由多个属性(Attribute)组成,每一个属性(Attribute)定义了Entry的一个属性(类似于Database中表的Field)。而属性(Attribute)中,包含了一个类型 (Type)和一个或多个属性值(Values)(Type相当于列的类型、Values相当于列的值)。类型(Type)包含一个语法(Syntax)和多个规则(Matching rules)。语法 (Syntax)指定该属性(Attribute)的类型(如:整形、字符串等),规则(Matching rules)则指明该属性值(Values)的比较、排序的方式。
属性(Attribute)的示意图如下:
另外,还有一个专业名称Schema,它表示所有属性(Attribute)的集合。
2、 命名模型(Naming Model)----描述了数据的组织方式
LDAP数据以树形结构存储,每个节点(Entry)都有一个唯一命名(DN)(相当于Database数据中的主键)。
RDN与DN的区别是:DN在整个目录中是唯一的,而RDN只是在本级中必须唯一。
3、 功能模型(Functional Model)----描述LDAP可以进行的操作
LDAP功能分为几种类型:Interrogationoperations、Updateoperations、Authenticationand control operations和Extended operations。包括:search、compare、 add、delete、modify、rename(modify DN)、bind、unbind、abandon这些操作。
4、 安全模型(Security Model)----描述LDAP安全相关的内容
包括三种:身份认证、通讯安全、访问控制。
身份认证,有三种认证机制:匿名、基本认证(密码)和SASL(Simple Authentication And SecureLayer)认证。
通讯安全,提供了基于SSL/TLS的安全保障。
访问控制,允许设置指定节点(Entry)的操作权限。
三、参考
参考勇敢的心的BLOB:http://www.blogjava.net/liyong/archive/2007/02/09/98942.html
参考书:Understanding And Deploying Ldap Directory Services, 2Nd Ed