---------------------------------------------------------------------项目用到,备忘用------------------------------------------------------------------
LDAP是轻量目录访问协议,英文名称 Lightweight Directory Access Protocol,他是基于X.500标准的(X.500是一个将局部名录服务连接起来,构成全球分布式的名录服务系统的协议。X.500组织起来的数据就象一个很全的电话号簿或者说一个X.500系统象是一个分门别类的图书馆。而某一机构建立和维护的名录数据库只是全球名录数据库的一部分。)。简单的说,LDAP就是一个得到关于人或者资源的集中,静态数据的快速方式。
LDAP和关系数据库是两中不同层次的概念,LDAP是一个比关系数据库抽象层次更高的存储概念,域关系数据库的查询语言sql属同一级别。LDAP的查询速度要比关系数据库快的多, 更新就慢得多了。就象Sybase、Oracle、Informix或Microsoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和
更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个 hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。
LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
LDAP数据结构
LDAP是实现了指定的数据结构的存贮,它包括以下可以用关系数据库实现的结构要求:树状组织、条目认证、类型定义、许可树形记录拷贝。
1 树状组织
无论是X500还是LDAP都是采用树状方式进行记录。每一个树目录都有一个树根的入口条目,子记录全部是这一根条目的子孙。这是目录与关系数据类型最大的区别(关系数据库的应用结构也可实现树状记录)。因此,把目录看作是更高级的树状数据库也未尝不可,只不过除此外,它不能实现关系存贮的重要功能。
2 条目和条目认证
LDAP是以条目作为认证的根据。ROOT的权限认证与目录本身无关,但除此外所有条目的认证权限由条目本身的密码进行认证。LDAP可以配置成各种各样不同的父子条目权限继承方式。每一个条目相当于一个单一的平面文本记录,由条目自身或指定的条目认证进行访问控制。因此,LDAP定义的存贮结构等同于一批树状组织的平面数据库,并提供相应的访问控制。条目中的记录以名-值对的形式存在,每一个名值对必须由数据样式schema预定义。因此,LDAP可以看作是以规定的值类型以名值对形式存贮在一系列以树状组织的平面数据库的记录的集合。
3 数据样式(schema)
数据样式schema是针对不同的应用,由用户指定(设计)类和属性类型预定义,条目中的类(objectclass)和属性必须在在LDAP服务器启动时载入内存的schema已有定义。因此,AD活动目录中的条目记录就必须符合Active Directory的schema中。如果已提供的schema中的定义不够用,用户可以自行定义新的schema.
在http://ldap.akbkhome.com/index.php中可以看到常用的schema。
4 对象类型(objectClass)
因为LDAP目录可以定制成存储任何文本或二进制数据,到底存什么要由你自己决定。LDAP目录用对象类型(objectclass)的概念来定义运行哪一类的对象使用什么属性。在几乎所有的LDAP服务器中,你都要根据自己的需要扩展基本的LDAP目录的功能,创建新的对象类型或者扩展现存的对象类型。条目中的记录通过objectclass实现分类,objectClass是一个继承性的类定义,每一个类定义指定必须具备的属性如某一条目指定必须符合某个类型,则它必须具备超类所指定的属性。
通过objectclass分类,分散的条目中的记录就实际上建立了一个索引结构,为高速的读查询打下了基础。Objectclass也是过滤器的主要查询对象。
5 过滤器和语法
LDAP是一个查询为主的记录结构,无论是何种查询方式,最终都由过滤器缺点查询的条件。过滤器相当于SQL中的WHERE子句。任何LDAP的类过滤和字符串都必须放在括号内,如(objectclass=*),指列出所有类型的记录(不过分类)。
可以使用=,>=,<=,~=(约等于)进行比较,如(number<=100)。合并条件是最怪的,必须把操作符放在两个操作对象的前面而不是中间,单一操作对象用括
号括起来。如
l A与B,不是A&B,而是(&(A)(B))。
l 或使用"|"表示;
l 非使用"!"表示。
l 对于"与",或"或"在操作符后可以跟多个条件表达式,但非后则只参是单个表达式。
6 LDIF交换文件
LDIF是LDAP约定的记录交换格式,以平面文本的形式存在,是大部分LDAP内容交换的基础,如拷贝、添加、修改等操作,都是基于LDIF文件进行操作。
7 JAVA或CORBA对象串行化存储
网络高效率的访问加上JAVA的跨平台能力,当把JAVA或CORBA对象串行化后存储到LDAP目录上时,可以产生非同一般的集成效果--实际上,这正是EJB和.NET的网络定位基础技术。
使用JAVA或CORBA对象存储时,必须首先让LDAP服务支持该对象定义,也就是说包含qmail.schema或corba.schema。
JAVA必须存储在objectclass=javacontainer的条目中,而且必须带有cn属性,这意味着除非该JAVA类专门实现了DirContext接口,对于大多数JAVA类来说,只能采用DirContext代替Context实现bind的添加操作。取出JAVA类相对要简单得多,只需使用context.lookup()获得该对象的句柄,然后强制造型成所需要的对象就可以了,
如:
Person p=(Person)contex.lookup("cn=elvis,dc=daifu,dc=com");
这个句法在EJB的程序中,是经常用到的。
使用CORBA的跨语言性质,使用CORBA存储对象比JAVA更加诱人,这意味着所存储的对象可以被任何语言编写的客户端访问。其实,微软的.net说到底也非常简单,无非是把COM对象存储到微软自家的目录ActiveDirectory里面,从而可以在网络范围内使用任何微软平台的语言进行对象访问而已。众所周知,COM就是与CORBA相对的微软规范。
使用对象串行化技术,可以把常用对象如某个打印机,某个客户直接存储到LDAP中,然后快速获取该对象的引用,这样,就比把对象信息存储到关系数据库中,分别取出属性,然后再初始化对象操作的做法,效率要高得多了。这是LDAP目前比普通关系数据库存储要优秀的地方,而对象数据库还不成熟。
---------------来自网络
分享到:
相关推荐
【LDAP简介】 LDAP,全称为Lightweight Directory Access Protocol,是一种轻量级的目录访问协议,设计目的是为了在互联网上提供高效、简洁的方式来访问和管理分布式目录信息。它源于X.500标准,但简化了许多复杂的...
### LDAP协议概览 #### 一、协议概述 LDAP,全称Lightweight Directory Access Protocol(轻量级目录访问协议),是一种广泛应用于网络环境中的目录访问协议。目录在计算机科学中被视为一种特殊形式的数据库,主要...
**LDAP简介** LDAP,全称为轻量级目录访问协议(Lightweight Directory Access Protocol),是一种用于访问和管理分布式目录服务的标准网络协议。它主要用于存储和检索用户、组织、资源等信息,广泛应用于身份验证...
**LDAP简介** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于存储和检索用户账户、联系人信息、配置数据等结构化信息。它基于X.500标准,但设计得更为简单且适合互联网环境。LDAP...
浅谈Spring Security LDAP简介 本资源主要介绍了Spring Security LDAP的基本概念和配置方法,通过示例代码和详细的解释,帮助读者更好地理解和应用Spring Security LDAP。 一、Spring Security LDAP概述 LDAP...
1. **LDAP简介** 2. **Python LDAP模块介绍** 3. **Python脚本配置与执行** 4. **脚本解析** - 连接LDAP服务器 - 搜索过滤器 - 处理搜索结果 - 错误处理 5. **最佳实践与优化建议** #### 1. LDAP简介 轻量目录...
1. LDAP简介: LDAP是一种应用层协议,主要用于存储和检索分布式身份信息。它基于X.500标准,但设计得更加轻量级,适用于互联网环境。LDAP目录通常用于存储用户账户、组信息和其他元数据,便于网络服务进行认证和...
LDAP简介** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,主要用于组织和检索分布式信息。它源于X.500标准,但比X.500更为简洁,并允许根据需求进行定制。与X.500不同,LDAP支持TCP/...
**LDAP简介** Lightweight Directory Access Protocol(轻量级目录访问协议)是互联网上广泛使用的协议,用于访问和管理分布式目录服务。它提供了一种标准的方法来存储、查询和更新各种网络资源的信息,如用户账户...
#### 一、LDAP简介 LDAP (Lightweight Directory Access Protocol) 是一种基于X.500标准的轻量级目录访问协议,它被广泛应用于构建目录服务,用于存储组织的人员、设备和其他资源的信息。在大数据场景中,LDAP通常被...
**LDAP简介** LDAP是一种开放标准的目录访问协议,用于存储和检索分布式网络中的结构化数据。它设计的目标是快速、高效地查找和管理网络资源,如用户账户、组、电子邮件地址、打印机等。LDAP目录服务使用层次结构的...
#### 一、LDAP简介与应用 - **LDAP**(Lightweight Directory Access Protocol)是一种基于TCP/IP的应用层协议,用于访问和管理目录服务。它最初是为了替代X.500而设计的一种轻量级目录访问协议。 - **LDAP**主要...
**一、LDAP简介** LDAP(Lightweight Directory Access Protocol)是一种开放标准的网络协议,用于访问和管理分布式目录服务。它主要用于存储和检索用户账户、组织结构、联系人信息等结构化数据。LDAP目录服务在企业...
**Spring LDAP 简介** Spring LDAP 是一个用于简化Java应用程序与LDAP(轻量级目录访问协议)交互的框架。它构建在Spring框架之上,提供了一种声明式的方式来处理 LDAP 查询,使得开发者能够更容易地集成LDAP服务到...
**LDAP 简介** LDAP 是一种目录服务协议,用于存储和检索用户、组、资源等信息。它通常用作企业的身份验证和授权中心,为多个应用提供单一登录(Single Sign-On, SSO)能力。通过 LDAP,用户可以在不同的系统中使用同...
**LDAP简介** LDAP是一种开放的标准,用于存储和检索分布式目录信息。它基于X.500标准,但设计得更轻便,适合互联网环境。通过使用TCP/IP协议,LDAP可以在网络上快速查找和管理用户账户、组、资源等信息。LDAP目录...
LDAP简介** LDAP是一种应用广泛的目录访问协议,常用于存储和查询组织结构数据。它以树形结构组织信息,支持快速查找和检索用户账户、组成员关系、联系人信息等。LDAP服务器通常用于身份验证、授权和信息共享,...
#### LDAP简介 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种基于TCP/IP的应用层协议,用于访问和管理分布式目录服务。最初由Tim Howes等人在1993年设计,作为X.500目录服务的轻量化版本...
1. LDAP简介:LDAP是一种轻量级目录访问协议,用于存储和检索分布式目录服务中的数据。它提供了一种标准的方式来管理和访问用户信息,如用户名、密码、联系信息等。 2. Spring Security LDAP:Spring Security LDAP...