16.7. 配置 Uni-Directional 同步
作为 图 16.1 “Active Directory - 目录服务器同步过程” 所示,同步默认 是双向的。这意味着 Active Directory 中的更改发送到 Directory 服务器,Directory 服务器上的更改会发送到 Active Directory。
可以创建 单向同步, 其中更改仅发送单向。这与 provider-consumer 的关系类似[1] 与多层次不同。
同步协议
oneWaySync
的一个附加属性,启用单向同步并指定要发送更改的方向。可能的值有 fromWindows
(用于 Active Directory 到 Directory Server sync)和 toWindows
(用于目录服务器到 Active Directory 同步)。如果缺少此属性,则同步是双向的。
图 16.3. uni-Directional Synchronization
对于双向同步和单向同步,同步过程本身基本相同。它使用相同的同步间隔和配置。唯一的区别是请求同步信息的方式。
对于 Windows Active Directory 到 Directory 服务器同步,在常规同步更新间隔期间,Directory 服务器联系 Active Directory 服务器,并发送 DirSync 控制来请求更新。但是,Directory 服务器不会从其一端发送任何更改或条目。因此,同步更新包含要发送到和更新目录服务器条目的 Active Directory 更改。
对于 Directory Server 到 Active Directory 同步,目录服务器在正常更新中向 Active Directory 服务器发送条目修改,但它不包括 DirSync 控制,以便它不会从 Active Directory 端请求任何更新。
使用
--one-way-sync="direction"
选项在以下情况下启用单向同步:
- 如果您在 第 16.4.9 节 “第 9 步:配置数据库以进行同步和创建同步协议” 中创建新的同步协议,请将选项传递给 dsconf repl-winsync-agmt create 命令。
- 如果同步协议已存在,请更新协议。例如,将从 AD 的同步设置为目录服务器:
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt set --one-way-sync="fromWindows" --suffix="dc=example,dc=com" example-agreement
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt set --one-way-sync="fromWindows" --suffix="dc=example,dc=com" example-agreement
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注意
启用双向同步不会自动防止非同步服务器上的更改,这会导致同步更新之间的同步间不一致。例如,单向同步被配置为从 Active Directory 迁移到目录服务器,因此 Active Directory 是(本质上)数据供应商。如果在 Directory 服务器上修改甚至删除了条目,则目录服务器信息与信息不同,且这些更改永远不会被传输到 Active Directory。在下一次同步更新过程中,Directory 服务器上会覆盖编辑,删除的条目会被重新添加。
要防止数据不一致,请使用访问控制规则来防止在未同步的服务器中编辑或删除同步子树中的条目。目录服务器的访问控制包括在 第 18 章 管理访问控制 中。有关 Active Directory,请参阅适当的 Windows 文档。
单向同步不会影响密码同步。即使将同步方向
设置为Windows
,在更新 Active Directory 服务器上的密码后,密码也会发送到 Directory 服务器。