openLDAP学习

LDAP协议

目录是一组具有类似属性、以一定逻辑和层次组合的信息。常见的例子是通讯簿,由以字母顺序排列的名字、地址和电话号码组成。
目录服务是一种在分布式环境中发现目标的方法。目录具有两个主要组成部分:

  • 第一部分是数据库,数据库是分布式的,且拥有一个描述数据的规划。
  • 第二部分则是访问和处理数据的各种协议。

目录服务其实也是一种数据库系统,只是这种数据库是一种树形结构,而不是通常使用的关系数据库。目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。
提示:目录服务不适于进行频繁的更新,属于典型的分布式结构。 
      LDAP是一个目录服务协议,目前存在众多版本的LDAP,而最常见的则是V2和V3两个版本,它们分别于1995年和1997年首次发布。

LDAP的基本模型

LDAP的基本模型是建立在“条目”(Entry)的基础上。一个条目是一个或多个属性的集合,并且具有一个全局唯一的“可区分名称”(用dn表示)。与关系型数据(后面简称数据库)进行类比,一个条目相当于数据库中的一条记录,而dn相当于数据库中记录的关键字,属性相当于数据库中的字段。
提示:dn必须是全局唯一的。 
      LDAP中,将数据组织成一个树形结构,这与现实生活中的很多数据结构可以对应起来,而不像设计关系型数据库的表,需要进行多种变化。例如,图1-1所示就是一个树形结构的数据。

在图1-1所示的树形结构中,树的根结点是一个组织的域名(dlw.com),其下分为3个部分,分别是managers、people和group,可将这3个组看作组织中的3个部门,如managers用来管理所有管理人员,people用来管理登录系统的用户,group用来管理系统中的用户组。当然,在该图中还可继续增加其他分支。
      对于图1-1所示的树形结构,使用关系数据库来保存数据的话,需要设置多个表,一层一层分别保存,当需要查找某个信息时,再逐层进行查询,最终得到结果。
      若使用目录来保存该图中的数据,则更直观。图中每个结点用一个条目来保存,不同类型的结点需要保存的数据可能不同,在LDAP中通过一个称为objectClass的类型来控制不同结点需要的数据(称为属性)。
      对于目录中的数据怎样进行引用呢?前面提到过,每一个条目都有一个dn,因为dn是唯一的,因此就可找到需要结点的数据。dn的构造方式如下:
      首先得到条目自己的名称(rdn,称为相对dn),然后开始向上逐级查找父结点,一直到根项为止。例如,对于图1-1中最右下方的结点,其dn为:

Python代码  

  1. dn: cn=ldap, ou=group, o=dlw.com

通过这样的方式,即可唯一标识每一个结点。
      在现实生活中,有很多这种树形结构的数据,如计算机文件系统的目录结构、Internet中的域名等。这些类型的数据,只要不需要频繁的更新,都适合用目录来保存。

LDAP的功能

在LDAP的功能模型中定义了一系列利用LDAP协议的操作,主要包含以下4部分:

  • 查询操作 :允许查询目录和取得数据,其查询性能比关系数据库好。
  • 更新操作 :目录的更新操作没关系数据库方便,更新性能较差,但也同样允许进行添加、删除、修改等操作。
  • 复制操作 :前面也提到过,LDAP是一种典型的分布式结构,提供复制操作,可将主服务器的数据的更新复制到设置的从服务器中。
  • 认证和管理操作 :允许客户端在目录中识别自己,并且能够控制一个会话的性质。

LDAP协议的特点

  • LDAP是一种目录服务,保存在特殊的数据库中,数据的读取速度远高于写入速度。
  • LDAP对查询做了优化,读取速度优于普通关系数据库。
  • LDAP不支持事务、不能进行回滚,需要进行这些操作的应用只有选择关系数据库。
  • LDAP采用服务器/客户端模式,支持分布式结构。
  • LDAP中的条目以树形结构组织和存储。
  • LDAP基于Internet协议,直接运行在简单和通用的TCP/IP或其他可靠的传输协议层上,使连接的建立和包的处理简单、快捷,对于互联网和企业网应用都很方便。
  • LDAP协议简单,通过使用查找操作实现列表操作和读操作。
  • LDAP通过引用机制实现分布式访问,通过客户端API实现分布式操作(对于应用透明),平衡了负载。
  • LDAP实现具有低费用、易配置和易管理的特点,并提供了满足应用程序对目录服务所需求的特性。
时间: 2024-12-28 16:11:04

openLDAP学习的相关文章

OpenLDAP学习笔记(基于OpenLDAP-2.4.x)

1.1.什么是目录服务(Directory Services)? 目录是一个特殊的数据库,专门用于搜索和浏览,另外也支持基本的查询和更新功能. 目录是一个为查询.浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样.目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理.回滚等复杂功能,不适于存储修改频繁的数据.所以目录天生是用来查询的,就好象它的名字一样. 基于X.500 目录访问协议,以及基于X.500基础发展而来的LD

OpenLDAP学习网站

http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html http://jianshi-dlw.iteye.com/blog/1557846 http://www.ibm.com/developerworks/cn/linux/1312_zhangchao_opensslldap/ http://www.ibm.com/deve

OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

导读 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化.目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力.目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略.而目录服务的更新则一般都非常简单.这种目录可以存储包括个人信息.web链结.jpeg图像等各种信息.为了访问存储在目录中的信息,就

PHP 数据库驱动、连接数据不同方式学习笔记

相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.php http://bbs.phpchina.com/thread-184537-1-1.html http://www.metsky.com/archives/660.html http://www.phpbuilder.com/ http://www.w3school.com.cn/php/php

LDAP环境搭建 OpenLDAP和phpLDAPadmin -- yum版

  前言: 前两天公司要求做一个使用LDAP和Kerberos做一个认证授权系统,然后开始学习LDAP相关知识,期间找了不少博客按照步骤来安装,可是很多博客在配置的时候,都会遇到安装过程中一两个问题卡住了,然后就无法进行下去了,坑了我不少时间,其实我只是想先搭建好环境然后来深入浅出的学习,总结这两天的坑,便有了这篇博文,本次主要是快速上手篇,大部分会采用yum方式安装 力求快速上手,尽量少修改官方配置 最小化的环境,为了详细,文章中图片可能会多一点 正式使用还是要基于源码安装,如果你喜欢源码安装

LDAP学习笔记

序:工作中在CA系统中用到了LDAP,使用开源的openldap,今天由于工作需要参加了南大通用的LDAP的基础培训,在此做下学习笔记,加深学习效果. 1,目录服务与LDAP是什么 目录服务是一个特殊的数据库,用来保存描述性的.基于属性的详细信息,支持过滤功能.目录是动态的,灵活的,易扩展的.例如:人员组织管理 ,电话簿,地址簿等. LDAP: LDAP(Lightweight Directory Access Protocol)代表轻量级目录访问协议.有以下几个特点: 1,用于访问目录服务的一

学习Samba加域之大话西游02

当前,几乎所有的公司,组织都会采用 Active Directory为它们的 Windows 桌面和服务器提供身份验证服务.在<Linux 身份验证策略>中,我们讲过让Linux 计算机也采用 Active Directory,这样做得好处显而易见,那就是集中管身份验证. 1.     一些基础概念如Samba和Winbind,PAM, NSS可以参考<Linux 身份验证策略>. 2.     怎么配置 Samba,参考 学习Samba基础命令详解之大话西游01. 3.    

CentOS 6.9下OpenLDAP 的安装与配置

LDAP 基础教程 LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议.LDAP实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统.可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库.身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性. 使用场景 有两个系统A,B:需要把A系统创建的用户同步到B中,而B是个apache 开源项目,

学习Linux的第十八课时

<Linux就该这么学>这本书也将要学习完了,但是仍然感觉自己的知识不是很全面,还需要加倍的努力.这课时主要学习了数据库管理系统MariaDB和openldap(轻量级目录协议).前者和mysql数据库管理系统基本上类似,而且前景也比较开阔.而后者就是RHCA的内容,学习起来感觉有点困难,只能说是勉强能够懂一些知识点,想要学习的更好,还得多看多动手实践,不断地总结,才能有更大的进步. MariaDB数据管理库之所以基本和mysql一样,因为他们是同一个创始人,只是前者被甲骨文公司收购了,从开源