【安全科普】AD域安全协议(三)LDAP - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【安全科普】AD域安全协议(三)LDAP

中安网星 资讯 2021-10-27 16:14:40
214524
收藏

导语:中安网星域内协议科普系列第三篇

前言

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

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

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

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

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

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

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

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

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

# LDAP原理 #

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

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

1633921602_6163aa429feac0cdb4d39.png!small?1633921574750

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

1633921608_6163aa48ef59eb7685b7e.png!small?1633921581144

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

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

1633921654_6163aa769d174e480e817.png!small?1633921626715

在这里,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就是那张标识了出口路线的地图,只要我们顺着名称往下寻找,就能直接找到所需数据。

1633921670_6163aa86cfac67d3beda6.png!small?1633921642895

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

1633921680_6163aa90b01280ca01fbe.png!small?1633921652869

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

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

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

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

1633921726_6163aabe964df8087df90.png!small?1633921698717

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

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

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

# 结语 #

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

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

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

如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务