混合模式下的公用文件夹访问控制

 

上一次修改主题: 2005-05-12

混合模式下的公用文件夹访问控制很复杂,因为 Exchange Server 2003 与 Exchange Server 5.5 之间存在下列不同之处:

  • 只要 Exchange Server 5.5 中的公用文件夹上的 ACL 中包含一个通讯组列表,Exchange Server 2003 中该文件夹副本上的 ACL 就必须包含一个 Active Directory 安全组。如果正确配置了拓扑,则从 Exchange Server 5.5 通讯组列表到 Active Directory 通讯组、再到 Active Directory 安全组的转换是自动进行的。有关组转换的详细信息,请参阅本主题后面的“在访问控制列表中使用的组类型”。
  • Exchange Server 2003 和 Exchange Server 5.5 使用不同的属性来识别访问控制列表中的用户:
    • 通常,在 Exchange Server 5.5 中,每个用户都有一个 Windows NT Server 4.0 帐户(由其 Windows NT Server 4.0 SID 属性进行标识)和一个 Exchange Server 5.5 邮箱(由 Exchange Server 5.5 目录中的可分辨名称进行标识)。在访问控制列表中,用户(和组)是通过可分辨名称来标识的。
    • 在 Exchange Server 2003 中,每个用户都有包含邮箱相关属性的 Active Directory 帐户(由 SID 属性进行标识)。这些属性将用户链接到 Exchange 存储中的相应邮件内容。在访问控制列表中,用户(和组)是通过安全标识符 (SID) 来标识的。
      有关 Exchange Server 2003 如何跟踪混合模式用户的详细信息,请参阅本主题随后的“访问控制列表中使用的用户属性”和“在访问控制列表中避免未知用户导致的问题”。
  • Exchange Server 2003 和 Exchange Server 5.5 使用不同的格式来存储权限信息。本主题后面的“访问控制列表中使用的用户属性”描述了转换的基本概念以及它在何时发生。若要深入考察权限格式和转换过程,请参阅 Working with Store Permissions in Microsoft Exchange 2000 and 2003(英文)。

Exchange Server 5.5 将通讯组列表同时用于邮件传递和访问控制,而 Exchange Server 2003 仅仅将它们用于邮件传递。Exchange Server 2003 使用 Active Directory 安全组来实现访问控制。ADC 将 Exchange Server 5.5 通讯组列表复制到 Active Directory 通用通讯组 (UDG) 中。如果 Exchange Server 2003 在处理公用文件夹 ACL 时遇到 UDG,会立即尝试将 UDG 升级为通用安全组。然后,该通用安全组将取代 ACL 中的 UDG。

important重要提示:
UDG 必须位于 Windows Server 2003 或 Microsoft Windows 2000 纯模式域中,才能允许 Exchange Server 2003 将它升级到通用安全组。在 Exchange Server 2003 和 Exchange Server 5.5 混合环境中,如果要将 Exchange Server 5.5 通讯组列表复制到非纯模式域中,ADC 将显示警告。

在下列情况下,Exchange 无法将 UDG 转换为通用安全组:

  • UDG 驻留在混合模式的 Windows Server 2003 或 Windows 2000 域中。
  • 该 UDG 是用户从通用安全组手动转换过来的。
  • 尚未将 UDG 的成员身份复制到 Active Directory。
important重要提示:
避免将 UDG 用作通用安全组的成员。Exchange 并不进行检查以确定组成员是否是需要转换的组。因此,如果 ACL 中的通用安全组具有 UDG 成员,Exchange 将忽略这些 UDG,因此将不会正确实现 ACL。

本部分集中讲述 Exchange 在访问控制过程中如何识别用户,以及信息如何在 Exchange Server 2003 与 Exchange Server 5.5 之间传递,以便当用户无论访问 Exchange Server 2003 计算机上的公用文件夹还是 Exchange Server 5.5 计算机上的公用文件夹,都拥有等效的权限。

由于访问控制列表是公用文件夹的属性,因此它们作为公用文件夹层次结构的一部分复制。因此,无论 Exchange 是什么版本,每个公用文件夹服务器都有每个文件夹的访问控制信息的副本(即便它未存放内容副本)。

在混合模式下复制访问控制信息需要每个公用文件夹对象的三个访问控制属性:ptagACLDataptagNTSDptagAdminNTSD

  • ptagACLData 包含用户可分辨名称和权限,采用 Exchange Server 5.5 所使用的基于 MAPI 的格式。
  • ptagNTSD 包含用户 SID 和客户端访问权限,采用 Exchange Server 2003 格式。
  • ptagAdminNTSD 包含用户 SID 和管理访问权限,采用 Exchange Server 2003 格式。

转换过程中,Exchange Server 2003 使用最多三个用户帐户属性来标识用户,并将相应的信息放入访问控制列表中:

  • SID 唯一标识符对象 Active Directory。有时,该标识符可能与未迁移的原始 Windows NT Server 4.0 帐户的 SID 相同。但是,更多的情况下,该标识符是一个新值。
  • LegacyExchangeDN 在 Exchange 目录中邮箱的可分辨名称。Exchange Server 2003 使用该值将用户与 Exchange Server 5.5 邮箱关联。
  • msExchangeMasterAccountSID 如果正在混合模式中操作,但主用户帐户仍然在 Windows NT Server 4.0 域中(用户使用其 Windows NT Server 4.0 帐户登录),则 Active Directory 将包含禁用的帐户来表示该用户。每个这样的帐户都有 msExchangeMasterAccountSID 属性(也称为“关联的外部帐户”属性)。此属性包含用户 Windows NT Server 4.0 域帐户的 SID。
important重要提示:
如果未来某个时候将用户完全迁移到 Active Directory 并启用 Active Directory 帐户,则必须清除 msExchMasterAccountSID 属性。否则,Exchange Server 2003 将不会正确识别出 Active Directory 帐户已启用。
important重要提示:
第四个属性 (SIDHistory) 对于从 Exchange Server 5.5 迁移到 Exchange Server 2003 的用户也是重要的。如果在迁移过程中 Active Directory 中的用户对象获得新 SID,则旧 SID 必须放在 SIDHistory 属性中,以便 Exchange Server 5.5 仍然可以标识该用户帐户。但是,此属性不参与访问控制转换过程。

Exchange Server 2003 在公用文件夹层次结构复制过程中处理转换过程。每个公用文件夹的访问控制属性都必须转换。

对于每个文件夹访问控制列表,在从 Exchange Server 2003 复制到 Exchange Server 5.5 时,转换过程将执行下列操作:

  1. 将用户和组的 Active Directory SID 转换为 Exchange 目录中的可分辨名称:
    • 如果 Active Directory 中的用户帐户是典型的已启用帐户,则 Exchange 将在 SID 属性中搜索 SID。
    • 如果用户帐户被禁用,则 Exchange 将在 msExchangeMasterAccountSID 属性中搜索 SID。
    在这两种情况中,在标识用户帐户之后,Exchange 都将检索用户的 LegacyExchangeDN 值,并将它放在访问控制列表中。
  2. 将 Exchange Server 2003 权限转换为 Exchange Server 5.5 权限。
  3. 将经过转换的访问控制信息存储在 ptagACLData 中。
  4. ptagNTSDptagAdminNTSDptagACLData 复制到运行 Exchange Server 5.5 的计算机。

对于每个从 Exchange Server 5.5 复制到 Exchange Server 2003 的文件夹访问控制列表,转换过程都执行下列操作:

  1. 丢弃 ptagNTSD ptagAdminNTSD 的传入值。此步骤可保护这些属性,避免接收它们在受 Exchange Server 5.5 控制时可能已发生的任何更改。
  2. ptagACLData 中提取用户和组的可分辨名称,并将它们转换成 SID。
    Exchange 在 Active Directory 内从用户帐户的 LegacyExchangeDN 属性中搜索可分辨名称。
    • 如果用户有已启用的 Active Directory 帐户,则 Exchange 将使用访问控制列表中的 SID 属性的值。
    • 如果用户有 Windows NT Server 4.0 帐户和已禁用的 Active Directory 帐户,则 Exchange 将使用访问控制列表中的 msExchangeMasterAccountSID 属性的值。这是 Windows NT Server 4.0 帐户的 SID。
  3. ptagACLData 中提取权限,并将它们转换成 Exchange Server 2003 权限。
  4. 将经过转换的访问控制信息存储在 ptagNTSD 中。ptagAdminNTSD 的原始值则保留不变。
  5. 除非在步骤 2 或步骤 3 的转换中发生问题,否则丢弃 ptagACLData 的值。如果发生转换问题,则 Exchange Server 2003 保留 ptagACLData 值。
note注意:
如果要将文件夹及其内容从 Exchange Server 5.5 复制到 Exchange Server 2003,请不要尝试在邮件上设置显式权限。Exchange Server 5.5 对文件夹应用权限。不能像在 Exchange Server 2003 中一样明确地对各个邮件指定权限(项目级权限)。Exchange Server 2003 管理权限以便限制对邮件的访问,但是,如果您尝试在这种情况下更改邮件权限,更改将在下一个复制周期丢失。

本部分使用两个示例来帮助说明转换过程的工作原理。

最简单的混合模式配置是用户帐户已从 Windows NT Server 4.0 安全帐户管理器 (SAM) 迁移到 Active Directory 的单个域。尽管邮箱可能仍然驻留在运行 Exchange Server 5.5 的计算机上,但是它们将与 Active Directory 帐户关联,而不与 Windows NT Server 4.0 帐户关联。下图显示了这样的配置。

9b1448e7-bf48-4a0c-a2a5-27d26897798e

可以通过两种途径从最初的 Exchange Server 5.5 和 Windows NT Server 4.0 系统移至此配置:

  • 将 Windows NT Server 4.0 主域控制器 (PDC) 升级至 Windows Server 2003,并将它提升为现有域的域控制器。
    此操作安装并配置 Active Directory(在此过程中将移动 Windows NT Server 4.0 帐户)。对于每个帐户来说,SID 属性将保持不变。(Windows NT Server 4.0 帐户的 SID 成为新的 Active Directory 帐户的 SID。)
  • 使用 Active Directory 迁移工具将 Windows NT Server 4.0 主域控制器中的用户帐户迁移至 Active Directory。确保迁移工具将用户的现有 SID 迁移到 SIDHistory 属性。此操作为用户创建并启用 Active Directory 帐户。

在这两种情况下,在配置 Active Directory 连接器之后,它都会完成用邮箱属性(例如 LegacyExchangeDN)填充 Active Directory 用户帐户的工作。

在上图所示的拓扑中,假设有一个名为 User1 的用户,该用户在 Active Directory 中拥有帐户,并在 Exchange Server 5.5 中拥有邮箱。

在本例中,User1 被授予了对在 Exchange Server 2003 计算机和 Exchange Server 5.5 计算机上同时拥有内容副本的公用文件夹的作者权限。如果 User1 引用 Exchange Server 5.5 公用文件夹服务器的副本,则该服务器上的公用文件夹访问控制列表将以可分辨名称 (/o=Org/ou=Site/cn=Recipients/cn=User1) 来标识 User1。当访问控制列表复制到 Exchange Server 2003 公用文件夹服务器上时,Exchange Server 2003 转换此信息。Exchange Server 2003 在 Active Directory 中查找其 LegacyExchangeDN 值等于 /o=Org/ou=Site/cn=Recipients/cn=User1 的用户帐户,并检索该帐户的 SID 值。Exchange 将该值放入公用文件夹访问控制列表中以标识 User1。

任何服务器都可以授予 User1 对该文件夹的相应访问权限。

一种更复杂的混合模式配置是一个具有多个域的 Exchange 配置。要实现此类配置,可以安装一个信任现有 Windows NT Server 4.0 域的新 Windows Server 2003 域,而不是升级或迁移 Windows NT Server 4.0 域。

下图显示了这样的配置。在本例中,邮箱仍位于运行 Exchange Server 5.5 的计算机上,并且用户帐户保留在 Windows NT Server 4.0 域中。Exchange Server 2003 已安装在新的 Windows Server 2003 域中。

72334fbf-3a49-4b34-88ec-dc265de6629b

在此配置中,除了 SIDSIDHistoryLegacyExchangeDN 属性以外,Exchange 还使用 msExchMasterAccountSID 属性(也称为“关联的外部帐户”)来标识用户并将用户与邮箱或访问控制信息进行匹配。msExchMasterAccountSID 属性包含用户的 Windows NT Server 4.0 帐户的 SID。

在上图所示那样的拓扑中,假设有一个名为 User1 的用户,该用户在 Domain1 内的 Windows NT Server 4.0 中有帐户,并且在 Exchange Server 5.5 中有邮箱。User1 还在 Domain2 的 Active Directory 中拥有一个禁用的帐户。

在本例中,User1 被授予了在 Exchange Server 2003 服务器和 Exchange Server 5.5 服务器上同时拥有内容副本的公用文件夹的作者权限。如果 User1 引用 Exchange Server 5.5 公用文件夹服务器的副本,则该服务器上的公用文件夹访问控制列表将以可分辨名称 (/o=Org/ou=Site/cn=Recipients/cn=User1) 来标识 User1。

当访问控制列表复制到 Exchange Server 2003 公用文件夹服务器上时,Exchange Server 2003 转换此信息。与在其他任何情况下一样,Exchange Server 2003 在 Active Directory 中查找其 LegacyExchangeDN 值等于 /o=Org/ou=Site/cn=Recipients/cn=User1 的用户帐户。Exchange 查找 User1 的 Active Directory 帐户,但该帐户被禁用。Exchange 将从 msExchMasterAccountSID 属性中检索 SID,而不是从 SID 属性中检索 SID。Exchange 将该值(最初的 Windows NT Server 4.0 SID)放入公用文件夹访问控制列表中以标识 User1。

多个域会产生明显的负面影响。如果管理员或用户在已经连接到运行 Exchange Server 2003 的计算机的情况下,试图修改 User1 在公用文件夹上的客户端权限,那么权限对话框将列出“Domain1\User1”格式的用户,而不仅仅是列出“User1”。

未知用户(有时称为僵用户)是在 ACL 中列出但没有帐户的用户。出现未知用户情形的最常见原因如下所示:如果拓扑是纯粹的 Exchange Server 5.5,已被授予 Exchange Server 5.5 公用文件夹权限的 Exchange Server 5.5 用户将被删除。之后,公用文件夹复制到 Exchange Server 2003 中,而指向该用户的引用仍然保留在 ACL 中。Exchange Server 2003 无法处理该 ACL,因为它无法在 Active Directory 中找到该用户。在此问题得到解决之前,只有文件夹所有者才能访问该文件夹。此限制会防止已被明确拒绝了该文件夹权限的用户访问该文件夹。当 Exchange 已经将文件夹权限设置为“仅限所有者”时,它还会记录一个 9551 事件。有关 9551 事件以及在 Exchange Server 2003 和 Exchange Server 5.5 之间复制信息时可能发生的其他事件的详细信息,请参阅诊断并修复 Exchange Server 2003 存储问题

有关当文件夹从 Exchange Server 5.5 复制到 Exchange Server 2003 时 Exchange 如何转换 ACL 的详细信息,请参阅 Working with Store Permissions in Microsoft Exchange 2000 and 2003 中的“Anatomy of Object Level Access Contro”(英文)。尤其是,参阅其中的子主题“Special Considerations for Coexisting Exchange 2000 and Exchange 5.5 Servers”。

避免产生未知用户的最佳方法是,在开始将公用文件夹复制到 Exchange Server 2003 中之前先运行 Exchange Server 5.5 实用程序“DS/IS 一致性调整程序”。这会将未知用户从 ACL 中删除。

在某些情况下,Exchange Server 2003 可能会以不同的方式处理未知用户:

  • 如果文件夹是以前从 Exchange Server 5.5 中正确复制的(没有出现问题),但 ACL 中突然出现一个未知用户,则 Exchange 会忽略该未知用户,并照常处理 ACL 的余下内容。这一情况的假设前提是:在 Exchange Server 5.5 中删除了一个用户,或者在 Exchange Server 5.5 中添加了一个新用户,但该用户尚未复制到 Active Directory 中。此问题可能会在下一个 ADC 复制期间自行解决。
  • 如果已经去除了所有 Exchange Server 5.5 服务器,并已将 Exchange Server 2003 切换到纯模式,则 Exchange 假定该用户已删除,并将未知用户从 ACL 中删除。

有时,可以设置一个注册表项,以便在 Exchange 处于混合模式时通知 Exchange 从 ACL 中删除未知用户。建议仅在必要时才设置此注册表项(例如,如果具有未知用户的小部分子集,并且可以将它们全部从公用文件夹 ACL 中安全地除去)。否则,如果因复制延迟而导致用户暂时是未知的(如前面的列表所述),您将丢失该用户的权限信息。

Caution警告:
放弃未知用户意味着如果这些用户在公用文件夹上拥有访问或拒绝权限,那么这些权限可能丢失。建议不要长期地丢弃未知用户。
Caution警告:
错误地编辑注册表可能导致严重的问题,甚至可能需要重新安装操作系统。因注册表编辑不当而导致的问题可能没有办法解决。在编辑注册表之前,请备份所有重要数据。

有关如何在包含公用文件夹副本的 Exchange Server 2003 服务器上临时忽略未知用户的详细步骤,请参阅如何在包含公用文件夹副本的 Exchange Server 2003 服务器上临时忽略未知用户

 
显示: