LDAP 的全称是 Lightweight Directory Access Protocol,「轻量目录访问协议」。
LDAP 「是一个协议」,约定了 Client 与 Server 之间的信息交互格式、使用的端口号、认证方式等内容。而 「LDAP 协议的实现」,有着众多版本,例如微软的 Active Directory 是 LDAP 在 Windows 上的实现,AD 实现了 LDAP 所需的树形数据库、具体如何解析请求数据并到数据库查询然后返回结果等功能。再例如 OpenLDAP 是可以运行在 Linux 上的 LDAP 协议的开源实现。而我们平常说的 LDAP Server,一般指的是安装并配置了 Active Directory、OpenLDAP 这些程序的服务器。
可以把LDAP理解成存储数据的数据库,但存储格式采用树状存储而非关系型表。
像是其他数据库一样,LDAP也是有client端和server端。
server端是用来存放资源,client端用来操作增删改查等操作。而我们通常说的LDAP是指运行这个数据库的服务器。可以简单理解AD =LDAP服务器+LDAP应用。
LDAP连接服务器的连接字串格式为:ldap://servername/DN
dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=ljheee
其中DN有三个属性,分别是CN,OU,DC
- dn :一条记录的详细位置
- dc :一条记录所属区域 (哪一颗树)
- ou :一条记录所属组织 (哪一个分支)
- cn/uid:一条记录的名字/ID (哪一个节点名字)
具体概念
DIT(Directory Information Tree)目录信息树
LDAP directory servers present data arranged in tree-like hierarchies in which each entry may have zero or more subordinate entries. This structure is called the Directory Information Tree, or DIT.
LDAP 目录服务器将信息以树形的方式组织,每一项都可以包含 0 个或多个子项。这样的结构叫做目录信息树。
目录信息树可以类比我们的「磁盘文件系统目录树」,上面的定义是官方定义,理解起来,DIT 就是指像文件系统一样的目录结构树。
Entry 项
在用户目录中,你看到的每一行,都可以叫做一项,不论是叶子节点还是中间的节点。
Root DSE(Root DSA-specific entry)根节点项
每个 LDAP 服务器必须对外暴露一个特殊的「项」,叫做 root DSE,这个项的 DN 是空字符串。这个项是根节点,描述了 LDAP 服务器自身的信息和能力。例如你可以在下图看到 LDAP 服务器支持的功能,LDAP 协议版本等信息。
dn(Distinguished Name)分辨名
dn 如下图白色方框中的内容,「分辨名」用于唯一标识一个「项」,以及他在目录信息树中的位置。可以和文件系统中文件路径类比。类似于关系型数据库中的主键。dn 字符串从左向右,各组成部分依次向树根靠近。
rdn(Relative Distinguished Name)相对分辨名
Rdn 就是「键值对」,如下图黄色方框中的内容。dn 由若干个 rdn 组成,以逗号分隔。
dc(Domain Component))(域名组成)
将 http://example.comexample.com这样的域名,拆成 dc=example,dc=com 这样的形式。
o(Organization)组织机构、公司
在 dn 中可能会包含 o=公司 这样的组成部分,这里的 o 指代组织机构。
ou(Organization Unit)组织单元、部门
在 dn 中可能会包含 ou=某某部门 这样的组成部分,这里的 ou 指代组织单元。
cn(Common Name)节点名称
节点的标识,类似uid
网友评论