7.3. 链接属性以管理属性值

对于所有 具有相同 值的属性的条目,类服务会动态提供属性值,如构建地址、后代码或主办公室号码。这些是共享属性值,在单个模板条目中更新。
但是,通常情况下,不同条目之间需要有一种表达其之间的链接方式,但显示该关系的值(甚至可能是属性)。Red Hat Directory Server 提供了一种将指定属性链接在一起的方法,以便在一个条目中的一个属性被改变时,会自动更新相关条目上的对应属性。(链接和受管属性均具有 DN 值。link 属性的值包含要更新的插件条目的 DN;第二个条目的 managed 属性具有指向原始链接条目的 DN 值。

7.3.1. 关于链接属性

链接的属性插件允许插件的多个实例。每个实例配置一个属性,它由管理员手动维护(linkType),以及一个由插件自动维护的属性(managedType)。

图 7.5. 基本链接的属性配置

基本链接的属性配置
注意
为了保持数据一致性,只有插件进程才会维护 managed 属性。考虑创建一个 ACI,以限制对任何受管属性的所有写入访问。有关设置 ACI 的详情,请查看 第 18.7.2 节 “添加 ACI”
链接的属性插件实例可以限制为目录中的单个子树。这可允许对属性组合和受影响的条目进行更加灵活的自定义。如果没有设置范围,则插件将在整个目录中运行。

图 7.6. 将链接的属性插件限制为特定子树

将链接的属性插件限制为特定子树
在配置链接的属性插件实例时,需要某些配置:
  • managed 属性和链接的属性都必须在其属性定义中需要 Distinguished Name 语法。链接的属性本质上是跨引用管理的,插件处理这些跨引用的方式是从属性值中提取条目的 DN。
    有关规划自定义架构元素的详情,请参考 第 12 章 管理目录架构
  • 每个链接的属性插件实例都必须是本地的,并且 所有受管 属性都必须禁止使用部分复制进行复制。
    在一个供应商上所做的任何更改都将自动触发插件,以管理对应目录条目上的值,因此数据可以在服务器间保持一致。但是,受管属性必须由插件实例维护,才能在链接条目之间保持一致。这意味着,受管属性值应仅由插件进程(而不是复制过程)单独维护,即使在多层次复制环境中也是如此。
    有关使用部分复制的详情,请参考 第 15.1.7 节 “使用 DNATactional Replication 复制子属性集”

7.3.2. 查看链接属性插件语法

默认链接的属性插件条目是每个插件实例的容器条目,类似于下一部分中的密码语法插件或 DNA 插件。此容器条目下的每个条目都定义不同的 link-managed 属性对。
要创建新的链接属性对,请在容器条目下创建一个新的插件实例。需要定义两个基本链接属性插件实例:
  • 由管理员手动管理的属性在 linkType 属性中
  • 由插件在 managedType 属性中动态创建的属性
  • (可选)将插件限制为目录树的特定部分的范围,在 linkScope 属性中

例 7.5. 链接的属性插件实例条目示例

dn: cn=Manager Link,cn=Linked Attributes,cn=plugins,cn=config
objectClass: top
objectClass: extensibleObject
cn: Manager Link
linkType: directReport
managedType: manager
linkScope: ou=people,dc=example,dc=com
有关可用于 Linked Attributes 插件实例的属性列表,请查看 Red Hat Directory Server 配置、命令和文件参考 中的相应部分