[原创]集权设施保护之LDAP协议

news2024/11/28 23:49:23

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查询。在工作生产中,同样需要我们多加防范。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/590177.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Drools规则引擎

Drools规则引擎 Drools规则引擎1、Drools简介2、Drools入门案例2.1、业务场景2.2、maven坐标2.3、编写xml配置文件(多方法)2.4、创建drl规则文件2.5、单元测试 3、Drools基础语法3.1、规则文件的构成3.2、规则体语法结构3.2.1、条件部分3.2.1.1、约束连接…

day4,day5 -java集合框架

List、Set、Map等常用集合类的特点和用法。 常用集合类(List、Set、Map 等)是 Java 中提供的数据结构,用于存储和操作一组数据。以下是它们的特点和用法: List(列表): 特点:有序集合&#xff0…

多元办公场景下,企业如何保障工作效率与数据安全流通?

为适应数字化转型需求,提升办公效率,很多企业对工作模式进行革新,并将更多协同办公工具引入工作流程。然而,这也扩大了企业内网对外的安全暴露面,企业亟需进一步加强底层基础设施的网络安全建设,严防勒索病…

分布式监控平台——Zabbix6.0

市场上常用的监控软件: 传统运维:zabbix、 Nagios云原生环境: Prometheus (go语言开发的) 一、zabbix概述 作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数…

内网渗透(八十六)之Exchange ProxyLogon攻击链利用

Exchange ProxyLogon攻击链利用 漏洞背景 2021年3月2日,微软发布了Exchange服务器的紧急安全更新,修复了如下7个相关的漏洞。 Exchange服务端请求伪造漏洞(CVE-2021-26855):未经身份验证的攻击者能够构造HTTP请求扫描内网并通过Exchange服务器进行身份验证。Exchange反序列…

基于SpringBoot的财务管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:…

王石创立“生物圈三号”发起“双碳同行者大会”,绿色家居企业参与其中

2023年5月27日 ,由万科集团创始人、深石集团创始人王石先生创立的碳中和社区品牌“生物圈三号”在深圳大梅沙成功举办了“回归未来双碳同行——生物圈三号双碳同行者大会暨全球运河穿越新书发布会”。 生物圈三号作为社区碳中和综合解决方案平台,为建筑、…

JVM-基础知识

JVM基础知识 JVM结构图 字节码文件 Java虚拟机不和包括Java在内的任何语言绑定,它只与字节码文件这种特定的二进制文件格式所关联. Class文件结构不仅仅是JVM的执行入口,更是Java生态圈的基础和核心. 字节码文件内容是什么 字节码是一种二进制的类文件,他的内容是JVM指令,而…

OpenAI竞对再被谷歌加注!4.5亿美元新融资到位,累计已吸金14.5亿美元

量子位 | 公众号 QbitAI OpenAI之外,第二不差钱的AI初创公司出现了! 研发出ChatGPT最强竞品Claude的Anthropic公司,在谷歌投资之后,再次官宣获得了4.5亿美元C轮融资。 这轮收购之后,Anthropic资金一跃达到14.5亿美元…

CPLEX Studio OPL项目介绍

参考B站视频:cplex入门到精通 1.理解 OPL 项目 CPLEX Studio 处理 OPL 项目文件(.project)、数据文件(.dat)、模型文件 (.mod)、设置文件(.ops)和运行配置(.oplproject)。 文件类型扩展名作用份数说明模型文件.mod模型存储和数据1~n必须数据文件.dat数据存储0~n非…

【代码随想录】刷题Day42

1.01背包问题 问题介绍:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 1.二维数组实现思想 1.dp[i][j]的含义:首先…

头羊部落亮相首届校园预制菜展,成为预制菜行业领头羊

由北京工商大学与北京市学校基建后勤管理事务中心共同主办的首届预制菜产业与智慧团餐高质量发展研讨会暨校园食材展(以下简称大会)于2023年5月26-27日在北京工商大学举办。 △首届预制菜产业与智慧团餐高质量发展研讨会在北京工商大学隆重举行 △预制菜…

【Python map()、filter() 和 reduce()】零基础也能轻松掌握的学习路线与参考资料

Python编程中常使用map()、filter()和reduce()函数来实现对数据集的操作,尤其是在处理数据时,这些函数非常有用。在本文中,将介绍这些函数的学习路线和优秀实践,并提供一些参考资料供读者参考。 一、Python map() 函数 Python中…

附录5-黑马头条案例

目录 1 效果 2 组件库vant 2.1 安装 2.2 配置 2.3 项目中的使用 2.3.1 引用 2.3.2 tabbar 底部切换 2.3.3 navbar 顶部标题 2.3.4 van-list 上拉触底更新 2.3.5 van-pull-refresh 下拉更新 2.3.6 v-cell 2.3.7 van-icon 2.3.8 自定义风格 3 保持滚…

做接口测试时遇到接口加密了该如何处理

对明文编码生成信息摘要,以防止被篡改。比如MD5使用的是Hash算法,无论多长的输入,MD5都会输出长度为128bits的一个串。 摘要算法不要秘钥,客户端和服务端采用相同的摘要算法即可针对同一段明文获取一致的密文。 对称加密 对称加…

C语言获取AIX单网卡的多IP地址

环境配置 在AIX上,可以使用smitty tcpip命令给单个网卡配置多个IP别名。操作步骤如下: 选择Further Configuration 选择Network Interfaces 选择 Network Interfaces Selection 选择 Configure Aliases 5.选择Add an IPV4 Network Alias 选择需要配…

Vue3:组合式写法入门

Vue3&#xff1a;组合式写法入门 Date: May 11, 2023 认识Vue3 1. Vue3组合式API体验 通过 Counter 案例 体验Vue3新引入的组合式API <script> export default {data(){return {count:0}},methods:{addCount(){this.count}} } </script><script setup> imp…

超声波都应用在哪些领域中?功率放大器如何放大超声波?

超声波是声波的一部分&#xff0c;它的频率高于20kHz&#xff0c;是无法被人耳听到的声波&#xff0c;超声波与声波有共通之处&#xff0c;即它们都是由物体振动所产生&#xff0c;只能在介质中进行传播。无论是在自然界&#xff0c;还是人们的日常生活之中&#xff0c;超声波都…

Power BI DAX函数

1、聚合函数——由表达式定义的列或表中所有行的&#xff08;标量&#xff09;值&#xff0c;例如计数、求和、平均值、最小值或最大值。 函数说明APPROXIMATEDISTINCTCOUNT在列中返回唯一值的估计计数AVERAGE返回列中所有数字的平均值&#xff08;算术平均值&#xff09;AVER…

基于 Python 和深度学习技术实现的人体姿态识别

人体姿态识别是计算机视觉领域的一个重要应用&#xff0c;它通过识别人体的关键点和关节位置&#xff0c;能够准确地判断人体的姿态和动作。这项技术可以应用在很多领域&#xff0c;比如运动训练、医疗康复、安保监控等&#xff0c;为人们的生活和工作带来了很大的便利和效益。…