- 论坛徽章:
- 0
|
理解与应用 LDAP 服务器 (前段时间一直在做 LDAP+POSTFIX 相关项目,先把关于 LDAP 的一些经验写出来,一来可能 会帮助一些人,二来对我自己所学知识也是一个巩固。) 先声明:这个是我在戴尔服务器上学到的,我写的只是我对 LDAP 的一些理解,如果我的理解错误,那就是对兄弟们的误导。所 以你可以直接看文章的结尾提供的几个网址。 关于 LDAP 的概念随便网上有很多,我不想重复,这里只是说一下我自己的理解。 都说它是“轻量级目录协议”,太专业,我不懂,我只把它想象成“简单”的目录协议。
几个很重要的概念,以后会用到: --dn :一条记录的位置 dc :一条记录所属区域 ou :一条记录所属组织 cn/uid:一条记录的名字/ID --实际上更多时候我只把它看成数据库。 我把它和我非常熟悉的 MYSQL 数据库做比较, 通常会得 到更好的理解: MYSQL 用“表”储存数据,LDAP 用“树” MYSQL 指定一条记录要 3 个条件:DB、TABLE、ROW。 LDAP 却更自由,为什么呢?因为 LDAP 数据是“树”状的,而且这棵树是可以无限延伸的,假设 你要树上的一个苹果(一条记录) ,你怎么告诉园丁它的位置呢?当然首先要说明是哪一棵树 (dc, 相当于 MYSQL 的 DB) 然后是从树根到那个苹果所经过的所有“分叉” ou, , ( 呵呵 MYSQL 里面好象没有这 DD) ,最后就是这个苹果的名字(uid,记得我们设计 MYSQL 或其它数据库表 时,通常为了方便管理而加上一个‘id’字段吗?) 好了!
关于安装配置 LDAP,使之储存系统用户,这里有一个非常好的网址,如果你的英文不是很差, 都应该做的来,我偷个懒,就先不写这方面的东西喽: 上面的方法我已经试过,是可行的,如果兄弟们配置的时候出现问题我们可以讨论讨论。 关于 LDAP+POSTFIX,POSTFIX 里的“LDAP_README”中介绍的很详细,我再说就是重复 了。
其它相关资源: yala (很实用的数据库操作工具,简单的说,他就是 MYSQL 的 phpmyadmin,自己找下载 地址吧~)(说实话,我一直没用上它,不过它是官方网站,不提也不好)(什么‘类’下面有什么‘属性’,在这里找) 关于 LDAP 的补充 ---- LDAP 就是 light DAP, 轻量级目录访问协议, 可以想象 还有一个 DAP, 70 年代诞生的 DAP 协议基于 X.400 目录访问协议。主要用于 大型主机,因为有大量不常用 的功能而且这些不用的功能消耗了过多的系统资源,虽然极强大,但是应用不广, 所以出现了 LDAP. 这是一个开放的协议, 具体的实现有 Netscape LDAP, Novell NDS, MS AD 等等,这 3 个 是使用最广,影响最大的。 Netscape LDAP server 主要使用在 unix 或类 unix 系统上, MS AD 自然只能在 windows 上, NDS 是唯一一个跨平台的产品。注意: LDAP 本身是平台无关的。 工作原因,比较熟悉 NDS, AD 最熟。我个人最喜欢 NDS,AD 当然最简单,但是最不稳定, 最乱,而且比较耗资源。 楼主说的类似数据库,完全正确,因为它原本就是数据库,只是不是关系型的数据库,它是链式 数据库,详细细节可以找本数据库原理,很详细的。 和关系数据库一样, LDAP 内能够定义哪些对象,每个对象可以有什么属性,每个属性可以取 什么样的值,这样一个框架结构被称为 Schema,它是类,对象,属性的集合。类又分为抽象 类(只能做父类,不能实例化)和结构类(可以实例化) ,编程的朋友会发现和面向对象的编程 的概念完全一样。 举例: LDAP 内必须先有 user 类, 然后用 user 类创建 user 对象(一般缺省有的) ,我们才 能创建具体的用户账号(实例化) schema 中 user 对象被指定了有哪些属性,我们创建账号 , 的时候才能给账号哪些属性,例如 schema 中 user 对象没有别名属性,我们就不能给账号起别 名。 Schema 的扩展: 缺省的 schema 一般预先创建有足够的类,对象和属性,例如 MS 的 AD 缺省有 170 个类和 833 个对象和属性。 但是如果不能满足需要的话, 我们就可以扩展 Schema,一般是使用 LDAP API, 例如 MS 的 ADSI, NDS 有专门的工具,当然也可以直接使用 LDAP 查询语言,来直接 操作整个 LDAP 目录树。 |
|