8.4. Active Directory 和 Directory Server 间同步的元素

目录服务器中的所有同步条目(无论是来自 Directory Server 还是 Windows 服务器中)都具有以下特殊的同步属性:
  • ntUniqueId 包含对应 Windows 条目的 objectGUID 属性的值。此属性由同步进程设置,不应手动设置或修改。
  • 当 Windows 条目同步时,会自动设置 ntUserDeleteAccount,但必须为 Directory Server 条目手动设置。如果 ntUserDeleteAccount 的值为 true,则在删除 Directory Server 条目时会删除对应的 Windows 条目。
  • ntDomainUser 对应于 Active Directory 条目的 samAccountName 属性。仅用户条目。
  • 为同步的 Windows 组自动设置 ntGroupType,但必须在同步前手动在 Directory Server 条目上设置。仅组条目。
预定义的属性列表在 Directory 服务器和 Active Directory 条目之间同步。其中一些属性相同,如 Directory 服务器中的 givenName 属性与 Active Directory 中的 givenName 属性匹配。由于 Active Directory 和红帽目录服务器中定义的模式稍有不同,所以其他属性在 Active Directory 和 Red Hat Directory Server 之间映射;其中大多数是 Directory Server 中特定于 Windows 的属性。

8.4.1. 用户属性同步目录服务器和 Active Directory

只有 Directory 服务器和 Active Directory 属性的子集才会被同步。硬编码属性,其定义与条目同步的方式无关。条目中的任何其他属性(位于 Directory 服务器或 Active Directory 中)均不受同步影响。
Directory 服务器和 Active Directory 中使用的一些属性是相同的。这些通常是 LDAP 标准中定义的属性,这些属性在所有 LDAP 服务中很常见。这些属性完全同步到另一个属性。表 8.2 “Aame in Directory Server 和 Windows Servers 中的用户架构” 显示 Directory 服务器和 Windows 服务器之间的属性相同。
有些属性会定义相同的信息,但属性的名称或其架构定义有所不同。这些属性在 Active Directory 和 Directory Server 之间映射,这样一个服务器中的 A 属性被视为另一个服务器中的属性 B。对于同步,其中许多属性与 Windows 特定信息相关。表 8.1 “用户架构在 Directory 服务器和 Active Directory 之间映射” 显示目录服务器和 Windows 服务器之间映射的属性。
有关 Directory 服务器和 Active Directory 处理某些 schema 元素的方法的更多信息,请参阅 第 8.4.2 节 “Red Hat Directory Server 和 Active Directory 之间的用户架构差异”

表 8.1. 用户架构在 Directory 服务器和 Active Directory 之间映射

目录服务器 Active Directory
cn name
ntUserDomainId sAMAccountName
ntUserHomeDir homeDirectory
ntUserScriptPath scriptPath
ntUserLastLogon lastLogon
ntUserLastLogoff lastLogoff
ntUserAcctExpires accountExpires
ntUserCodePage codePage
ntUserLogonHours logonHours
ntUserMaxStorage maxStorage
ntUserProfile profilePath
ntUserParms userParameters
ntUserWorkstations userWorkstations

表 8.2. Aame in Directory Server 和 Windows Servers 中的用户架构

cn physicalDeliveryOfficeName
description postOfficeBox
destinationIndicator postalAddress
facsimileTelephoneNumber postalCode
givenName registeredAddress
homePhone sn
homePostalAddress st
Initials street
l telephoneNumber
mail teletexTerminalIdentifier
manager telexNumber
mobile title
o userCertificate
ou x121Address
pager

8.4.2. Red Hat Directory Server 和 Active Directory 之间的用户架构差异

虽然 Active Directory 支持与 Directory Server 相同的基本 X.500 对象类,但管理员应该清楚一些不兼容的问题。

8.4.2.1. cn Attributes 的值

在目录服务器中,cn 属性可以是 multi-valued,而 Active Directory 此属性必须只有一个值。当 Directory Server cn 属性同步时,只有一个值发送到 Active Directory peer。
这对同步意味着,如果将 cn 值添加到 Active Directory 条目,并且该值不是 Directory Server 中 cn 的值之一,则所有 Directory Server cn 值都会用单个 Active Directory 值覆盖。
另一个重要的区别是 Active Directory 使用 cn 属性作为其命名属性,其中 Directory 服务器使用 uid。这意味着,如果 Directory Server 中编辑 cn 属性,则可能完全重命名条目。如果该 cn 更改被写入 Active Directory 条目,则该条目将被重命名,并且新命名条目将写回到目录服务器。这只有在 cn 属性同步时才会发生。如果没有同步更改,则不会重命名该条目。

8.4.2.2. 密码策略

Active Directory 和 Directory Server 可以强制密码策略,如密码最小长度或最长期限。Windows Sync 不会尝试确保策略一致、强制执行或同步。如果在 Directory 服务器和 Active Directory 中都没有一致的密码策略,那么当同步到其他系统时,在一个系统中进行的密码更改可能会失败。Directory 服务器上的默认密码语法设置模拟 Active Directory 强制执行的默认密码复杂性规则。

8.4.2.3. street 和 streetAddress 的值

Active Directory 将属性 streetAddress 用于用户或组的 postal 地址;这是目录服务器使用 street 属性的方式。Active Directory 和 Directory 服务器使用 streetAddressstreet 属性的方式有两个重要区别:
  • 在目录服务器中,streetAddressstreet 的别名。Active Directory 也具有 street 属性,但它是一个单独的属性,它可以保存独立值,而不是 streetAddress 的别名。
  • Active Directory 将 streetAddressstreet 定义为单值属性,而目录服务器将 street 定义为多值属性,如 RFC 4519 中指定的。
由于目录服务器和 Active Directory 处理 streetAddressstreet 属性的不同方法,在 Active Directory 和 Directory Server 中设置地址属性时,需要遵循两个规则:
  • Windows Sync 将 Windows 条目中的 streetAddress 映射到目录服务器中的 street。为避免冲突,不应在 Active Directory 中使用 street 属性。
  • 只有一个目录服务器 street 属性值会同步到 Active Directory。如果在 Active Directory 中更改了 streetAddress 属性,且 Directory Server 中新值尚不存在,则 Directory Server 中的所有 street 属性值都会替换为新的、单一 Active Directory 值。

8.4.2.4. 对初始属性的限制

对于 initials 属性,Active Directory 对六个字符实施最大长度约束,但 Directory 服务器没有长度限制。如果向 Directory 服务器添加了一个大于 6 个字符的 initials 属性,则该值会在与 Active Directory 条目同步时被修剪。

8.4.3. 在目录服务器和 Active Directory 之间同步组属性

只有 Directory 服务器和 Active Directory 属性的子集才会被同步。硬编码属性,其定义与条目同步的方式无关。条目中的任何其他属性(位于 Directory 服务器或 Active Directory 中)均不受同步影响。
Directory 服务器和 Active Directory 组条目中使用的一些属性是相同的。这些通常是 LDAP 标准中定义的属性,这些属性在所有 LDAP 服务中很常见。这些属性完全同步到另一个属性。表 8.4 “Group Entry 属性是 Directory 服务器和 Active Directory 之间的 Same” 显示 Directory 服务器和 Windows 服务器之间的属性相同。
有些属性会定义相同的信息,但属性的名称或其架构定义有所不同。这些属性在 Active Directory 和 Directory Server 之间映射,这样一个服务器中的 A 属性被视为另一个服务器中的属性 B。对于同步,其中许多属性与 Windows 特定信息相关。表 8.3 “Group Entry 属性映射目录服务器和 Active Directory” 显示目录服务器和 Windows 服务器之间映射的属性。
有关 Directory 服务器和 Active Directory 处理某些 schema 元素的方法的更多信息,请参阅 第 8.4.4 节 “Red Hat Directory Server 和 Active Directory 之间的组架构差异”

表 8.3. Group Entry 属性映射目录服务器和 Active Directory

目录服务器 Active Directory
cn name
ntGroupAttributes groupAttributes
ntGroupId
cn
name
sAMAccountName
ntGroupType groupType

表 8.4. Group Entry 属性是 Directory 服务器和 Active Directory 之间的 Same

cn 成员
description ou
l seeAlso

8.4.4. Red Hat Directory Server 和 Active Directory 之间的组架构差异

虽然 Active Directory 支持与 Directory Server 相同的基本 X.500 对象类,但管理员应该清楚一些不兼容的问题。
支持嵌套组(其中组包含另一个组作为成员),且在 WinSync 中会被同步。但是,Active Directory 对嵌套组的组合实施某些限制。例如,全局组包含域本地组作为成员。目录服务器没有本地和全局组的概念,因此可以在 Directory Server 一侧创建条目,在同步时违反 Active Directory 的限制。