OpenLDAP入门了解学习笔记(一)

Posted by Yancy on 2017-01-26

OpenLDAP入门了解

LDAP概述

我的个人理解:LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,LDAP是一个统一的账号管理认证平台,使用轻量级目录访问协议(LDAP)构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。随着 Linux的不断成熟,已经出现了很多工具用来简化用户帐号信息到 LDAP目录的迁移。还开发了一些工具用来在客户机和目录服务器之间启用加密通信配置,并通过复制提供容错性。本文将向您展示如何配置服务器和客户机在Centos上使用OpenLDAP。

官方解释:

  • 什么是LDAP?

LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

  • 怎么使用LDAP这个术语呢?

在日常交谈中,你可能会听到有些人这么说:“我们要把那些东西存在LDAP中吗?”,或者“从LDAP数据库中取出那些数据!”,又或者“我们怎么把LDAP和关系型数据库集成在一起?”。严格地说,LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议。更为确切和正式的说法应该是象这样的:“通过使用LDAP,可以在信息目录的正确位置读取(或存储)数据”。但是,也没有必要吹毛求疵,尽管表达得不够准确,我们也都知道对方在说什么。

规划 LDAP 目录结构

要真正了解 LDAP,可以从规划一个 LDAP 目录树开始。以下是一个简单的例子。假设有一个名为 Example 的公司(DNS 名为example.com).

在规划过程中,首先要为目录树建立一个“根(root)”。根是目录树的最顶层,之后建立的所 有对象都是基于这个根的,也称为基准 DN。具有三种格式表示。

1
使用 x.500标准格式:o=example,c=CN。 直接使用公司的 DNS 域名:o=example.com。 使用公司的 DNS 域名的不同部分:dc=example,dc=com。

一般而言,推荐使用第三种格式,因为其更利于以后目录树的扩展,若将来 Example 公司合并了 Test 公司,只需要将 Test.com 作为根即可,不需要修改原有的结构。
公司中的部门作为 OU,如“ou=sales”。 OU 是目录树的分枝节点,OU 之下可以包含其他分枝节点或叶子节点。 用户是目录数的最底层(即叶子节点),可以根据用户所在的部门位于不同的 OU 中,使用 uid或 cn 描述都可,如“uid=tom”或“cn=Kelly King”。
因此,可以将 Example 公司的组织结构转化为如图所示的 LDAP 目录树。

图- LDAP 目录树

LDAP的功能

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

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

    LDAP目录的优势

  • LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。

  • LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。

LDAP协议的特点

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