LDAP轻量目录访问协议详解
1.LDAP简介
LDAP(Lightweight Directory Access Protocol,轻量目录访问协议),是在X.500标准基础上产生的一个简化版本轻量目录访问协议,他是用来访问目录数据库的一个协议。LDAP目录服务是由目录数据库和一套访问协议组成的系统,通俗点可以把LDAP协议理解为一个关系型数据库,其中存储了域内主机的各种配置信息,当我们想要查找管理某个对象时,就可以通过LDAP层次结构查找实现,如图1-1所示。
图1-1 LDAP协议层次结构图
2.LDAP协议组成
LDAP协议是为了实现目录服务信息访问而构建的一种协议,其协议由<LDAP> 、<Domain>、<DN>三部分组成,客户端通常会通过LDAP协议发起会话连接到请求服务器,在请求时客户端无需等待服务器的响应即可发送下一条的请求,服务器会通过请求顺序对客户端进行依次响应,如下是LDAP协议的格式以及组成部分。
LDAP://DomainIP/DN
1)<LDAP> :LDAP协议。
2)<Domain>:所要连接的域控制器的IP或者域名。
3)<DN>:标识名称,用户标识对象在活动中的完整路径。
3.LDAP目录结构
LDAP目录服务是由目录数据库和一套访问协议组成的系统,Microsoft Active Directory其实是微软对目录服务数据库的实现,Active Directory里面存放着整个域里的所有配置信息(用户、计算机等)而LDAP则是对整个目录数据库的访问协议,如图1-2所示,为LDAP中的目录结构组织图。
1)目录树:整个目录信息集可以表示为一个目录树,树中每一个节点就是一条条目。
2)条目:条目是具有分辨名DN的属性-值对的集合,每个条目就是一条记录,如上图中每一个圆圈为一条记录。
3)DN:一个条目的分辨名叫做“DN”,“DN”相当于关系型数据库表中的“主键”,通常用于检索。
4)属性:通常用于描述条目的具体信息,例如uid=UserA,ou=sales,dc=example,dc=com, 则它有属性name为User A,属性age为32。
4.LDAP名称路径
通常情况下,Active Directory会利用LDAP命名路径(LDAP naming path)来表明要访问的对象在 Active Directory 所属的位置,以便在客户端在通过LDAP协议访问时能够快速查找到此对象,图1-3为是LDAP名称路径图。
5.DN标识名称
标识名称(Distinguished Names,DN):是对象在Active Directory内的完整路径,DN 有三个属性,分别是 CN(公共通用名称)、OU(组织单位)、DC(域名组件),如下是对DN三个属性的解读,如表1-1所示。
表1- 1 DN标识名称三个属性
属性名 |
英文全称 |
含义 |
---|---|---|
DC |
Domain Component |
DNS域名中的组件,其格式是将一个完整的域名分成几个部分,例如:testfirest.com 分为dc=test firest,dc=com |
OU |
Organizational Unit |
组织单位(可包含其他的组织单位) |
CN |
Common Name |
公共通用名称,一般为用户名或者服务器名 |
如图1-4 所示,这是一个DN标识名称。CN=yunwei01,OU=安全运维组,OU=运维管理部,DC=testfirest,DC=com
完整路径为testfirest.com域中的运维管理部门下面的安全运维组中的用户yunwei01,如图1-5所示。
接下来让我们再介绍几个常见的术语。
- 相对标识名称(Relative Distinguished Name,RDN):类似于文件系统中的相对路径,与目录树结构无关的部分,例如上述路径中的 CN=yunwei01与OU=运维管理部等都是 RDN。
- 全局唯一标识符(Global Unique Identifier,GUID):GUID 是一个128位的数值,系统会自动为每个对象指定一个唯一的GUID。虽然可以改变对象的名称,但是其GUID永远不会改变。
- Base DN:LDAP的数据作为树形结构存储,LDAP 目录树的最顶部就是根,也就是所谓的Base DN,如DC=testfirest,DC=com。
- 用户主体名称(User Principal Name,UPN)其实可以理解成DN的简称,比如yunwei01是属于testfirest.com那么简称就是yunwei01@testfirest.com