搜索

5.4. 关于受管条目

download PDF
有些客户端与 Red Hat Directory Server 集成需要双条目。例如,Posix 系统通常为每个用户有一个组。Directory 服务器的 Managed Entries 插件会在创建适当的原始卷条目时自动创建一个新的受管条目,其属性准确和特定值会自动进行。
基本的概念是,在创建 Entry A 时,应该自动使用一个带有相关属性值的 Entry B。例如,当创建 Posix 用户(posixAccount 条目)时,还应创建对应的组条目(posixGroup 条目)。Managed Entries 插件的实例标识哪个条目( 原始条目)会触发插件自动生成新条目( 受管条目)。它还标识了定义受管条目的单独模板条目。
Managed Entries 插件的实例定义了三个内容:
  • 用于标识原始条目的搜索条件(使用搜索范围和搜索过滤器)
  • 在其中创建受管条目(新条目位置)的子树
  • 用于受管条目的模板条目

图 5.4. 定义受管条目

定义受管条目
例如:
dn: cn=Posix User-Group,cn=Managed Entries,cn=plugins,cn=config
objectclass: extensibleObject
cn: Posix User-Group
originScope: ou=people,dc=example,dc=com
originFilter: objectclass=posixAccount
managedBase: ou=groups,dc=example,dc=com
managedTemplate: cn=Posix User-Group Template,ou=Templates,dc=example,dc=com
原始条目不必具有创建受管条目的任何特殊配置或设置;只需在插件范围内创建它,并与给定的搜索过滤器匹配。

5.4.1. 为受管条目定义模板

模板条目使用静态属性(带有预定义值的一个和映射属性)和映射的属性(从原始条目中提取其值)的整个配置。
dn: cn=Posix User-Group Template,ou=Templates,dc=example,dc=com
objectclass: mepTemplateEntry
cn: Posix User-Group Template
mepRDNAttr: cn
mepStaticAttr: objectclass: posixGroup
mepMappedAttr: cn: $uid Group
mepMappedAttr: gidNumber: $gidNumber
mepMappedAttr: memberUid: $uid
模板中映射的属性使用令牌(以美元符号($)开头),以从 origin 条目中提取值并在受管条目中使用它。

图 5.5. 受管条目、模板和原始条目

受管条目、模板和原始条目
注意
确保为静态和映射的属性赋予的值符合所需的属性语法。

5.4.2. Managed Entries 插件的 entry Attributes Written

原始条目和受管条目都具有特殊的受管条目属性,表明它们由 Managed Entries 插件的实例管理。对于原始条目,插件会添加指向关联的受管条目的链接。
dn: uid=jsmith,ou=people,dc=example,dc=com
objectclass: mepOriginEntry  
objectclass: posixAccount
...
sn: Smith
mail: jsmith@example.com
mepManagedEntry: cn=jsmith Posix Group,ou=groups,dc=example,dc=com
除了模板中定义的属性外,插件还会添加指向原始条目的属性。
dn: cn=jsmith Posix Group,ou=groups,dc=example,dc=com
objectclass: mepManagedEntry  
objectclass: posixGroup
...
mepManagedBy: uid=jsmith,ou=people,dc=example,dc=com
使用特殊属性来指示受管和原始条目,可以轻松地识别相关条目并评估由 Managed Entries 插件所做的更改。

5.4.3. Managed Entries 插件和目录服务器操作

Managed Entries 插件对目录服务器执行常见操作(如添加和删除操作)有一些影响:
  • 添加。对于每个添加操作,服务器会检查新条目是否在任何 Managed Entries 插件实例范围内。如果满足原始条目的条件,则创建受管条目和受管条目相关的属性将添加到 origin 和 managed 条目中。
  • 修改。如果修改了原始条目,它会触发插件来更新受管条目。
    但是,更改 模板 条目不会自动更新受管条目。对模板条目的任何更改都不会反映在受管条目中,直到下次修改原始条目后。
    在受管条目映射的受管属性无法手动修改,只有通过 Managed Entry 插件进行修改。受管条目中的其他属性(包括由 Managed Entry 插件添加的静态属性)可以手动修改。
  • 删除。如果删除了 origin 条目,则 Managed Entries 插件也会删除与该条目关联的任何受管条目。
    对可以删除的条目有一些限制。
    • 如果模板条目当前由插件实例定义引用,则无法删除它。
    • 除了 Managed Entries 插件外,无法删除受管条目。
  • 重命名。如果重命名了原始条目,则插件会更新对应的受管条目。如果条目从插件范围 移出,则删除受管条目;而如果某个条目 移至 插件范围,它将被视为 add 操作,并且创建新的受管条目。
    与删除操作一样,可以重命名或移动条目受到限制。
    • 无法将配置定义条目从 Managed Entries 插件容器条目中移出。如果删除了该条目,则该插件实例将处于激活状态。
    • 如果条目 移至 Managed Entries 插件容器条目,则它将被验证并视为活跃的配置定义。
    • 如果模板条目目前由插件实例定义引用,则无法重命名或移动。
    • 除了 Managed Entries 插件外,无法重命名或移动受管条目。
  • 复制复制更新不会启动 Managed Entries 插件操作。如果插件范围中某个条目的添加或修改操作被复制到另一个副本,则该操作不会触发副本上的 Managed Entries 插件实例来创建或更新条目。要复制受管条目的更新的唯一方法是将最终受管条目复制到副本。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.