MAPI 权限和 Windows 权限之间的转换

 

上一次修改主题: 2006-08-16

Exchange 访问控制过程的详细内容中“ACL 中的 ACE 序列”已说明,Exchange 定期执行 Windows 2000 权限与 MAPI 权限之间的转换。本节列出了 Exchange 2003 使用的 MAPI 权限,并演示 Exchange 如何将权限从一种形式转换为其他形式。

本节中的表列出了 Exchange 2003 使用的 MAPI 权限。用户界面中仅提供第一个表中的权限。第二个表中的权限以编程方式提供。

用户界面中可用的 MAPI 权限

显示名 权限

读取项目

frightsReadAny

创建项目

frightsCreate

编辑项目:拥有

frightsEditOwned

删除项目:拥有

frightsDeleteOwned

编辑项目:全部

frightsEditAny

删除项目:全部

frightsDeleteAny

创建子文件夹

frightsCreateSubfolder

文件夹所有者

frightsOwner

文件夹联系人

frightsContact(不是 rightsAll 的一部分)

可看到文件夹

frightsFolderVisible

编程时可用的 MAPI 权限组

权限 成员权限

rightsNone

rightsReadOnly

frightsReadAny

rightsReadWrite

frightsReadAny

frightsEditAny

rightsAll

全部

Exchange 使用以下过程将 Windows 2000 权限转换为 MAPI 权限。

  1. 转换邮件 ACE,如下表所述。

    邮件 ACE

    Exchange 2003 权限 MAPI 权限

    fsdrightReadProperty

    frightsReadAny

    fsdrightWriteOwnProperty

    frightsEditOwned

    fsdrightWriteProperty

    frightsEditAny

    fsdrightDeleteOwnItem

    frightsDeleteOwned

    fsdrightDelete

    frightsDeleteAny

  2. 转换文件夹 ACE,如下表所述。

    文件夹 ACE

    Exchange 2003 权限 MAPI 权限

    fsdrightCreateContainer

    frightsCreateSubfolder

    fsdrightContact

    frightsContact

    如果所有文件夹所有者权限都存在:

    fsdrightWriteProperty

    fsdrightOwner

    fsdrightWriteSD

    fsdrightDelete

    fsdrightWriteOwner

    fsdrightWriteAttributes

    fsdrightViewItem

    frightsOwner

    fsdrightCreateItem

    frightsCreate

  3. 对于文件夹或邮件,如果 fsdrightViewItem 存在,则将其映射到 frightsVisible。
  4. 通过增加下列更改确保转换的权限内部一致:
    • 如果被授予 frightsDeleteAny,则授予 frightsDeleteOwned。
    • 如果被授予 frightsEditAny,则授予 frightsEditOwned。
    • 如果被授予 frightsReadAny 或 frightsOwner,则授予 frightsVisible。

Exchange 使用以下过程将 MAPI 权限转换为 Windows 2000 权限。

important重要提示:
Exchange 使用新转换的 ACE 覆盖现有的安全描述符 ACE。不管是使用 MAPI 用户界面修改权限,还是从共存的 Exchange 5.5 服务器复制 ACE,都会发生相同的转换。如果从 Exchange 5.5 复制了 ACE,则将从以下预备步骤开始进行转换:将用户或组的 Exchange 5.5 可分辨名称转换为 Windows 2000 安全标识符。
  1. ‏将 MAPI ACE 扩展为两个 ACE。
    • 对象继承/仅继承 (OI/IO) ACE(针对邮件;对文件夹忽略)
    • 容器继承 (CI) ACE(针对文件夹;对邮件忽略)
  2. 如下表所述转换 ACE 中的权限。

    ACE 中的权限

    MAPI 权限 Exchange 2003 权限

    frightsEditAny

    对邮件的所有合法的一般性写入位(删除除外)

    frightsDeleteAny

    fsdrightDelete

    frightsEditOwned

    fsdrightWriteOwnProperty

    frightsDeleteOwned

    fsdrightDeleteOwnItem

    frightsReadAny

    对邮件的所有合法的一般性读取位

    关于邮件的所有合法的一般性执行位,包括关于邮件的 fsdrightViewItem

    对于文件夹 ACE,这将影响 fsdrightViewItem

    frightsCreateSubfolder

    fsdrightCreateContainer

    frightsOwner

    fsdrightWriteProperty

    fsdrightOwner

    fsdrightWriteSD

    fsdrightDelete

    fsdrightWriteOwner

    fsdrightWriteAttributes

    fsdrightViewItem

    frightsContact

    fsdrightContact

    frightsVisible

    对文件夹的所有合法的一般性读取位

    对文件夹的所有合法的一般性执行位

    fsdrightViewItem

  3. 验证是否存在必需的 ACE 授予/拒绝对并且其顺序是否正确。

以下示例说明将 Windows 2000 权限转换为 MAPI 权限,然后再转换回来的过程。首先,考虑关于 Exchange 存储中文件夹的安全描述符。此安全描述符包含两个 ACE,用于指定授予 FolderUsers 组的权限:

  • 文件夹 ACE(带有 CONTAINER_INHERIT_ACE 标志的 ACE)
  • 邮件 ACE(带有 OBJECT_INHERIT_ACE 和 INHERIT_ONLY_ACE 标志的 ACE)

为了便于讨论,这些 ACE 向 FolderUsers 组授予所有适用的权限。否则,还需要其他两个 ACE 来拒绝未授予的所有权限。

下表列出了这两个 ACE 所授予的权限。

FolderUsers 组的两个 Grant ACE 所指定的权限

文件夹 ACE 中的权限 邮件 ACE 中的权限

fsdrightSynchronize

fsdrightSynchronize

fsdrightDelete

fsdrightDelete

fsdrightReadControl

fsdrightReadControl

fsdrightWriteSD

fsdrightWriteSD

fsdrightWriteOwner

fsdrightWriteOwner

fsdrightOwner

fsdrightWriteAttributes

fsdrightWriteAttributes

fsdrightWriteOwnProperty

fsdrightViewItem

fsdrightDeleteOwnItem

fsdrightWriteProperty

fsdrightViewItem

fsdrightExecute

fsdrightWriteProperty

fsdrightReserved1

fsdrightExecute

fsdrightReadAttributes

fsdrightReadAttributes

fsdrightListContents

fsdrightReadBody

fsdrightCreateItem

fsdrightWriteBody

fsdrightCreateContainer

fsdrightAppendMsg

fsdrightReadProperty

fsdrightReadProperty

本示例集中介绍文件夹 ACE。此时,不需要考虑邮件 ACE。

下表显示如何将 Windows 2000 权限映射到 MAPI 权限。注意,在许多情况下,单个 MAPI 权限映射到一组 Windows 2000 权限,并丢弃某些 Windows 2000 权限。

转换权限

Windows 2000 权限 MAPI 权限

fsdrightOwner

fsdrightWriteAttributes

fsdrightWriteSD

fsdrightWriteOwner

(仅当还存在 fsdrightViewItem、fsdrightWriteProperty 和 fsdrightDelete 时,此转换才能成功)

frightsOwner

fsdrightViewItem

frightsVisible

fsdrightWriteProperty

frightsEditAny

frightsEditOwned

fsdrightDelete

frightsDeleteAny

frightsDeleteOwned

fsdrightCreateItem

frightsCreate

fsdrightCreateContainer

frightsCreateSubfolder

fsdrightReadProperty

frightsReadAny

fsdrightSynchronize

fsdrightReadControl

fsdrightExecute

fsdrightReserved1

fsdrightReadAttributes

fsdrightListContents

忽略

上述映射过程将为授予 MAPI 权限的 FolderUsers 组生成文件夹 ACE。

若要执行反向转换,Exchange 首先复制此 ACE 以重新生成文件夹 ACE 和邮件 ACE,如下表所示。

复制 ACE

文件夹 ACE 邮件 ACE

frightsOwner

frightsOwner

frightsVisible

frightsVisible

frightsEditAny

frightsEditAny

frightsEditOwned

frightsEditOwned

frightsDeleteAny

frightsDeleteAny

frightsDeleteOwned

frightsDeleteOwned

frightsCreate

frightsCreate

frightsCreateSubfolder

frightsCreateSubfolder

frightsReadAny

frightsReadAny

然后,Exchange 转换这些权限,如以下两表所示。

转换文件夹 ACE

MAPI 权限 Windows 2000 权限

frightsOwner

fsdrightOwner

fsdrightWriteProperty

fsdrightWriteSD

fsdrightDelete

fsdrightWriteOwner

fsdrightWriteAttributes

fsdrightViewItem

frightsVisible

fsdrightViewItem

fsdrightReadControl

fsdrightReadAttributes

fsdrightExecute

fsdrightReadProperty

fsdrightSynchronize

frightsEditAny

fsdrightReadControl

fsdrightWriteBody(对文件夹忽略)

fsdrightWriteAttributes

fsdrightWriteProperty

fsdrightAppendMsg(对文件夹忽略)

fsdrightCreateItem

fsdrightDelete

fsdrightCreateContainer

fsdrightOwner

fsdrightSynchronize

fsdrightWriteSD

fsdrightWriteOwner

frightsEditOwned

fsdrightWriteOwnProperty(对文件夹忽略)

frightsDeleteAny

fsdrightDelete

frightsDeleteOwned

fsdrightDeleteOwnItem(对文件夹忽略)

frightsCreate

fsdrightCreateItem

frightsCreateSubfolder

fsdrightCreateContainer

frightsReadAny

fsdrightReadControl

fsdrightReadBody(对文件夹忽略)

fsdrightListContents

fsdrightReadAttributes

fsdrightReadProperty

fsdrightViewItem

fsdrightSynchronize

fsdrightExecute

转换邮件 ACE

MAPI 权限 Windows 2000 权限

frightsOwner

fsdrightOwner(对邮件忽略)

fsdrightWriteProperty

fsdrightWriteSD

fsdrightDelete

fsdrightWriteOwner

fsdrightWriteAttributes

fsdrightViewItem

frightsVisible

fsdrightViewItem

fsdrightReadControl

fsdrightReadAttributes

fsdrightExecute

fsdrightReadProperty

fsdrightSynchronize

frightsEditAny

fsdrightReadControl

fsdrightWriteBody

fsdrightWriteAttributes

fsdrightWriteProperty

fsdrightAppendMsg

fsdrightCreateItem(对邮件忽略)

fsdrightDelete

fsdrightCreateContainer(对邮件忽略)

fsdrightOwner(对邮件忽略)

fsdrightsynchronize

fsdrightWriteSD

fsdrightWriteOwner

frightsEditOwned

fsdrightWriteOwnProperty

frightsDeleteAny

fsdrightDelete

frightsDeleteOwned

fsdrightDeleteOwnItem

frightsCreate

fsdrightCreateItem(对邮件忽略)

frightsCreateSubfolder

fsdrightCreateContainer(对邮件忽略)

frightsReadAny

fsdrightReadControl

fsdrightReadBody

fsdrightListContents(对邮件忽略)

fsdrightReadAttributes

fsdrightReadProperty

fsdrightViewItem

fsdrightSynchronize

fsdrightExecute

前面的转换可产生两个 Grant ACE,如下表所示:

FolderUsers 组的两个 Grant ACE 所指定的权限

文件夹 ACE 中的权限 邮件 ACE 中的权限

fsdrightOwner

fsdrightWriteProperty

fsdrightWriteProperty

fsdrightWriteSD

fsdrightWriteSD

fsdrightDelete

fsdrightDelete

fsdrightWriteOwner

fsdrightWriteOwner

fsdrightWriteAttributes

fsdrightWriteAttributes

fsdrightViewItem

fsdrightViewItem

fsdrightReadControl

fsdrightReadControl

fsdrightReadAttributes

fsdrightReadAttributes

fsdrightExecute

fsdrightExecute

fsdrightReadProperty

fsdrightReadProperty

fsdrightSynchronize

fsdrightSynchronize

fsdrightWriteBody

fsdrightCreateItem

fsdrightAppendMsg

fsdrightCreateContainer

fsdrightWriteOwnProperty

fsdrightListContents

fsdrightDeleteOwnItem

fsdrightReserved1

fsdrightReadBody

文件夹 ACE 和邮件 ACE 可有效地将所有可用的权限授予 FolderUsers,因此不需要两个相应的 Deny ACE。这些 ACE 基本上和在执行任何转换之前“FolderUsers 组的两个 Grant ACE 所指定的权限”表中列出的两个 ACE 相同。

 
显示: