Schema是LDAP的一个重要组成部分,类似于数据库的模式定义,LDAP的Schema定义了LDAP目录所应遵循的结构和规则,比如一个 objectclass会有哪些属性,这些属性又是什么结构等等,schema给LDAP服务器提供了LDAP目录中类别,属性等信息的识别方式,让这些可以被LDAP服务器识别。
在LDAP的schema中,有四个重要的元素:
1. Objectclass
objectclass定义了一个类别,这个类别会被不同的目录(在LDAP中就是一个Entry)用到,它说明了该目录应该有哪些属性,哪些属性是必须的,哪些又是可选的。一个objectclass的定义包括名称(NAME),说明(DESC),类型(STRUCTURAL或AUXILARY ,表示是结构型的还是辅助型的),必须属性(MUST),可选属性(MAY)等信息。
在BAP产品中,有下面几种类别
# GalaxyTitle
objectclass ( 2.16.840.1.153730.3.4.2
NAME 'GalaxyTitle'
DESC 'GalaxyTitle use to manage title'
SUP top
STRUCTURAL
MUST ( uid )
MAY (
sortid )
)
# GalaxyPost
objectclass ( 2.16.840.1.153730.3.4.32
NAME 'GalaxyPost'
DESC 'GalaxyPost use to manage post'
SUP top
STRUCTURAL
MUST ( uid )
MAY (
sortid $ type )
)
# GalaxyDuty
objectclass ( 2.16.840.1.153730.3.4.22
NAME 'GalaxyDuty'
DESC 'GalaxyDuty use to manage duty'
SUP top
STRUCTURAL
MUST ( dutyuid )
MAY (
sortid )
)
# GalaxyGroup
objectclass ( 2.16.840.1.153730.3.2.12
NAME 'GalaxyGroup'
DESC 'GalaxyGroup use to manage group'
SUP top
STRUCTURAL
MUST ( uid )
MAY (
sysid $ employeeids $ sortid $ groupType $ searchCondition $ groupManager $ telephone $
email $ gfax $ others1 $ others2 $
others3 $ uniqueMember $ searchConditionXml)
)
# GalaxyPeople
objectclass ( 2.16.840.1.153730.3.2.22
NAME 'GalaxyPeople'
DESC 'GalaxyPeople use to manage people'
SUP InetOrgPerson
STRUCTURAL
MAY (
otherDepartmentNumber $ sortid $ ifactivated $ peopleLevel $ leadermember $ leaderFilter $ title $ post $ globalsortid $ virtualaccount
)
)
# GalaxyOrganization
objectclass ( 2.16.840.1.153730.3.2.2
NAME 'GalaxyOrganization'
DESC 'GalaxyOrganization use to manage dep'
SUP top
STRUCTURAL
MUST ( uid )
MAY (
sysid $ employeeids $ sortid $ depmanager $ telephone $
email $ gfax $ others1 $ others2 $
others3 $ depmanagerFilter $ title $ post)
)
# GalaxyContainer
objectclass ( 2.16.840.1.153730.3.2.16
NAME 'GalaxyContainer'
DESC 'a container,can fill with people,org,group...'
SUP top
STRUCTURAL
MUST ( cn )
)
# GalaxyLevel
objectclass ( 2.16.840.1.153730.3.3.18
NAME 'GalaxyLevel'
DESC 'level inof'
SUP top
STRUCTURAL
MUST ( cn $ number )
)
# GalaxyAttOfPeople
objectclass ( 2.16.840.1.153730.3.3.19
NAME 'GalaxyAttOfPeople'
DESC 'att name and sn'
SUP top
STRUCTURAL
MUST ( sn $ cn )
)
2. Attribute
attribute就是一个上面objectclass中可能包含的属性,对其的定义包括名称,数据类型,单值还是多值以及匹配规则等。后面用具体的例子来说明。
3. Syntax
syntax是LDAP中的“语法”,其实就是LDAP中会用到的数据类型和数据约束,这个语法是遵从X.500中数据约束的定义的。其定义需要有一个ID(遵从X.500)以及说明(DESP)
4. Matching Rules
是用来指定某属性的匹配规则,实际上就是定义一个特殊的Syntax的别名,让LDAP服务器可以识别,并对定义的属性进行匹配。
LDAP的schema的主要元素就是这些了,下面列举出了一些LDAP规定好的或是现在比较通用的schema,一般的LDAP服务器都应该可以识别这些定义。
这就是一个名为subschema的objectclass的定义:
(2.5.20.1 NAME 'subschema' AUXILIARY
MAY ( dITStructureRules $ nameForms $ ditContentRules $
objectClasses $ attributeTypes $ matchingRules $ matchingRuleUse ) )
首先是ID,这里是2.5.20.1,接着是NAME,AUXILIARY说明是辅助型,之后是可选属性的定义,subschema中没有定义必须属性,如果需要定义,应该和MAY一样,将属性放在MUST()中并用$隔开
再来看一个属性定义:
( 2.5.4.3 NAME 'cn' SUP name EQUALITY caseIgnoreMatch )
可以看到cn属性的父属性是name,它相等性匹配于caseIgnoreMatch(匹配原则为EQUALITY,还有如SUBSTR是字符串匹配,ORDERING是顺序匹配)
syntax定义一般都比较简单,如:
( 1.3.6.1.4.1.1466.115.121.1.6 DESC 'String' )
这个定义说明,这一串数字1.3.6.1.4.1.1466.115.121.1.5就代表了LDAP中的字符串,这个数字串的定义和X.500相关,包括了它的存储方式,所占空间大小等。
最后看看Matching Rule的例子,前面提到了caseIgnoreMatch,就看他的吧
( 2.5.13.2 NAME 'caseIgnoreMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
其实1.3.6.1.4.1.1466.115.121.1.15 就是LDAP数据类型Directory String的ID,说明前面的cn需要等于这个数据类型才有效。
还有很多常用schema的定义都在了RFC2252中,LDAP服务器都应该支持这些基本的schema。好了,现在基本对LDAP中的schema有个一个大致的说明,可能有不到位或不妥之处,还望大家指正。
分享到:
相关推荐
本文将详细介绍LDAP Schema的基本概念及其四大核心要素:ObjectClass、Attribute、Syntax和Matching Rules。 #### 二、LDAP Schema概述 LDAP Schema类似于数据库中的模式定义,它为LDAP目录服务提供了必要的结构和...
LDAP 概念和原理 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种 目录服务协议,用于提供快速的目录查询和检索功能。下面详细介绍LDAP的概念和原理。 目录服务 目录服务是一种按照树状...
LDAP 基本概念和基础 LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,是基于 X.500 标准的,但是简单多了并且可以根据需要定制。LDAP 的核心规范在 RFC 中都有定义,所有与 LDAP 相关的 ...
### LDAP Schema Design详解 #### 一、概述 LDAP(Lightweight Directory Access Protocol)是一种用于访问目录服务的标准协议,被广泛应用于各种场景下的人、组织、角色和服务等实体的信息管理。由于其标准化特性...
标题中的"openldap, ldapbrowser, mozillaOrgPerson.schema"提到了三个关键概念,分别是OpenLDAP、LdapBrowser和MozillaOrgPerson的Schema。这些是IT领域中与目录服务、LDAP(轻量级目录访问协议)以及特定的数据...
### LDAP Schema设计详解 在企业级应用环境中,利用单一的LDAP目录服务器为多个应用程序提供服务是一种常见的实践方式。这一策略显著降低了数据维护的工作量,但同时也对目录的设计提出了更高的要求,尤其是在实施...
rar包:一个Web工程, 主要有,利用Spring-ldap对LDAP的基本操作(查询,增删改);Extjs实现的对Ldap的树状结构的显示,结构有点类似Softerra LDAP;一个测试类。 pdf:spring-ldap-reference.pdf Extjs.pdf ...
在 Debian 系统中搭建 LDAP 服务器需要完成安装、配置和测试三个步骤。下面将详细讲解每个步骤的实现过程。 步骤1:安装LDAP 首先,需要安装 LDAP 服务器和相关工具。使用以下命令安装: ``` # apt-get install ...
**LDAP(轻量级目录访问协议)是一种网络协议,用于访问和管理分布式目录服务。它在各种操作系统上广泛使用,包括Windows。...理解LDAP的基本概念和操作方法,将有助于你有效地管理Windows环境下的目录服务。
通过这份LdapBrowser 2.82版和配套的“LDAP安装说明(windows).doc”,你可以深入了解如何管理和操作LDAP目录,以及在Windows环境中部署和配置一个LDAP服务器。这些知识对于提升你在IT领域的专业技能,尤其是在网络...
LDIF 文件常用来向目录导入或更改记录信息,这些信息需要按照 LDAP 中 schema 的格式进行组织,并会接受 schema 的检查,如果不符合其要求的格式将会出现报错信息。 在 LDAP 中,一条记录必须包含一个 objectClass ...
OwnCloud的LDAP架构参考: : ownCloud架构OwnCloud Inc.已注册 ,我们对其进行了扩展以定义所需的LDAP对象OID :1.3.6.1.4.1.39430.1.2.1 ObjectClass :ownCloud配额字段ownCloud可以读取LDAP属性并根据其值设置...
LDAP目录服务的核心概念包括DN(Distinguished Name)和Schema。DN是唯一标识目录条目的字符串,而Schema定义了目录中的数据结构,包括语法、匹配规则、属性类型和对象类。 **7. LDAP目录设计** 在设计LDAP目录时...
Java 连接和验证 LDAP 文档 Java 连接和验证 LDAP 文档是一份关于 Java 语言连接和验证 LDAP 服务器的学习文档。LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,用于管理和访问目录服务中的...
LDAP(轻量级目录访问协议)是一种用于查询和管理分布式目录服务的网络协议,广泛应用于企业环境中的用户身份验证、权限管理和数据共享。LdapBrowser是一款专为开放源代码的OpenLDAP设计的连接工具,帮助管理员便捷...
这包括了熟悉LDAP的基本概念,如DN(Distinguished Name)、过滤器以及属性操作,以及在Java中处理SSL连接的细节。通过实践这些示例和深入学习jLDAP的API文档,开发者可以构建出强大且安全的目录服务应用程序。
总的来说,LDAP是实现企业级身份管理和数据检索的关键技术,通过理解和掌握LDAP的基本概念和操作,可以有效地提高系统管理和数据访问的效率。在学习过程中,深入理解DN结构、schema的使用以及配置OpenLDAP的过程是至...