规划和实现拆分权限模型

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2008-02-05

实现拆分权限模型的组织通常希望对授予管理员的特定权限进行限制,以明确责任并增强安全性。在 Microsoft Exchange Server 2007 中,有关 Exchange 收件人属性的权限将组合在一起。这样,在将 Exchange 权限与其他管理权限拆分时,可以最大程度地减少必须手动执行的权限配置。

默认情况下,只有 Exchange 组织管理员可以同时管理 Exchange 收件人和配置数据。但是,若要管理特定域内的对象创建、修改和删除,这些管理员还需要拥有在 Windows Account Operators 安全组或更高级别的安全组中的成员身份。有关如何授予 Account Operators 权限的信息,请参阅 Windows Server 2003 产品帮助

访问控制

若要为林的域命名上下文内的对象管理与 Exchange 有关的属性,必须给 Exchange Server Administrators 组授予修改权限。通过更改包含这些属性的对象的安全描述符,可以执行此操作。

安全描述符包含两种访问控制列表 (ACL)。ACL 是被允许或拒绝访问某个资源或对象的用户对象或安全组对象的列表。ACL 允许将特定的权限应用于整个对象、对象的一组属性或对象的个别属性。对象的安全描述符中包含两种类型的 ACL:

  • 自定义访问控制列表 (DACL)   DACL 确定被允许或拒绝访问某个对象的用户和组。如果 DACL 未显式确定某个用户或某个用户所属的任何组,将拒绝该用户访问相应对象。默认情况下,DACL 受对象所有者或对象创建者控制,包含的访问控制条目 (ACE) 可以确定用户对对象的访问权限。

  • 系统访问控制列表 (SACL)   SACL 确定在用户或组成功地访问对象或无法访问对象时,您希望审核的用户和组。默认情况下,SACL 受对象所有者或对象创建者控制。SACL 包含的 ACE 可以确定是否记录使用特定权限(例如完全控制和读取)访问对象用户的成功尝试或失败尝试。

ACE 是对象的 DACL 中的条目,为用户或组授予权限。ACE 也是对象的 SACL 中的条目,指定要为用户或组审核的安全事件。

权限的应用位置

Active Directory 目录服务林由一个或多个共享公用配置和架构边界的域组成。在这些域中,还可以通过容器(也称为组织单位 (OU))组织对象。每个组织的管理员必须设计一个 OU 结构,以满足其业务需要并优化管理权限的委派。

有关如何设计 OU 结构的详细信息,请参阅 管理 Windows 网络的 Active Directory 设计的最佳实践委派 Active Directory 管理的最佳实践

在设计委派模型时,可以通过多种方法应用权限。本主题只介绍下列两种方法:

  • 在域级别应用权限

  • 在 OU 级别应用权限

在域级别应用权限

在域级别应用委派的权限时,所有对象都将继承这些权限。其中包括用户、联系人、组、域 DNS 和计算机。在运行 Microsoft Windows 2000 Server 的域控制器上,在域级别添加可继承的 ACE 后,将更改该域中每个对象的 DACL。根据添加的 ACE 数以及该域中的对象数的不同,这些更改可能会导致发生 ACL 膨胀。“ACL 膨胀” 表示对象上不必要的 ACE 增大了 ACL 的大小。ACL 膨胀增大了域中所有域控制器上的 Ntds.dit 文件的物理大小。这可能会导致 Active Directory 性能问题。

在运行 Microsoft Windows Server 2003 的域控制器上,唯一安全描述符只存储一次,而不是为每个继承该安全描述符的对象存储一次。这一变化可以减少由于对可继承 ACE 的更改导致的数据冗余和数据库增长。

在 OU 级别应用权限

应用权限建议的做法是在父 OU 级别应用权限。这样可以将对该 OU 及其子容器中包含的特定类对象应用权限独立出来。此方法要求将所有托管对象放入父 OU。业务要求可能会使您的组织无法采用此方法。如果是这样,可以跨多个 OU 应用权限。

如何应用权限

Microsoft 提供了两个用于应用权限的工具:

  • ADSI 编辑 (AdsiEdit.msc)

  • DSACLS (Dsacls.exe)

两个工具均包含在 Windows Server 2003 CD 的 Support\Tools 中。也可以使用几种第三方产品来应用权限。

note注意:
如果使用 ADSI(Active Directory 服务接口)编辑、DSACLS、LDP (Ldp.exe) 工具或其他轻型目录访问协议 (LDAP) 版本 3 客户端时错误地修改了 Active Directory 对象的属性,可能会出现严重的问题。这些问题可能要求您重新安装 Windows Server 和/或 Exchange 2007。修改 Active Directory 对象属性的风险由您自行承担。

有关如何使用 ADSI 编辑的详细信息,请参阅 如何使用 ADSI 编辑应用权限

在 Exchange 2007 中应用权限的建议做法是在 Exchange 命令行管理程序中使用 Add-ADPermission cmdlet。有关详细信息,请参阅 Add-ADPermission。有关 Exchange 命令行管理程序的详细信息,请参阅使用 Exchange 管理外壳

如何应用权限的示例

由于在 Exchange 2007 中实现了属性集,所以,实现拆分权限模型需要的 ACE 数要远少于早期版本的 Exchange Server。

Exchange 2007 管理员若要管理所有与邮件有关的属性,必须在相应的域分区中拥有下列权限:

  • 对下列属性集的写入访问权限:

    • Exchange 个人信息

    • Exchange 信息

  • 对下列属性的写入访问权限:

    • legacyExchangeDN

    • displayName

    • adminDisplayName

    • displayNamePrintable

    • publicDelegates

    • garbageCollPeriod

    • textEncodedORAddress

    • showInAddressBook

    • proxyAddresses

    • mail

  • msExchDynamicDistributionList 对象的创建权限

  • msExchDynamicDistributionList 对象的删除权限

  • msExchDynamicDistributionList 对象的完全控制权限

  • 一般的读取权限。其中包括读取权限、列出内容、列出对象和读取所有属性。

除了上述权限之外,收件人管理员还必须在 Exchange 组织中拥有下列权限:

  • Exchange 仅查看管理员角色或更高级别的角色

    note注意:
    某些操作(例如移动邮箱)需要拥有 Exchange 服务器管理员角色或更高级别的角色。
  • 对 Exchange 组织中“地址列表”容器的 msExchLastAppliedRecipientFiltermsExchRecipientFilterFlags 属性的写入访问权限。收件人管理员只有拥有这些权限才能执行 Update-AddressList cmdlet。

  • 对 Exchange 组织中“收件人策略”容器的 msExchLastAppliedRecipientFiltermsExchRecipientFilterFlags 属性的写入访问权限。收件人管理员只有拥有这些权限才能执行 Update-EmailAddressPolicy cmdlet。

  • 对 Exchange 2007 管理组的访问收件人更新服务扩展权限。由于在 Exchange 2007 中,在设置进程中为收件人标记了与地址有关的信息,所以,需要拥有此扩展权限。

note注意:
上述权限用于管理 Exchange 特有的属性。除非为管理员委派了相应的权限,否则,Exchange 管理员无法管理在 Exchange 以外创建的属性。

如何使用 Exchange 命令行管理程序应用权限

本节提供如何使用 Exchange 命令行管理程序委派权限的示例。

此示例中的命令使 OU1AdminGroup 安全组中的管理员可以对包含 ContosoOrg Exchange 组织的 Contoso.com 林中 Container1 OU 层次结构包含的所有用户、组和联系人执行下列操作:为收件人启用邮件和禁用邮件、管理电子邮件地址以及显示名称。

如果希望对组织执行上述任务,请对每个希望授予访问权限的容器运行下列命令。使用您自己的域信息替换域名、Exchange 组织和帐户信息。

必须按此顺序运行下列命令来授予权限。

  1. 运行以下命令管理 OU 中的对象与 Exchange 有关的属性。

    Add-ADPermission -Identity "ou=Container1,dc=Contoso,dc=com" -User "Contoso\OU1AdminGroup" -AccessRights ReadProperty, WriteProperty -Properties Exchange-Information, Exchange-Personal-Information, legacyExchangeDN, displayName, adminDisplayName, displayNamePrintable, publicDelegates, garbageCollPeriod, textEncodedORAddress, showInAddressBook, proxyAddresses, mail
    
  2. 运行以下命令提供对 OU 中的所有对象的一般读取权限。

    Add-ADPermission -Identity "ou=Container1,dc=Contoso,dc=com" -User "Contoso\OU1AdminGroup" -AccessRights GenericRead
    
  3. 运行以下命令,授予管理 OU 中的动态通讯组的相应权限。

    Add-ADPermission -Identity "ou=Container1,dc=Contoso,dc=com" -User "Contoso\OU1AdminGroup" -AccessRights GenericAll -InheritanceType Descendents -InheritedObjectType msExchDynamicDistributionList
    Add-ADPermission -Identity "ou=Container1,dc=Contoso,dc=com" -User "Contoso\OU1AdminGroup" -AccessRights CreateChild, DeleteChild -ChildObjectTypes msExchDynamicDistributionList
    

    对于 Exchange 2007 Service Pack 1 (SP1),请运行以下命令:

    ADPermission -Identity "ou=Container1,dc=Contoso,dc=com" -User "Contoso\OU1AdminGroup" -AccessRights GenericAll -ChildObjectTypes msExchDynamicDistributionList
    
  4. 运行以下命令授予访问收件人更新服务的 OU1AdminGroup 安全组扩展权限。

    Add-ADPermission -Identity "CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" -User "Contoso\OU1AdminGroup " -InheritedObjectType ms-Exch-Exchange-Server -ExtendedRights ms-Exch-Recipient-Update-Access -InheritanceType Descendents
    
  5. 运行下列命令授予更新地址列表和电子邮件地址策略的 OU1AdminGroup 安全组权限。

    Add-ADPermission -Identity "CN=Address Lists Container,CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" -User "company\OU1AdminGroup" -AccessRights WriteProperty -Properties msExchLastAppliedRecipientFilter, msExchRecipientFilterFlags
    Add-ADPermission -Identity "CN=Recipient Policies,CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" -User "company\OU1AdminGroup" -AccessRights WriteProperty -Properties msExchLastAppliedRecipientFilter, msExchRecipientFilterFlags
    

如果命令运行成功,每个命令将输出为该对象添加的 ACE。

如何使用 DSACLS 应用权限

本节提供如何使用 DSACLS (Dsacls.exe) 应用权限的示例。

DSACLS 是一个命令行工具,可以用于查询和更改 Active Directory 对象的权限和安全属性。DSACLS 包含在 Windows Server 2003 支持工具中。此外,该命令行相当于 Windows 2000 Server Active Directory 管理单元工具(例如“Active Directory 用户和计算机”和“Active Directory 站点和服务”)中的“安全性”选项卡。

此示例中的命令使 OU1AdminGroup 安全组中的管理员可以对包含 ContosoOrg Exchange 组织的 Contoso.com 林中 OUContainer1 OU 层次结构包含的所有用户、组和联系人执行下列操作:为收件人启用邮件和禁用邮件、管理电子邮件地址以及显示名称。

note注意:
DSACLS 区分大小写。传递给 DSACLS 的语法必须是精确的,因为所有字符都是按字面传递。其中包括空格和换行符。如果从 DSACLS 收到错误消息,请复查命令,以确保命令是正确的,或尝试将命令拆分成更小的命令段。有关如何使用 DSACLS 的详细信息,请参阅 Microsoft 知识库文章 281146 如何在 Windows Server 2003 和 Windows 2000 中使用 Dsacls.exe

必须按此顺序运行下列命令来授予权限。

  1. 使用可以执行相应任务的帐户(例如域管理员)登录到林中安装了 Windows 支持工具的计算机上。使用您自己的域信息替换域名、Exchange 组织和帐户信息。

  2. 打开命令提示窗口,然后键入下列命令来管理 OU 中各对象的与 Exchange 有关的属性。

    dsacls "OU=OUContainer1,DC=Contoso,DC=com" /I:T /G "Contoso\OU1AdminGroup:RPWP;legacyExchangeDN" "Contoso\OU1AdminGroup:RPWP;displayName" "Contoso\OU1AdminGroup:RPWP;adminDisplayName" "Contoso\OU1AdminGroup:RPWP;displayNamePrintable" "Contoso\OU1AdminGroup:RPWP;publicDelegates" "Contoso\OU1AdminGroup:RPWP;garbageCollPeriod" "Contoso\OU1AdminGroup:RPWP;textEncodedORAddress" "Contoso\OU1AdminGroup:RPWP;showInAddressBook" "Contoso\OU1AdminGroup:RPWP;proxyAddresses" "Contoso\OU1AdminGroup:RPWP;mail" "Contoso\OU1AdminGroup:RPWP;Exchange Personal Information" "Contoso\OU1AdminGroup:RPWP;Exchange Information" "Contoso\OU1AdminGroup:CCDC;msExchDynamicDistributionList" "Contoso\OU1AdminGroup:GR;"
    
  3. 打开命令提示窗口,然后键入以下命令来授予管理 OU 中的动态通讯组的相应权限。

    dsacls "OU=OUContainer1,DC=Contoso,DC=com" /I:S /G "Contoso\OU1AdminGroup:GA;; msExchDynamicDistributionList"
    
  4. 打开命令提示窗口,然后键入以下命令来授予访问收件人更新服务的 OU1AdminGroup 安全组扩展权限。

    dsacls "CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" /I:S /G "Contoso\OU1AdminGroup:CA;Access Recipient Update Service;msExchExchangeServer"
    
  5. 打开命令提示窗口,然后键入下列命令来授予更新地址列表和电子邮件地址策略的 OU1AdminGroup 安全组权限。

    dsacls "CN=Address Lists Container, CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" /I:T /G "company\OU1AdminGroup:WP;msExchLastAppliedRecipientFilter" "company\OU1AdminGroup:WP;msExchRecipientFilterFlags"
    dsacls "CN=Recipient Policies, CN=ContosoOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com" /I:T /G "company\OU1AdminGroup:WP;msExchLastAppliedRecipientFilter" "company\OU1AdminGroup:WP;msExchRecipientFilterFlags"
    

如果命令运行成功,该命令将在命令提示符下输出已修改的 Windows 安全描述符并显示 The command completed successfully

配置拆分权限脚本

\Exchange Server\Scripts 目录中有一个脚本可以帮助您配置拆分权限模型。

使用 Exchange 命令行管理程序可以运行以下脚本:

  • ConfigureSplitPerms.ps1   可以使用 ConfigureSplitPerms.ps1 脚本配置本主题中讨论的必要权限。

有关脚本编写的详细信息,请参阅使用 Exchange 管理外壳

详细信息

有关拆分权限、与 Exchange 相关的属性和用户、联系人以及与组相关的任务的详细信息,请参阅拆分权限模型参考