16.6. 同步组
与用户条目一样,组不会在 Directory 服务器和 Active Directory 之间自动同步。必须配置同步这两个指令:
- 如果在同步协议中通过选择 Sync New Windows Groups 选项,则 Active Directory 域中的组会被同步。在同步启动时,所有 Windows 组都会复制到目录服务器中,然后在创建时同步新组。
- Directory Server 组帐户通过 Directory Server 条目中存在的特定属性与 Active Directory 同步。任何目录服务器条目都必须具有 ntGroup 对象类和
ntGroupCreateNewGroup
属性;ntGroupCreateNewGroup
属性(即使在一个现有的条目中)会向目录服务器 Windows 同步发送信息,将条目写入 Active Directory 服务器。在下次常规更新时,创建并同步了 ntGroup 对象类的新或修改的组。
重要
同步组时,也会同步其所有成员的列表。但是,除非启用了用户同步并应用到这些条目,否则成员条目本身不会被同步。
如果某些用户不存在,当应用程序或服务试图对 Active Directory 服务器上的所有成员都执行操作时,可能会造成问题。
另外,组还有几个其他通用属性:
- 两个属性控制是否在 Active Directory、
ntGroupCreateNewGroup
和ntGroupDeleteGroup
上创建和删除 Directory Server 组。需要ntGroupCreateNewGroup
将目录服务器组同步到 Active Directory。 - ntUserDomainId 包含 Active Directory 域中条目的唯一 ID。这是 ntGroup 对象类的唯一必需属性。
- ntGroupType 是 Windows 组的类型。Windows 组类型是 global/security、domain local/security、builtin、generic/security、global/distribution、domain local/distribution 或 Universal/distribution。这为同步的 Windows 组自动设置,但必须在 Directory Server 条目上手动设置这些属性,然后才能同步。
16.6.1. 关于 Windows 组类型
在 Active Directory 中,有两个主要的组类型:安全性和分发。安全组与目录服务器中的组最相似,因为安全组可以针对访问控制、资源限制和其他权限配置策略。分发组用于邮件分发。它们进一步分为全局和本地组。Directory Server ntGroupType 支持所有四个组类型:
-2147483646
用于全局/安全(默认)-2147483644
用于域本地/安全-2147483643
用于内置-2147483640
用于 universal/security2
代表全局/发布4
用于域本地/发布8
用于通用/发布
16.6.2. 目录服务器和 Active Directory 之间的组属性
只有 Directory 服务器和 Active Directory 的部分属性会同步。这些属性是硬编码的,无论条目同步的方式是什么。条目中存在的任何其他属性(在 Directory Server 或 Active Directory 中)均不受同步的影响。
Directory 服务器和 Active Directory 组条目中使用的一些属性是相同的。它们通常是在 LDAP 标准中定义的属性,在所有 LDAP 服务间都很常见。这些属性会完全同步到另一个属性。表 16.4 “组条目属性,其在 Directory 服务器和 Active Directory 之间是相同的” 显示 Directory 服务器和 Windows 服务器之间是相同的属性。
有些属性会定义相同的信息,但属性的名称或其架构定义有所不同。这些属性在 Active Directory 和 Directory Server 之间映射,因此一个服务器上的属性 A 被视为另一个服务器中的属性 B。对于同步,许多与 Windows 特定信息相关的属性。表 16.3 “目录服务器和 Active Directory 之间的组条目属性映射” 显示目录服务器和 Windows 服务器之间映射的属性。
有关 Directory 服务器和 Active Directory 处理某些架构元素的方式差异的更多信息,请参阅 第 16.6.3 节 “Red Hat Directory Server 和 Active Directory 之间的组架构差异”。
表 16.3. 目录服务器和 Active Directory 之间的组条目属性映射
表 16.4. 组条目属性,其在 Directory 服务器和 Active Directory 之间是相同的
cn | o |
description | ou |
l | seeAlso |
16.6.3. Red Hat Directory Server 和 Active Directory 之间的组架构差异
虽然 Active Directory 支持与目录服务器相同的基本 X.500 对象类,但管理员应该了解哪些不兼容性。
支持嵌套组(其中组包含另一个组作为成员),并且同步 Windows 同步。但是,Active Directory 将某些约束设置为嵌套组组成。例如,不允许全局组包含域本地组作为成员。目录服务器没有本地和全局组的概念,因此可以在目录服务器侧创建条目,在同步时违反 Active Directory 的限制。
16.6.4. 为目录服务器组配置组同步
要使 Directory 服务器组与 Active Directory 同步,组条目必须设置适当的同步属性。
要通过命令行启用同步,请将所需的同步属性添加到条目中,或使用这些属性创建条目。
同步需要三个模式元素:
- ntGroup 对象类。
ntUserDomainId
属性,为该条目提供 Windows ID。ntGroupCreateNewGroup
属性向同步插件发出信号,以将目录服务器条目同步到 Active Directory。ntGroupDeleteGroup
属性是可选的,但如果在 Directory Server 中删除,这会设置是否从 Active Directory 域自动删除该条目。
另外,还建议添加
ntGroupType
属性。如果没有指定此属性,则组会自动添加为全局安全组(ntGroupType:-2147483646)。
例如,使用
ldapmodify
:
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=Example Group,ou=Groups,dc=example,dc=com changetype: modify add: objectClass objectClass:ntGroup - add: ntUserDomainId ntUserDomainId: example-group - add: ntGroupCreateNewGroup ntGroupCreateNewGroup: true - add: ntGroupDeleteGroup ntGroupDeleteGroup: true - add: ntGroupType ntGroupType: 2
很多额外的 Windows 和组属性可以添加到条目中。同步的所有模式都在 第 16.6.2 节 “目录服务器和 Active Directory 之间的组属性” 中列出。属于 ntGroup 对象类的特定于 Windows 的属性在 Red Hat Directory Server 11 配置、命令和文件参考 中进行了更详细的描述。
16.6.5. 为活动目录组配置组同步
Windows 用户的同步(源自 Active Directory 域的用户)是在同步协议中配置。
启用组同步:
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt set --sync-groups="on" --suffix="dc=example,dc=com" example-agreement
要禁用组同步,可将
--sync-groups
选项设置为 off。