关于ZAKER 一起剪 合作 加入

AD 域安全协议(三)LDAP

前言

LDAP 是一种目录访问协议,它规定了以树状结构的方式来存储和访问数据。

然而协议是抽象的,要产生具体的功效,必须在应用中实现,比如 AD 域服务就实现了 LDAP 协议。

LDAP 最明显的优势就是读取速度快,拥有极高的搜索效率。

可以用一个例子来体会这种速度:当我们进入一个迷宫,需要寻找出口。

普通数据库:一条路一条路地尝试,直到尝试出能走出去的路线,再将这条路线返回给我们。

LDAP:相当于拿了一张解密地图,上面清清楚楚写着哪条路能直接到达出口。

很明显,普通数据库也许要尝试十多次才能找到正确的路线,但是 LDAP 只要一次就能找到,搜索性能上孰优孰劣一目了然。

除此之外,LDAP 允许灵活地添加数据,并且采取【客户端 - 服务端】的方式提供服务,即在服务端存储数据,在客户端操作数据,但相比于关系型数据库,它不支持事务、回滚等操作。

LDAP 之所以拥有这些特点,主要基于它的数据存储方式——树形目录,即在系统中构建一棵树,在树叶上存储数据。接下来我们通过在系统中搭建一棵树的流程,详细介绍 LDAP 原理。

# LDAP 原理 #

构建一棵树,首先我们需要确定这棵树长在哪里,也就是树根是什么。

LDAP 中将域名拆分开,形成树根,系统中的树根叫做 DC,比如在 test20.local 域下,树根为 DC=test20,DC=local。

相比于直接用 test20.local 做树根,这样的组织方式让整体结构更清晰,同时便于扩充域。假如有另一个叫 test20.local2 的域要加入这棵树,那么我们就可以直接将 DC=local2 放到 DC=test20 下面,而不必重新构建一棵叫 test20.local2 的树,如下图所示。

树根有了,下一步,我们开始构建树枝。

LDAP 中,树的枝干通常是由组织单位(OU)来充当,主要是区分数据所属范围。比如有一个叫张三的用户在 local 下的信息部,那么张三所属枝干就是 OU= 信息部。

在这里,LDAP 有一个明显优势,就是每一个树枝都可以被单独放在一个服务器中进行管理。这不仅有利于减轻服务器负担,也方便具有分公司的企业在不同地域部署服务器。

到最后,只要把所有的数据制作成树叶,挂到树枝上去就行了。

制作树叶有两个关键的地方,一个是树叶名字,另一个是树叶内容。

LDAP 规定的名字结构由两部分组成,一部分是直接名称,即 CN,一部分是相对名称,即 RDN。

CN 是唯一的,用来区分不同树叶。比如用户张三注册时,CN= 张三。

而 RDN 是指从树根到树叶经过的所有枝干,用来标识树叶位置。如果 Sam 用户在市场运营部,他的 RDN 就是 DC=test20,DC=local,OU= 信息部。

RDN 加 CN 就形成了数据名称,用 DN 来表示,张三的 DN 就是:DC=test20,DC=local,OU= 信息部,CN= 张三。

正是这样的名字结构提升了 LDAP 的读取效率,因为 DN 就是那张标识了出口路线的地图,只要我们顺着名称往下寻找,就能直接找到所需数据。

树叶内容主要是描述这片树叶的颜色、形状、气味等独特的信息,对应到系统中,就是资源的属性,比如用户的属性有性别,身份证号,电话等,计算机的属性有操作系统类型、账号密码等。

一片树叶名称加上它的属性就形成完整的数据信息,在系统中被称为条目。

每片树叶有它单独的条目,如果要增加新的信息,只需要在条目中添加一个属性,不会影响其它的条目。而在关系型数据库中,增加信息需要改变表结构,相比来说,困难很多。

为了提高效率,LDAP 还提供了一种比较方便的做法,就是给具有相同属性类型的资源制定模板,在注册时直接往模板中填充信息就能创建一片树叶,这就是对象类。

比如说系统中有一个对象类叫用户,它的属性包括姓名、电话、邮箱。那么我创建用户时,必须填写这三项才能创建成功。

系统中的树还有一个不一样的地方,就是各种不同品种的树叶可以长在一棵树上,这个不同品种的树叶是由系统中多种多样的资源对象来充当的,所以我们可以想象一棵长满了用户、计算机和打印机的树。

除此之外,它还可以允许杂交树叶的存在。这是因为系统中的某个资源对象可能同时具有多个对象类的属性,比如系统管理员,它就同时具有用户和管理员的属性。

到此,在 LDAP 协议的 " 指导 " 下,我们就成功在系统中构建好一棵完整的树了。

# 结语 #

LDAP 常用来构建统一的账号管理、身份验证平台,实现 sso 单点登录机制。此外,它还有访问控制和数据复制的功能,能够帮助增强系统安全性和容灾性。

但同时,LDAP 协议也存在一些安全问题,比如 LDAP 注入造成的恶意 LDAP 查询。在工作生产中,同样需要我们多加防范。

以上就是 LDAP 协议的全部内容,下一篇文章中,我们将继续为大家介绍 RPC 协议。

以上内容由"嘶吼RoarTalk"上传发布 查看原文
一起剪

一起剪

ZAKER旗下免费视频剪辑工具

一起剪