搜索

5.3. 关于服务类

download PDF
服务类服务 (CoS)在对应用程序不可见的条目间共享属性。使用 CoS 时,可能不能使用条目本身存储一些属性值。相反,它们将由服务逻辑类生成,因为该条目将发送到客户端应用程序。
例如,该目录包含数千个条目,它们共享了通用属性 facsimileTelephoneNumber。传统上,修改传真号需要单独更新每个项,这可能会是一个非常大型的任务,并可能造成没有全部更改的风险。使用 CoS 时,可以动态生成属性值。facsimileTelephoneNumber 属性存储在一个位置,每个条目都从该位置检索其 fax number 属性。对于应用程序,这些属性看起来像所有其他属性一样,尽管实际存储在条目本身上。
每个 CoS 都由目录中的几个条目组成:
  • CoS 定义条目 标识 CoS 的类型。它作为 LDAP 子条目存储在它所影响的分支下的 LDAP 子条目中。
  • template 条目 包含 shared 属性值的列表。对模板条目属性值的更改会自动应用到共享属性的所有条目。
CoS 定义条目和模板条目交互为目标条目(其范围内的条目)提供属性值。它们提供的值取决于以下内容:
  • 条目的 DN(目录树中的不同部分可能包含不同的 CoS)。
  • 通过该条目存储的服务类属性值。
    缺少 service class 属性可以表示特定的默认 CoS。
  • 存储在 CoS 模板条目中的属性值。
    每个 CoS 模板条目提供特定 CoS 的属性值。
  • 条目的对象类。
    只有条目包含对象类时,才会生成 COS 属性值,允许启用架构检查时属性;否则,将生成所有属性值。
  • 存储在目录树中某个特定条目的属性。
重要
不要索引您在 CoS 定义中使用的属性(cosAttribute 参数)。
注意
角色和经典 CoS 一起提供基于角色的属性。这些属性会出现在条目上,因为它具有关联 CoS 模板的特定角色。例如,使用基于角色的属性来基于角色设置服务器查找限制。

5.3.1. 关于 Pointer CoS

指针 CoS 仅使用模板 DN 识别模板条目。每个指针的 CoS 只能有一个模板 DN。pointer CoS 适用于模板条目范围内的所有条目。
例如,图 5.1 “Pointer CoS 示例” 中的指针 CoS 共享一个通用邮政代码,其中包含存储在 dc=example,dc=com 下的所有条目。

图 5.1. Pointer CoS 示例

Pointer CoS 示例
模板条目由 CoS 定义条目的 DN cn=exampleUS,cn=data 标识。每次在条目 cn=wholiday,ou=people,dc=example,dc=com 上查询 postalCode 属性时,Directory 服务器都会返回模板条目 cn=exampleUS,cn=data 中可用值。

5.3.2. 关于Indirect CoS

间接 CoS 使用目标条目属性之一的值来识别模板条目。target 条目的属性必须包含现有条目的 DN。

图 5.2. Indirect CoS 示例

Indirect CoS 示例
在本例中,William Holiday 的目标条目包含 manager 属性的间接指定符。William 的经理是 Carla Fuentes,因此 manager 属性包含模板条目的 DN 的指针 cn=Carla Fuentes,ou=people,dc=example,dc=com。模板条目依次提供 departmentNumber 属性值 318842

5.3.3. 关于经典 CoS

典型的 CoS 通过其 DN 和其中一个目标条目的属性来识别模板条目。经典的 CoS 可以有多个模板条目,包括要应用到不属于任何其他 CoS 模板的条目。

图 5.3. Classic CoS 示例

Classic CoS 示例
在本例中,CoS 定义条目的 cosSpecifier 属性指定 employeeType 属性。此属性与模板 DN 相结合,将模板条目标识为 cn=sales,cn=exampleUS,cn=data。然后,模板条目为目标条目提供 postalCode 属性的值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.