什么是LDAP协议
- LDAP 轻型目录访问协议,前身是基于X.500目录服务得计算机网络【标准得目录访问协议】。
- 目录访问协议原来使用得是X.500协议是通过OSI网络镜像数据传递得。
- 后续传续协议变成了TCP\IP从而从X.500演变出了LDAP协议。
- LDAP将信息以树形方式存储,一个对象下可以有多个子对象,这种结构叫做DIT-目录信息树。
活动目录
- 活动目录是面向于Enterprise Server 以及 Windows Datacenter Server 提供的。
- 存储网络对象的信息,并且让管理员和用户能够轻松的查找和使用这些信息。
- 活动目录使用了一种结构化的数据存储方式,并且以这个为基础对目录信息进行呵护逻辑的分层组织。
大多数的web应用在尝试使用同一身份认证的时候,就是使用LDAP作为支撑,保证了同一用户的身份认证存储。
- 任何应用都可以直接访问LDAP目录实现认证,信息获取,信息存储,并不是完全依赖域控。
LDAP协议的一些基础
信息模型
- 计算机对象通过对象描述,对象包含了属性,属性包含了继承的特性,降低了复杂程度。
命令模型
- 每个对象都有独一无二的DN属性和RDN,DN是整个树中唯一的表识。
- 如:CN=Hak,DC-sdf3root,DC com。
功能模型
- 查询操作 搜索 添加 删除 认证等一些列的操作
安全模型
- LDAP提供3种认证机制
- 匿名认证
- 不对用户进行认证,这个方法对完全公开的方式适合。
- 基本认证
- 通过用户名和密码进行身份识别,有份简单的密码认证和摘要密码认证。
- SASL认证
- 是在SSL和TLS安全通道基础上进行身份验证,包含数字证书的认证。
- 匿名认证
唯一性
- 在当前活动目录下不能出现相同的对象名,而且该限制的是不区分大小写的。
可继承性
- 可以继承动态访问权限,通过继承子对象,将自动获取并且推迟父对象的访问权限。
- 如果父类对象的访问权限,相同的更改将应用于目录树中父对象之下所有的对象。
- 活动目录将网络尸体的完全访问我全乡静态存储在其相关联的对象访问控制列表中【ACL】确保父类对象的访问最终应用于所有的子对象中。
- 如果父对象的权限更改,那么所有子对象重建ACL,以便全部修改。
- 父对象权限更改与子对象的ACL重建之间存在延迟,所以父类对象的访问权限更改不会立即应用于子对象。
可复制性
- 基于微软的知识一致性检查器kcc进行信息复制,kcc是一个在所有域控上运行并且为林生成复制托盘的内置进程。
跨平台
- 可以在计算机平台上使用LDAP客户端进行访问目录服务,也可以很容易在定制软件上完成LDAP的支持。
全局编录服务器
- 全局编录服务器【GC】存储架构和配置目录分区,与域控没有什么差别。
- 本身是域控,GC只是附加的功能点,默认情况下,新林创建的第一个服务器就是GC。
- 所以在新的域控添加到已存在的域控中需要指定成为GC。
- GC是存储整个林中所有域的相关对象信息,而不是存在一个活动目录域中的信息。
- KCC创建复制拓扑,确保每一个活动目录都可以将分区内容床底到林中的每一个GC上。
- 默认情况下GC监听TCP端口的3268 3269 用于SSL上的LDAP
- 直接使用LDAP客户端链接GC相应端口即可访问全局目录。
- 当使用端口链接的时候之允许只读的方式。
聊一下 - LDAP的通讯流程
-
认证
- 使用客户端【也就是客户端加入域的时候发送请求使用的是LDAP协议】,这个时候会发送用户和密码进行认证,特殊情况下也允许匿名访问链接。
- 简单模式下也是允许匿名访问连接,简单密码认证的时候,密码以明文的方式进行保存。
- bindRequest(336) 定义了一个结构体包
- 活动目录仅仅支持简单密码认证和SASL认证以及Sicily认证
- 简单密码认证:客户端使用明文密码进行认证,不适用额外的身份验证协议。
- SASL认证,和简单密码认证不同的是,这个是先与服务器提供支持的身份认证机制列表,然后客户端确定使用那种支持的身份验证机制。
- Sicily认证 域久的版本进行兼容。
-
校验
- 查看返回包
- 关注点主要在ResultCode字段上,在protocolop为binResponse时分如下几类型。
- sucess(0) 认证通过
-
请求
- 当接收方判断登陆成功后,根据访问控制请求方进行查询 删除 修改等操作。
- 登陆成功后会进行后续的操作,主要分如下几种。
- searchRequest(3) 查询方法,对baseObject 目录进行过滤。
- modifyrequest(6) 修改objcet里的class属性,operation中包含的增删该查操作
- deleteRquests(10) 删除object
- modifyDNRqequest(12) 移动或重命名DN
-
响应
- 搜索的响应结果分为两个部分:searchResEntry和searchResDone。searchResEntry包含查询结果信息。