LDAP元素规范与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LDAP元素规范与应用
信息部
当前版本:v1.0
修改日期:2011-525
作者:王兵旺
目录
一、概述 (3)
二、ldap元素解读 (3)
三、ldap常用元素 (4)
3.1 常用元素 (4)
3.2 目录规范 (5)
四、ldap元素自定义 (6)
一、概述
本文仅描述ldap节点创建的方法及属性的匹配。通过剖析ldap的schema 来讲解如何有效的产生目录节点,最后达到信息化建设与维护的目标。需要了解开源openldap的安装配置与协议请参考《OpenLdap使用手册》。
二、ldap元素解读
openldap通过slapd.conf文件来引入所需的schema定义。整个schema主要描述了二大类元素:objectclass与attributetype。下面请跟我一起来解读两者之间的关联。
对于objectClass来说,初学者不妨把它理解为数据库中的一个table,如此一来,attributetype就是table中的一个coloum(这样比较好理解)。与数据库中的table,coloum不同的是,ldap中的objectClass呈现一种类似与面向对象编程中的继承关系。
objectClass在ldap中的具体表现形式就是诸多的对象类定义。如organization、country、person等等。每个对象类在声明语法中都会以下几个主要部分:
1、SUP
2、MUST
3、MAY
SUP表示当前objectClass继承于另外某个objectClass。ldap的objectClass能表示一种继承的上下关系,如SUP top STRUCTURAL表示top是
顶层objectClass,当前的objectClass是“继承”top而来。STRUCTURAL是关键字。
MUST表示当前objectClass如果被声明使用,必须同时声明指定的attributetype。如MUST o表示当前objectClass被声明时必须同时申明一个o的属性。注意有些objectClass要求必须声明多个attributetype。
MAY表示当前objectClass如果被声明使用,可以声明也可以不声明指定的attributetype。需要注意的是一个objectClass被声明后,在进行声明attributetype时,attributetype的名称一定是在MUST与MAY指定的那些attributetype范围之中。比如一个objectClass,MUST指定为o,MAY指定为cn、text。则用户去声明一个名为teleNum的attributetype就会引起错误。
最后总结一下,所有的objectClass与attributetype不是随意命名,它们都在引入的schema文件中定义。通过阅读schema文件你能大致了解它们的含义。请主要参考core.schema(最基本的)、cosine.schema、nis.schema(网络方面声明)。这三个文件都被初始至ldap。
三、ldap常用元素
为了初学者更快更有效的学习并使用ldap。这里列出一些基本常用的objectClass与attributetype。一般情况下常用的元素能够满足用户的ldap目录建设与管理。
3.1 常用元素
为了更好的了解objectClass与attributetype,在列表之前先举例说明元素的应用。以dcObject(一个objectClass)为例,它用于指定一个domain,必须声明的attributetype为dc,如下图
图中申明了一个域,那么attributetype的所有声明中必须要有名为dc 的Attribute。当然objectclass本身也会在内容中显示出来,但它并不是一个真正的Attribute,仅仅是显示当前包含有dcObject的objectClass。通过这个显示用户可以清晰的去查找当前是否有满足此objectClass的attributetype。
下面提供了元素的列表,列表中objectClass的含义一般给出了描述,attributetype数目众多暂时不提供描述,用户可以在core.schema、
cosine.schema、nis.schema文件中查找阅读对应的attributetype描述信息。
3.2 目录规范
介绍完常用的元素后,我们需要正确的使用它来构建目录服务管理。以下的一些规范可以作为应用参考。
1、首先建立好ldap根目录,如图
2、其次采用所有人员、机器、文件归属于公司>部门的结构形式,如图
如果需要表现人员、机器等隶属多部门,采用多个ou形式展示,如图
当然了,如果需要使用到ou这个attributetype,就一定要声明匹配的objectClass,所声明的objectClass中must和may指定有均是可以的。同理如果想表示此用户的机器IP,那么就得使用ipHostNumber这个attributetype了,对应就必须先声明了ipHost这个objectClass。
3、目录元素的增加可以通过事先编写ldif文件进行ldap导入,也可以通过代码接口的形式访问ldap。在ldap建设完备之后,即可通过各平台、各语言的开发接口访问ldap数据来服务于各个业务系统。
四、ldap元素自定义
ldap元素的定义是指用户自定义schema文件,定义的文件后缀名为.schema。文件放至%openldap%\schema\目录下,并且在sldap.conf中加入引用语句include ./schema/自命名.schema
4.1 schema定义
schema是一组定义如何存储数据的规则,可以保证数据的一致性,降低重复数据,并保证应用程序可以有一个统一的数据接口
4.2 schema元素
schema元素主要由以下四个要素: