Directory Service(目录服务):基于X..500的树状层次化数据结构。
LDAP(轻量级目录访问协议):公有的用来访问目录数据库的接口协议。
DIT(目录信息树):目录服务数据架构。
DC(目录组件):LDAP中定义的层次化结构组件,一般与DNS域名相同。
OU(组织单元):LDAP中定义的层次化结构单元。
AD(活动目录):微软公司商用的目录服务,适合作为域用户的应用权限管理。
 
目录服务统一用户管理系统,着眼于如何将分散的用户数据整合到一致的目录服务平台下,并提供统一的操作管理界面给用户进行后续的管理与维护功能。
 
目录服务器信息树(DIT)是对目录的逻辑描述。参照了标准X.500国际标准,采用层次的命名方法。同时考虑到日常维护的灵活性,划分组织单元时主要从以下方面考虑:
¨         人员或组织是否经常变化:在组织机构内人员经常从一个部门调动到另外一个部门。
¨         是否易于使用:是否可方便地找到系统中的用户、个人计算机、服务器。
¨         是否容易管理和支持:是否可以对用户、个人计算机、服务器和验证进行方便的管理。
¨         是否具有可扩展性:是否能适应将来组织的变化和增长。
¨         对于每个组织单元可以实行分级管理。
¨         组织单元名以及相对应的单位、部门、科室的汉语名称缩写或其特定的名称缩写为准。
LDAP目录树的最顶部就是根,也就是所谓的“基准DN”。基准DN通常使用下面列出的三种格式之一:
¨         以X.500格式表示的基准DN:o="yourOU ", c=CN
在这中方法中,o=yourOU. 表示组织名,在这里就是公司名的同义词。c=CN 表示国家名称。以前,一般都用这种方式来表示基准DN。但是事物总是在不断变化的,随着Internet/Intranet的发展,在基准DN中使用国家代码很容易让人产生混淆。
¨         用公司的Internet/Intranet地址表示的基准DN:o=yourOU.com
这种格式很直观,用公司的域名作为基准DN。是现在使用较多的格式,也是公司原有Notes系统采用的地址格式。
¨         用DNS域名的不同部分组成的基准DN:dc=yourOU, dc=com
这种格式是以DNS域名为基础的,这种格式把域名:yourOU.com分成两部分 dc=yourOU, dc=com。在理论上,这种格式可能会更灵活一点,对于后续的扩展能力也更强一些。Microsoft的活动目录强制要求采用这种格式。
考虑到维护的灵活性,如公司组织结构变动,调整等。本次建设建议采用DNS域名的不同部分组成的基准DN。
 
本目录服务项目涉及到的数据领域包括,员工查询(Employe yellow page)、AD中相关域和用户信息及组织结构信息等。根据以上信息,我们把存储在目录中的数据分成以下三类数据元素:一,跟员工相关;二,跟部门相关;三,跟资源相关,比如打印机等。按照X.500中Group的组织方法,我们设置目录树组织单元分别为OU=people, OU=groups,OU=resource。
存放在目录中的数据在许多方面需要考虑,比如目录attribute的syntax(语法),attribute的值长度及是否允许Multi-valued的attribute。当目录使用attribute语法执行比较操作,比如等于操作,针对String类型跟Numerical类型会有不同的结果。
 
下表为跟员工相关的数据元素描述
| 
 Element  | 
 Description  | 
 Syntax  | 
 Size/#Values  | 
 Owner  | 
 Consumers  | 
 Stability  | 
| 
 姓  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 名  | 
    | 
 Case Exact String  | 
 */1  | 
 Admin  | 
 Authentication 
Employe yellow page  | 
 Static  | 
| 
 创建时间  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 常用名称  | 
 用户全名  | 
 Encrypted  | 
 */1  | 
 Admin  | 
 Authentication  | 
 Dynamic  | 
| 
 用户工号  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 密码  | 
    | 
 Case Ignore String  | 
 */1  | 
 User  | 
 Employe yellow page  | 
 Static  | 
| 
 电子邮件  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 电话  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 传真  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 部门  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 班组  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
 
下表为跟部门相关的数据元素描述
| 
 Element  | 
 Description  | 
 Syntax  | 
 Size/#Values  | 
 Owner  | 
 Consumers  | 
 Stability  | 
| 
 部门名称  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
| 
 包含员工列表  | 
    | 
 Case Ignore String  | 
 */1  | 
 Admin  | 
 Employe yellow page  | 
 Static  | 
 
 
根据上节数据设计结果,我们把员工相关信息映射到目录的Attribute。
下表为员工相关的数据元素到LDAP Schema Attribute映射表。
| 
 Data Element  | 
 Schema Attribute  | 
 Custom  | 
 Multi-valued  | 
| 
 姓  | 
 sn  | 
 Predefined  | 
 NO  | 
| 
 名  | 
 givename  | 
 Predefined  | 
 NO  | 
| 
 创建时间  | 
 createtimestamp  | 
 Predefined  | 
 NO  | 
| 
 常用名称  | 
 displayname  | 
 Predefined  | 
 NO  | 
| 
 用户工号  | 
 cn  | 
 Predefined  | 
 NO  | 
| 
 密码  | 
 userpassword  | 
 Predefined  | 
 NO  | 
| 
 电子邮件  | 
 mail  | 
 Predefined  | 
 NO  | 
| 
 电话  | 
 telephoneNumber  | 
 Predefined  | 
 NO  | 
| 
 传真  | 
 facsimileTelephoneNumber  | 
 Predefined  | 
 NO  | 
| 
 部门  | 
 department  | 
 Predefined  | 
 YES  | 
| 
 班组  | 
 team  | 
 Custom  | 
 NO  | 
 
下表为部门相关的数据元素到LDAP Schema Attribute映射表。
| 
 Data Element  | 
 Schema Attribute  | 
 Custom  | 
 Multi-valued  | 
| 
 部门名称  | 
 cn  | 
 Predefined  | 
 NO  | 
| 
 员工列表  | 
 uniquemember  | 
 Predefined  | 
 YES  | 
 
根据上表,我们尽量使用标准的LDAP Attribute来满足数据元素到Schema Attribute的映射,然而X.500中标准的inetOrgPerson的attribute不能满足员工的数据设计需要,通过扩展inetOrgPerson这个obectClass,定义YourPerson来实现以上Attribute。对于部门的数据设计,X.500中标准的groupofuniquenames这个obectClass能满足需求。