搜索

3.2. 标准架构

download PDF
目录架构通过对数据值的大小、范围和格式的限制来维护目录中存储的数据的完整性。该架构反映了目录包含哪些类型(如人员、设备和机构)以及每个条目可用的属性的决策。
Directory Server 中包含的预定义模式包含标准的 LDAP 模式,以及其他特定于应用程序的模式,以支持服务器的功能。虽然此架构满足大多数目录需求,但可将新的对象类和属性添加到架构(extending schema)中以满足目录的唯一需求。有关扩展 schema 的信息,请参阅 第 3.4 节 “自定义架构”

3.2.1. 模式格式

目录服务器将其模式格式基于 LDAP 协议的版本 3。此协议要求目录服务器通过 LDAP 本身发布其模式,允许目录客户端应用以编程方式检索架构并相应地调整其行为。Directory 服务器的全局模式集合可在 cn=schema 条目中找到。
目录服务器模式与 LDAPv3 模式稍有不同,因为它使用自己的专有对象类和属性。另外,它使用 schema 条目中的私有字段,名为 X-ORIGIN,它描述了最初定义 schema 条目的位置。
例如,如果在标准 LDAPv3 模式中定义了模式条目,则 X-ORIGIN 字段指的是 RFC 2252。如果红帽为目录服务器的使用定义了该条目,则 X-ORIGIN 字段包含值 Netscape Directory Server
例如,标准 person 对象类出现在架构中,如下所示:
objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top
     MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword)
     X-ORIGIN 'RFC 2252' )
此架构条目指出对象标识符或 OID,类(2.5.6.6)、对象类的名称(个人)、类的描述(Standard Person),然后列出所需的属性(objectclass,sn, 和 cn),以及允许的属性(描述seeAlsotelephoneNumberuserPassword)。
有关 LDAPv3 模式格式的更多信息,请参阅 LDAPv3 属性语法定义文档、RFC 2252 和其他标准架构定义,如 RFC 247、RFC 2927 和 RFC 2307。Red Hat Directory Server 支持所有这些架构元素。

3.2.2. 标准属性

属性包含特定的数据元素,如名称或传真号码。目录服务器将数据表示为属性数据对,它是一个与特定信息片段关联的描述性 schema 属性。它们也称为 attribute-value assertions 或 AVAs。
例如,目录可以将一个数据(如个人的名称)存储在带有标准属性的对中,本例中为 commonName (cn)。因此,名为 Babs Jensen 的人员的条目具有 attribute-data 对 cn: Babs Jensen
实际上,整个条目都以一系列属性对的形式表示。Babs Jensen 的整个条目如下:
dn: uid=bjensen,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Babs Jensen
sn: Jensen
givenName: Babs
givenName: Barbara
mail: bjensen@example.com
Babs Jensen 的条目包含某些属性的多个值。givenName 属性显示两次,每次都有一个唯一值。
在 schema 中,每个属性定义包含以下信息:
  • 唯一的名称。
  • 属性的对象标识符(OID)。
  • 属性的文本描述。
  • 属性语法的 OID。
  • 指示 属性是单值还是多值,无论属性是否适用于目录自己的用途、属性的来源,以及与 属性关联的任何其他匹配规则。
例如,cn 属性定义出现在 schema 中,如下所示:
attributetypes: ( 2.5.4.3 NAME 'cn' DESC 'commonName Standard Attribute'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
属性的语法定义属性允许的值的格式。在某种程度上,语法有助于定义可以存储在 属性中的信息类型。Directory 服务器支持所有标准属性语法。

3.2.3. 标准对象类

对象类用于对相关信息进行分组。通常,对象类代表一个实际对象,如个人或传真机器。在可以使用对象类及其目录中的属性之前,必须在架构中识别它。目录默认识别对象类的标准列表;它们列在 Red Hat Directory Server Configuration、命令和文件参考 中。
每个目录条目都至少属于一个对象类。将一个对象类放在条目上的 schema 中可告知 Directory 服务器,该条目可以具有一组特定的可能属性值,并且必须具有另一个、通常更小的、必需属性值集。
对象类定义包含以下信息:
  • 唯一的名称。
  • 对象命名的对象标识符 (OID)。
  • 一组强制属性。
  • 组允许(或可选)属性。
例如,标准 person 对象类出现在架构中,如下所示:
objectclasses: ( 2.5.6.6 NAME 'person' DESC 'Standard Person Object Class' SUP top
     MUST (objectclass $ sn $ cn) MAY (description $ seeAlso $ telephoneNumber $ userPassword)
     X-ORIGIN 'RFC 2252' )
对于所有 Directory Server 的 schema,对象类会被定义并直接存储在 Directory Server 中。这意味着,使用标准 LDAP 操作可以查询和更改目录的模式。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.