LDAP学习笔记 - 基础

LDAP协议

背景

  • X.400
  • X.500(X.519 DAP)
  • LDAP

1、在ITU制定X.400系列Email标准时,标准制定者们发现,需要一种通过网络获取通讯录的标准化方法。这种通过网络访问目录服务的需求,推动了X.500系列标准的开发,尤其是其核心标准X.519 DAP目录访问协议。由于X.500标准严格遵循了OSI七层网络架构,因此实现复杂,效率也成问题,所以业界采用情况不理想。
2、IETF意识到X.500系列标准的问题后,对DAP协议进行了改造和简化提出了轻量级目录访问协议LDAP。LDAP几乎保留了所有的X.519标准要求的功能,但网络协议选择了最常用的TCP/IP协议。

概念

1、LDAP

  • 轻量目录访问协议(Lightweight Directory Access Protocol)的缩写�LDAP标准
  • 实际上是在X.500标准基础上产生的一个简化版本

2、目录服务

  • 什么是目录服务?
    目录服务就是按照树状存储信息的模式
  • 目录服务的特点? 目录服务与关系型数据库不同?
    (1)目录服务的数据类型主要是字符型, 而不是关系数据库提供的整数、浮点数、日期、货币等类型
    (2)目录有很强的查询(读)功能,适合于进行大量数据的检索
    但目录一般只执行简单的更新(写)操作,不支持批量更新所需要的事务处理功能
    (3)它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务回滚(rollback)机制.
    (4)目录具有广泛复制信息的能力,适合于多个目录服务器同步/更新

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

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

目录服务其实也是一种数据库系统,只是这种数据库是一种树形结构,而不是通常使用的关系数据库。目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。
提示:目录服务不适于进行频繁的更新,属于典型的分布式结构。

LDAP是一个目录服务协议,目前存在众多版本的LDAP,而最常见的则是V2和V3两个版本,它们分别于1995年和1997年首次发布。

特点

  • LDAP的结构用树来表示,而不是用表格。
  • LDAP可以很快地得到查询结果,不过在写方面,就慢得多。
  • LDAP提供了静态数据的快速查询方式。
  • LDAP不支持事务、不能进行回滚。
  • Client/Server模型,支持分布式结构。
  • LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议。

其中,对于Client/Server模型,Server 用于存储数据,Client提供操作目录信息树的工具,数据库操作client用于对ldap server库进行操作。
(1)工具:ldapadd, ldapsearch,ldapdelete
实用client:用于将ldap server库在实际工作中使用
(2)工具:radius+ldap, pam+ldap
这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前。

认证机制

  • 基本认证
    通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证
  • SASL(Simple Authentication and Secure Layer)
    一种在网络协议中用于认证和数据安全的框架
  • SSL和TLS
    分布式LDAP 是以明文的格式通过网络来发送信息的,包括client访问ldap的密码。TLS(SSL的后继者,由OpenSSL 包)加密机制来解决这个问题。

端口号

Ldap端口号(显然提供分布式ldap)——389,636
[root@vmmac modules]# cat /etc/services | grep ldap
ldap 389/tcp 明文
ldap 389/udp 明文
ldaps 636/tcp # LDAP over SSL
ldaps 636/udp # LDAP over SSL

基本模型

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

目录树

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

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

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

功能

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

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

OpenLDAP

  • LDAP协议的自由和开源的实现。
  • 并不包括后台数据库存储,OpenLDAP配合Berkeley DB可使其读操作的效率得到很大提高。
    Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤。

安装

  • 通过下载tar包,解压编译安装
  • 通过挂载方式,yum,zypper安装

配置

  • 配置slapd.conf
    --了解LDAP Schema
  • 配置LDIF文件
    --LDIF文本条目格式
    --了解objectClass
    --了解Attribute
    --创建LDIF文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容