930 likes | 1.15k Views
TNQ400-04. 理解 LDAP Srinivas Gazula 高级顾问 MCS ( 财务服务公司) Microsoft 公司. 理解本讲座所需必要条件. 关于目录概念的基础知识 本讲座的难度水平为300. 今天将要学到的内容. LDAP 基本原理 端口、参考资料、控制、 RootDSE 及管理查询策略等 帮助进行故障诊断并管理活动目录的 LDAP 工具 如何捕捉并解释各种 LDAP 错误. 今天不予讲授的内容. Microsoft ® 活动目录 ADSI 名字解析技术 计划管理工具 如何对 LDAP 客户进行编程. 何谓目录服务.
E N D
理解LDAP Srinivas Gazula高级顾问MCS (财务服务公司)Microsoft公司
理解本讲座所需必要条件 • 关于目录概念的基础知识 • 本讲座的难度水平为300
今天将要学到的内容 • LDAP基本原理 • 端口、参考资料、控制、RootDSE及管理查询策略等 • 帮助进行故障诊断并管理活动目录的LDAP工具 • 如何捕捉并解释各种LDAP错误
今天不予讲授的内容 • Microsoft®活动目录 • ADSI • 名字解析技术 • 计划管理工具 • 如何对LDAP客户进行编程
何谓目录服务 • 一种在分布式环境中发现目标的方法 • 目录包括两个主要组成部分: • 数据库 • 规划—用来描述数据 • 分布式存在 • 协议 • 访问数据 • 处理数据
目录服务与数据库 • 二者有许多共同点 • 均允许对存储数据进行访问 • 目录服务 数据库 • 目录主要用于读取 • 目录不适于进行频繁的更新 • 本质上属于典型的分布式结构
何谓LDAP • 一种目录服务协议 • LDAPv2 – RFC 1777 1995年3月 • LDAPv3 – RFC 2251 1997年12月 • LDAP在四个方面有过人之处: • 特性 • 标准 – IETF标准 • 实现工具 • 应用程序编程接口(API)
LDAP简化了X.500 • 90%的功能,10%的成本! • 传输 • LDAP直接运行于IP之上:TCP或UDP • 功能 • 通过排除低级使用特性来简化X.500的功能 • 数据表示法 • LDAP使用简单的字符串格式 • 编码 • LDAP使用简化的编码规则
LDAP的模式 • 信息模式 • 描述信息结构 • 命名模式 • 信息的组织和调用的方式 • 功能模式 • 信息的用途 • 安全模式 • 如何保护信息
信息模式 • 源于X.500 • 用于创建企业级目录的ISO/CCITT (ITU) 技术规范 • 目录信息树 – DIT • 由一或多个LDAP服务器提供的访问 • 由若干条目构成 • DSA – 目录服务器代理
信息模式什么是规划? • 模板 / DIT的蓝图 • 类 • 抽象类 – 结构类的模板 • 结构类 – 在DSA中拥有实例 • 辅助类 – 如同一个内建的属性文件 • 88类 – 在1993年版的X.500标准之前即已被定义 • 属性 • 对象保有信息的类型 • 语法 • 为属性决定数据类型
信息模式 • 条目(容器或叶结点) • 源自结构类 • MSFT将条目视为对象 • 条目所包含的属性(通常被MSFT称为属性) • 容器和叶结点均拥有属性 • 属性值 – 单值或多值
信息模式 • GUID – 128位的全局唯一标识符 • 在时间和空间上都是独一无二的 • OID – 对象标识符 • 标识一个类或属性 • 1.2.840 - USA • 1.2.840.113556 – MSFT OID • 1.2.840.113556.1 – MSFT DS • 1.2.840.113556.1.5 – NTDS类 • 类型 – 语法 • RFC 2252 – LDAPv3属性语法定义 • 用OID来定义 • 举例 – DN、二进制数、数字串、UTC时间
类型 单值 多值 强制属性 在规划中定义 可选属性 操作属性 条目(对象)剖析 条目
命名模式相对识别名称(RDN) • 在容器中是唯一的 • <rdn> :== <rdncomp> | <rdncomp> <rdnsep> <rdn> • <rdnsep> :== ‘+’ • <rdncomp> :== <attr> ‘=‘ <value> • <attr> :== 一个LDAP属性类型(cn, dc, …) • <value> :== 一个LDAP属性值 • 举例 • cn=rthom • dc=microsoft • ou=pss
命名模式识别名称(DN) • RFC 1779 识别名称的字串表示法 • <dn> :== <rdn> | <rdn> <dnsep> <dn> • <dnsep> :== ‘,’ | ‘:’ • 条目在DIT范围内根据其DN进行组织安排 • 类似于文件系统中具有完整路径的文件名 • 举例 • cn=rthom,ou=pss,dc=microsoft,dc=com
功能模式 三个方面的九种操作 • 认证:打开、绑定、拆分 • 询问:搜索/比较 • 更新:添加、删除、修改、修改RDN
功能模式认证 • 打开 • 打开一个通往DSA的连接 • 绑定 • 将客户认证至DSA • 认证方法 – LDAPv3 • 拆分 • 终结用户/服务器会话
功能模式·询问 • 搜索 • 从DIT中选择条目 • 为每个条目返回特定属性 • 参数 • 基本对象 • 范围 • 搜索过滤器 • 属性 • 比较 • 判定一个条目是否包含具有特定值的给定属性 • 布尔型返回值
基本对象 1 OU=demo,DC=mycompany,DC=Com DC=mycompany,DC=Com 范围 2 OU=Demo 基本、一级、子树 搜索过滤器 3 (objectClass=*), User, Computer 返回属性 4 cn, sn, userPrincipalName 功能模式·询问搜索组件
功能模式·询问搜索 – 基本对象 • 定义搜索起始点的DN • DIT中的一个结点 • 举例: • dc=mydomain,dc=com • ou=demo,dc=mydomain,dc=com
基本DN 基本 1 一级 2 子树 3 功能模式询问搜索 – 范围
功能模式·询问搜索 – 基本搜索过滤器类型 • 等式 • <attr>=<value> • (sn=Dan) • 近似 • <attr>~=<value> • (sn~=Dann) • 子串 • <attr>=[<leading>] * [<any>] * [<trailing>] • (sn=Da*)
功能模式·询问搜索 – 基本搜索过滤器类型 • 大于等于 • <attr>>=<value> • (sn>=Dan) • 小于等于 • <attr><=<value> • (sn<=Dan) • 当前默认 • <attr>=* • (objectClass=*)
功能模式·询问搜索 – 复杂搜索过滤器类型 • 与 • (& (<filter1>) (<filter2>)) • (& (objectClass=user) (sn=Dan) • 或 • (| (<filter1>) (<filter2>)) • (| (sn=Dan) (sn=T*) • 非 • (!(<filter1>)) • (!(sn=Dan))
功能模式·询问搜索 – 属性 • 由DSA返回的属性列表 • 举例 • * • 全部属性 • LDAP-显示-名称 • Cn, Sn, UserPrincipalName, objectClass • 属性的OID • 1.1 不返回属性 • 2.5.4.3 返回CN
功能模式·询问比较 • 用于就对象属性的存在及其赋值进行校验 • 所需参数包括: • 对象的DN • 需要进行赋值检验的属性 • 属性的值 • 返回“真”或“假”(布尔型)
基本对象 1 OU=demo,DC=mycompany,DC=Com DC=mycompany,DC=Com 范围 2 OU=Demo 基本、一级、子树 搜索过滤器 3 (objectClass=*), User, Computer 返回属性 4 cn, sn, userPrincipalName 功能模式·询问回顾搜索组件
功能模式·更新四项基本功能 • 添加 • 在DIT中创建新的条目 • 修改 • 改变现有条目的属性 • 修改RDN • 对DIT中的条目进行重命名 • 删除 • 从DIT中删除一个条目
功能模式·更新添加 • 两个参数 • DN • 属性及属性值 • 成功关键: • 父对象必须以容器形式存在 • DN必须唯一 • 新对象必须与规划保持一致 • 访问控制必须允许
功能模式·更新修改 • 两个参数 • 所需修改对象的DN • 所需应用的修改 • 新属性值 • 修改属性值 • 删除属性值 • 成功的关键: • 对象必须存在 • 所有的属性修改必须成功 • 结果条目必须在事实上遵循规划 • 访问许可允许进行上述修改
功能模式·更新修改RDN • 四个参数 • 所需修改对象的DN • 对象的新RDN • 新父对象的DN (可选) • 删除旧的RDN标识 • 成功关键: • 对象必须存在 • 新的DN必须唯一 • 访问许可允许修改操作
功能模式·更新删除 • 单一参数 • 对象的DN • 成功的关键: • 对象必须存在 • 对象不能拥有子对象 • 访问许可允许进行删除操作
安全模式 • 对认证机制进行洽商 • 访问控制列表 • 条目 • 属性 • 具有签名机制的LDAP • 通过Kerberos 会话键进行加密 • MSFT所独有