OpenLDAP 概念与工作原理介绍(4)

如果要定义person 类型,需要定义顶级为top,并且必须定义sn 和cn 两个属性,还可以附加userPassword、telephoneNumber、seeAlso、description 4 个属性值。邮件地址、国家等属性不可以定义,除非读者添加相关的objectClass 条目,否则提示相关属性不允许添加。

objectClass 案例分析示例2

1

2

3

4

5

6

7

8

9

 

objectclass: (2.5.6.0 NAME 'top' 

       ABSTRACT 

       MUST (objectClass)) 

  

objectclass: ( 2.5.6.6 NAME 'person' 

       SUP top STRUCTURAL 

       MUST (sn $ cn ) 

       MAY (userPassword $ telephoneNumber $ 

       seeAlso $ description ))

 

分析:

对于此案例,如果要定义top 属性,必须定义一个objectClass 属性。因为此案例中还定义了person 属性,所以要必须定义sn 和cn 属性,以及可以附加的属性(userPassword、telephoneNumber、seeAlso、description)。此案例中必须要定义的有3 个属性分别是objectClass、sn 以及cn。通过此案例下一级的objectClass 可以继承上一级objectClass 的属性信息。

2、属性概述

属性(Attribute)在目录树中主要用于描述条目相关信息,例如用户条目的用途、联系方式、邮件、uid、gid、公司地址等辅助信息。属性由objectClass 所控制,一个objectClass 的节点具有一系列Attribute,Attribute 可以理解为Linux 系统当中的变量,每个变量都有对应的值,OpenLDAPAttribute 也是有对应的值。这些属性的对应值表示每个对象的特点,但有些属性在添加时是必须指定的,有些属性是非必要的(类似于条目更详细的描述)。在目录树中常用的Attribute 有uid、sn、giveName、I、objectClass、dc、ou、cn、mail、telephoneNumber、c 等。

属性(Attribute)类似于程序设计中的变量,可以被赋值。在OpenLDAP中声明了许多常用的Attribute(用户也可自己定义Attribute)。常见的Attribute含义如下:

c:国家。

cn:common name,指一个对象的名字。如果指人,需要使用其全名。

dc:domain Component,常用来指一个域名的一部分。

givenName:指一个人的名字,不能用来指姓。

l:指一个地名,如一个城市或者其他地理区域的名字。

mail:电子信箱地址。

o:organizationName,指一个组织的名字。

ou:organizationalUnitName,指一个组织单元的名字。

sn:surname,指一个人的姓。

telephoneNumber:电话号码,应该带有所在的国家的代码。

uid:userid,通常指某个用户的登录名,与Linux系统中用户的uid不同。

九、LDIF 详解

1、LDIF 用途

LDIF(LDAP Data Interchanged Format)的轻量级目录访问协议数据交换格式的简称,是存储LDAP 配置信息及目录内容的标准文本文件格式,之所以使用文本文件来存储这些信息是为了方便读取和修改,这也是其他大多数服务配置文件所采取的格式。通常用来交换数据并在OpenLDAP服务器之间互相交换数据,并且可以通过LDIF 实现数据文件的导入、导出以及数据文件的添加、修改、重命名等操作,这些信息需要按照LDAP 中schema 的规范进行操作,并会接受schema 的检查,如果不符合OpenLDAP schema 规范要求,则会提示相关语法错误。

2、LDIF 文件特点

LDIF 文件每行的结尾不允许有空格或者制表符。

LDIF 文件允许相关属性可以重复赋值并使用。

LDIF 文件以.ldif 结尾命名。

LDIF 文件中以#号开头的一行为注释,可以作为解释使用。

LDIF 文件所有的赋值方式为:属性:[空格]属性值。

LDIF 文件通过空行来定义一个条目,空格前为一个条目,空格后为另一个条目的开始。

3、LDIF 格式语法

LDIF 文件存取OpenLDAP 条目标准格式:

1

2

3

4

 

# 注释,用于对条目进行解释 

dn:条目名称 

objectClass(对象类): 属性值 

objectClass(对象类): 属性值  ……

 

LDIF 格式样例如下:

1

2

3

4

5

6

7

8

9

10

11

 

dn: uid=water,ou=people,dc=wzlinux,dc=com     #DN 描述项,在整个目录树上为唯一的 

objectClass: top 

objectClass: posixAccount 

objectClass: shadowAccount 

objectClass: person 

objectClass: inetOrgPerson 

objectClass: hostObject 

sn: Wang 

cn: WangZan 

telephoneNumber:xxxxxxxxxxx 

mail: xxxx@126.com

 

注:冒号后面有一个空格,然后才是属性的值,schema 规范定义要求很严格。

Liferay Portal 配置使用Oracle和OpenLDAP

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b7ff2616949043e6f3ee2b46abdeca0c.html