第 16 章 将红帽目录服务器与 Microsoft Active Directory 同步
Windows 同步操作目录中的更改 - 在 Red Hat Directory Server 和 Microsoft Active Directory 之间对组、用户和密码添加、删除和更改。这使得在目录中保持一致的信息效率更高且效率更高。
16.1. 关于 Windows 同步
同步允许 Active Directory 中的用户和组条目与 Red Hat Directory Server 中的条目匹配。在创建、修改或删除条目时,对同步对等服务器进行相应的更改,允许对用户、密码和组进行双向同步。
同步过程与复制过程类似:插件启用同步,通过同步协议配置和启动,并且目录更改的记录会被维护,并根据该更改的日志发送更新。这会在 Directory 服务器和 Windows 服务器之间同步用户和组。
Windows 同步有两个部分,一个用于用户和组条目,另一个用于密码:
- 目录服务器 Windows 同步.用户和组条目的同步在同步协议中配置,就像复制协议中配置复制一样。同步协议定义了同步哪些条目类型(用户、组或两者),以及哪些方向更改会被同步(从 Directory Server 到 Active Directory,从 Active Directory 到 Directory Server 或两者)。目录服务器依赖于多层复制插件来同步用户和组条目。用于多层次复制的更改也用于将更新从目录服务器发送到 Active Directory,作为 LDAP 操作。服务器还针对其 Windows 服务器执行 LDAP 搜索操作,将 Windows 条目所做的更改同步到对应的目录服务器条目。
- 密码同步服务。如果您在 cn=config 条目中将
nsslapd-unhashed-pw-switch
参数设置为 on,则目录服务器上的密码更改将自动同步到 Active Directory。但是,必须有一个特殊的 hook,才能识别并传输 Active Directory 上的密码更改。这由密码同步服务完成。此应用程序捕获 Active Directory 域控制器的密码更改,并通过 LDAPS 将它们发送到目录服务器。密码同步服务必须安装在每个 Active Directory 域控制器上。
图 16.1. Active Directory - 目录服务器同步过程
同步由一个或多个 同步协议 配置和控制,该协议在同步的 同步 服务器之间建立同步。它们与复制协议类似,包含类似的信息,包括 Active Directory 的主机名(或 IPv4 或 IPv6 地址)和端口号。目录服务器使用 LDAP/LDAPS 连接到其对等 Windows 服务器,以发送和接收更新。
LDAP (标准连接)可用于只同步用户和组条目,但为了同步密码,需要使用某种类型的安全连接。如果没有使用安全连接,Windows 域将不会接受来自 Directory 服务器的密码更改,并且密码同步服务将不会将密码从 Active Directory 域发送到 Directory 服务器。Windows 同步允许使用 TLS 和 STARTTLS 的 LDAPS。
可将多个子树对配置为相互同步。与连接数据库的复制不同,同步是在 后缀、部分目录树结构间进行。同步 Active Directory 和 Directory Server 后缀均在同步协议中指定。对应子树中的所有条目都是用于同步的候选者,包括不是指定后缀 DN 直接子项的条目。
注意
任何子容器条目都需要由管理员在 Active Directory 中单独创建;Windows 同步不会创建容器条目。
目录服务器维护一个 更改日志,这是记录所发生的修改的数据库。Windows 同步使用更改来协调和发送对 Active Directory peer 所做的更改。使用 Active Directory 的 Dirsync 搜索功能可找到对 Active Directory 中的条目的更改。目录服务器默认每五分钟定期运行 Dirsync 搜索,以检查 Active Directory 服务器上的更改。您可以通过在 cn=syncAgreement_Name,cn=WindowsReplica,cn=suffix_Name,cn=mapping tree,cn=config 条目中设置
winSyncInterval
参数来更改此默认设置。使用 Dirsync 可确保仅检索自上次搜索以来更改的条目。
在某些情况下,如配置了同步,或者目录数据有主要更改、整个更新或 重新同步,可以运行。这会检查同步对等点中的每个条目,并发送任何修改或缺失的条目。每当运行整个更新时,都会启动完整的 Dirsync 搜索。请参阅 第 16.11 节 “发送同步更新” 了解更多信息。
Windows 同步提供一些控制,可以控制要同步哪些条目,以便对同步的条目进行精细控制,并有足够的灵活性来支持不同的部署场景。通过 Directory Server 中设置的不同配置属性来设置这个控制:
- 在创建同步协议时,您可以选择同步新的 Windows 条目(
nsDS7NewWinUserSyncEnabled
和nsDS7NewWinGroupSyncEnabled
),因为它们被创建。如果这些属性设置为 on,则现有的 Windows 用户/组会同步到目录服务器,并且创建它们时创建的用户/组会同步到目录服务器。在 Windows 子树中,只有具有用户或组对象类的条目才能同步到目录服务器。 - 在 Directory 服务器上,只能同步具有 ntUser 或 ntGroup 对象类和属性的条目。
同步协议的放置取决于同步的后缀;对于单个后缀,只为该后缀进行同步协议;对于多个后缀,同步协议由目录树的最多分支进行。要传播 Windows 条目和更新整个目录服务器部署,请在多层次复制环境中在供应商之间建立协议,并使用该供应商在目录服务器部署间复制更改,如 图 16.2 “多层目录服务器 - Windows 域同步” 所示。
重要
虽然可以在 hub 服务器上配置同步协议,但这仅允许从 Red Hat Directory Server 到 Active Directory 的单向同步。Active Directory 服务器无法将任何更改同步到 hub。
强烈建议您只使用多层次复制中的供应商来配置同步协议。
警告
目录服务器环境和 Active Directory 环境之间只能有一个同步协议。同一活动目录域的多个同步协议可能会造成条目冲突。
图 16.2. 多层目录服务器 - Windows 域同步
目录服务器密码与其他条目属性同步,因为纯文本密码保留在 Directory Server changelog 中。需要密码同步服务来捕获 Active Directory 上进行的密码更改。如果没有密码同步服务,就无法同步 Windows 密码,因为密码在 Active Directory 中被哈希化,而且 Windows 哈希功能与 Directory 服务器使用的功能不兼容。