LDAP简述及统一认证说明

1. LDAP简述

1.1. LDAP概念

  • 轻型目录访问协议(Lightweight DIrectory Access Protocol),LDAP是一种通讯协议,LDAP能够支持TCP/IP。协议就是标准,在这套标准之下,AD(Active Directory)是微软实现的一套产品。可以把AD理解成是个的数据库,也有很多人直接把LDAP说成数据库(可以把LDAP理解成一种树形结构的数据库)。LDAP也是有服务端和客户端。服务端是用来存放资源,客户端用来进行增删改查等操作。
  • LDAP的存储是树形结构的,数据存储在叶子节点上,因此LDAP的应用中主要使用其进行查询,插入等变更操作效率相对较低。看看下面的例子:

LDAP里定义一个记录的位置:树(dc=main) 分支(ou=o1,ou=oo1,ou=ooo1) 节点(cn=node)
dn:cn=main,ou=o1,ou=oo1,ou=ooo1,dc=node

  • ou会有多个值,从树根到达node的位置,可能要经过好几个分支,所以ou可能有多个值,关于dn后面一长串,分别是cn,ou,dc;中间用逗号隔开。
LDAP 树形数据库如下:
dn :一条记录的详细位置
dc :一条记录所属区域 (哪棵树)
ou :一条记录所属组织 (哪个分支)
cn/uid:一条记录的名字/ID (哪个节点)
LDAP 目录树的最顶部就是根,也就是所谓的 "基准DN"。

1.2. LDAP应用场景

  • 由于使用树形结构存储数据,因此查询效率更高(参考关系型数据库索引的实现原理:B树/B+树)在某些特定的场景下,使用树形数据库更理想。例如:需要储存大量的数据,而且数据比较稳定,不需要太频繁的修改,可以满足快速的查找,与传统的关系型数据库相比,LDAP除了快速查找的特点,它还有很多的运用场景,比如域验证等。

1.3. LDAP常见目录树结构设计

  • LDAP的目录树根一般定义为国家(c=CN)或者域名(dc=com),其次往往定义一个或者多个组织(organazation, o)或组织单元(oragnazation unit , ou),一个组织单元可以包含员工、设备(计算机/打印机)相关信息。

例如:uid=babs,ou=People,dc=example,dc=com.
LDAP简述及统一认证说明

假设域名为foobar.com,这个域名就能转化为这个DN:dc=foobar,dc=com
LDAP简述及统一认证说明
如果foobar.com与wocket.com和gizmo.com合并,则以上的目录结构就可以适应这种突然的变化,而无需重新规划,在dc=com下面添加dc=wocket和dc=gizmo两个条目即可。
LDAP简述及统一认证说明
初始目录结构设置的越好,后续扩展时需要改动的就越少,通常情况分布均匀层次较浅的结构工作的最好
LDAP简述及统一认证说明

2. LADP做统一认证

LDAP简述及统一认证说明
统一身认证改变了原有的认证策略,需要进行认证的应用都通过LDAP进行统一认证,在统一认证之后,用户的所有信息都存储在AD Server中。终端用户在需要使用内部服务的时候,都需要通过AD服务器的认证。
LDAP简述及统一认证说明
上图中展示的架构是LDAP进行统一身份认证的一般配置情况,LDAP Client指各种需要身份认证的软件,例如Apache、Proftpd和Samba等。LDAP Sever指的是实现LDAP协议的软件,例如OpenLDAP等。DataStorage指的是OpenLDAP的数据存储,如关系型数据库(MySQL)或查询效率更高的嵌入式数据库(BerkeleyDB),甚至是平面文本数据库(—个txt的文本文件)。可见,OpenLDAP软件只是LDAP协议的一种实现形式,并不包括后台数据库存储。但在很多时候管理员经常将LDAP Server和DataStorage放在同一台服务器,这样就产生了人们通常所说的“LDAP数据库”。虽然后台数据库(backend)可以是多种多样,但LDAP协议还规定了数据的树状存储方式,与DNS类似。

上一篇:Python编写程序,生成一个包含 20 个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。


下一篇:域控制器简介