天道酬勤

域安全-LDAP的粗略认识

在认识LDAP之前,我们需要认识目录服务。

目录服务

目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字一样。

目录服务是由目录数据库和一套访问协议组成的系统。类似以下的信息适合储存在目录中:

  1. 企业员工信息,如姓名、电话、邮箱等;
  2. 公用证书和安全密钥;
  3. 公司的物理设备信息,如服务器,它的IP地址、存放位置、厂商、购买时间等;

什么是LDAP?

LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议,是一种用来查询与更新Active Directory的目录服务通信协议。AD域服务利用LDAP命名路径(LDAP naming path)来表示对象在AD内的位置,以便用它来访问AD内的对象。

LDAP是一个数据库,但是又不是一个数据库。说他是数据库,因为他是一个数据存储的东西。但是说他不是数据库,是因为他的作用没有数据库这么强大,而是一个目录。

LDAP和AD的区别

AD是Active Directory的缩写,AD应该是LDAP的一个应用实例,而不应该是LDAP本身。例如,windows域控的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,只是AD顺便还提供了用户接口,也可以利用Active Directory当做LDAP服务器存放一些自己的东西而已。

再例如,LDAP是关系型数据库,微软自己在库中建立了几个表,每个表都定义好了字段。显然这些表和字段都是根据微软自己的需求定制的,而不是LDAP协议的规定。然后微软将LDAP做了一些封装接口,用户可以利用这些接口写程序操作LDAP,使得Active Directory也成了一个LDAP服务器。

总之,Active Directory = LDAP服务器+LDAP应用(Windows域控)。Active Directory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用(域控)。

LDAP和AD的关系

LDAP 是一种用来访问AD数据库的目录服务协议,AD DS 会通过 LDAP 名称路径来表示对象在 AD 数据库中的位置,以便用它来访问 AD 数据库内的对象。LDAP 的名称路径包括有 DN、RDN。

域环境下,LDAP协议的架构图:

标识名称(distinguished Name,DN):它是对象在Active Directory内的完整路径,DN 有三个属性,分别是 CN,OU,DC。

DC (Domain Component):域名组件;

CN (Common Name):通用名称,一般为用户名或计算机名;

OU (Organizational Unit):组织单位;

以上两张图片引自:https://www.cnblogs.com/cnjavahome/p/9029665.html

上述用户的DN为:

CN=张三,OU=Web前端组,OU=软件开发部,DC=moonxy,DC=com

UPN: 用户主体名称(User Principal Name)每个用户还可以有一个比DN更短、更容易记忆的 UPN,例如上面的张三隶属于moonxy.com,则其UPN可以为zhangsan@moonxy.com。用户登录时所输入的账户名最好是UPN,因为无论此用户的账户被移动到哪一个域,其UPN都不会改变,因此用户可以一直使用同一个名称来登录。

RDN:相对标识名称(Relative Distinguished Name,RDN)用来代表DN完整路径中的部分路径,例如上面路径中的CN=张三OU=Web前端组等都是RDN。

Base DN:LDAP 目录树的最顶部就是根,也就是所谓的 “Base DN”,如 “DC=moonxy,DC=com”。

LDAP的核心

核心在于查找,并非存储。

LDAP作为一个统一认证的解决方案,主要的优点就在能够快速响应用户的查找需求。比如用户的认证,这可能会有大量的并发。如果用数据库来实现,由于数据库结构分成了各个表,要满足认证这个非常简单的需求,每次都需要去搜索数据库,合成过滤,效率慢也没有好处。虽然可以有Cache,但是还是有点浪费。LDAP就是一张表,只需要用户名和口令,加上一些其他的东西,非常简单。从效率和结构上都可以满足认证的需求。这就是为什么LDAP成为现在很人们的统一认证的解决方案的优势所在。

参考文章:

https://cainiaoqidian.com/post/298.html

https://www.cnblogs.com/cnjavahome/p/9029665.html

https://segmentfault.com/a/1190000002607140

https://www.anquanke.com/post/id/195100

LDAP和AD域

 

赞(1) 打赏
未经允许不得转载:HackerGu‘s Blog » 域安全-LDAP的粗略认识
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注黑客技术的研究

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏