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