Outlook 外接程序的隐私、权限和安全性

最终用户、开发人员和管理员可以使用 Outlook 外接程序的安全模型的分层权限级别来控制隐私和性能。

本文介绍了 Outlook 加载项可以请求的可能权限,并从以下几个角度审视安全模型。

  • AppSource:加载项完整性

  • 最终用户:隐私和性能问题

  • 开发人员:权限选择和资源使用限制

  • 管理员:设置性能阈值的权限

注意

本文重点介绍特定于 Outlook 加载项的隐私、权限和安全性的信息。如果尚未查看,建议先查看 Office 加载项的隐私和安全性,因为其内容适用于所有 Office 加载项。

权限模型

客户对外接程序安全的理解可能会影响外接程序采用情况,因此 Outlook 外接程序安全依赖于一个多层权限模型。 Outlook 外接程序可能会公开其所需的权限级别,从而确定外接程序可以对客户邮箱数据采取的可能访问和操作。

有四个级别的权限。

权限级别
规范名称
仅外接程序清单名称 Microsoft 365 名称的统一清单 摘要说明
限制 受限 MailboxItem.Restricted.User 允许访问与用户或邮件项目的特定信息无关的属性和方法。
读取项 ReadItem MailboxItem.Read.User 除了 受限中允许的内容外,它还允许:
  • 正则表达式
  • Outlook 外接程序 API 读取访问
  • 获取项属性和回调令牌
  • 编写自定义属性
读/写项 ReadWriteItem MailboxItem.ReadWrite.User 除了 读取项中允许的内容外,它还允许:
  • Outlook 加载项 API 的完全访问权限,但不包括 makeEwsRequestAsync
  • 设置项属性
读/写邮箱 ReadWriteMailbox Mailbox.ReadWrite.User 除了 在读/写项中允许的内容外,它还允许:

权限在清单中声明。 标记因清单类型而异。

  • 仅外接程序清单:使用 <Permissions> 元素。
  • Microsoft 365 的统一清单:使用“authorization.permissions.resourceSpecific”数组中对象的“name”属性。

注意

  • 对于使用“发送时追加”功能的加载项,需要一个补充权限。 对于仅外接程序清单,请在 ExtendedPermissions 元素中指定权限。 有关详细信息,请参阅 在 Outlook 外接程序中实现end-on-send。 使用统一清单,在“authorization.permissions.resourceSpecific”数组的附加对象中指定名为 Mailbox.AppendOnSend.User 的此权限。
  • 使用共享文件夹的加载项需要补充权限。 对于仅外接程序清单,通过将 SupportsSharedFolders 元素设置为 来 true指定权限。 有关详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。 使用统一清单,在“authorization.permissions.resourceSpecific”数组的附加对象中指定名为 Mailbox.SharedFolder 的此权限。

四个级别的权限具有累积性:读/写邮箱权限包括读/写项权限、读取项权限和受限权限;读/写项权限包括读取项权限和受限权限;读取项权限包括受限权限。

下图显示了四个级别的权限并说明了每一层提供给最终用户、开发人员和管理员的功能。 有关这些权限的详细信息,请参阅 最终用户:隐私和性能问题开发人员:权限选择和资源使用限制了解 Outlook 加载项权限

邮件应用架构 v1.1 的四层权限模型示意图。

AppSource:加载项完整性

AppSource 托管可由最终用户和管理员安装的加载项。 AppSource 强制执行以下措施来维护这些 Outlook 加载项的完整性。

  • 要求加载项的主机服务器始终使用安全套接字层 (SSL) 进行通信。

  • 要求开发人员在提交加载项时提供身份证明、合约协议和适合的隐私策略。

  • 以只读模式存档加载项。

  • 支持针对可用加载项的用户审阅系统以推广自我管理的社区。

可选连接体验

最终用户和 IT 管理员可在 Office 桌面和移动客户端中关闭可选的已连接体验。 对于 Outlook 加载项,禁用 “可选连接体验 ”设置的影响取决于客户端,但通常意味着不允许用户安装的加载项和访问 AppSource。 组织的 IT 管理员通过集中部署而部署的加载项仍然可用。

客户端 关闭可选连接体验时的行为
加载项的可用性和对 AppSource 的访问权限不受影响,因此用户可以继续 管理其加载项 ,包括管理员部署的加载项。
  • Windows (经典) 1
  • Mac
不会显示 “所有应用2 ”或“ 获取加载项 ”按钮,因此用户无法管理其加载项或访问 AppSource。
  • Android
  • iOS
获取加载项 ”对话框仅显示管理员部署的加载项。

注意

1 在 Windows 上,此体验的支持可从版本 2008 (内部版本 13127.20296) 获取。 有关客户端版本的详细信息,请参阅 Microsoft 365 的更新历史记录页,以及如何 查找 Office 客户端版本和更新通道

2 从经典 Outlook on Windows 版本 2303 (内部版本 16215.10000) 开始,“ 所有应用” 按钮用于管理加载项和访问 AppSource。

有关常规加载项行为,请参阅 Office 加载项的隐私和安全性

最终用户:隐私和性能问题

安全模型通过下列方式解决最终用户的安全、隐私和性能问题。

  • 受 Outlook 信息权限管理 (IRM) 保护的最终用户邮件不会与以下实例中的加载项交互。

    • 当从移动设备上的 Outlook 访问受 IRM 保护的邮件时。

    • 当受 IRM 保护的消息包含敏感度标签时, 将“允许编程访问 ”自定义策略选项设置为 false

    有关加载项中的 IRM 支持的详细信息,请参阅 受 IRM 保护的邮件项

  • 从 AppSource 安装加载项之前,最终用户能够查看加载项可以对其数据进行的访问和采取的操作,且必须明确确认后才能继续操作。 未经用户或管理员手动验证,Outlook 外接程序不会自动推送到客户端计算机。

  • 授予“受限”权限可允许 Outlook 加载项仅具有对当前项目的有限访问权限。 授予 读取项目 权限后,Outlook 外接程序只能访问当前项目上的个人身份信息,例如发件人和收件人姓名以及电子邮件地址。

  • 最终用户仅能为他/她自己安装低信任度的 Outlook 外接程序。 对组织产生影响的 Outlook 外接程序由管理员安装。

  • 最终用户可以安装支持上下文相关方案的低信任度 Outlook 外接程序,这不仅对用户具有吸引力,同时还可以最大限度地降低用户的安全风险。

  • 已安装 Outlook 外接程序的清单文件在用户电子邮件帐户中受到保护。

  • 通过托管 Office 外接程序的服务器传送的数据始终根据安全套接字层 (SSL) 协议进行加密。

  • Windows 版 Outlook (经典) Mac 版监视已安装 Outlook 加载项的性能、行使治理控制,并在加载项超出以下方面的限制时不可用。

    • 激活响应时间

    • 激活或重新激活失败次数

    • 内存使用率

    • CPU 使用率

    管治可阻止拒绝服务攻击并将外接程序性能保持在合理的水平。 业务栏提醒最终用户有关 Outlook on Windows (经典) 和 Mac 上的加载项因此类治理控制而不可用。

  • 最终用户可以随时验证已安装的 Outlook 加载项请求的权限,并使任何加载项在 Exchange 管理中心中可用或不可用。

开发人员:权限选择和资源使用限制

安全模型向开发人员提供精细级别的权限以供选择,以及严格的性能准则以供遵循。

多层权限将增加透明度

开发人员应按照多层权限模型提供透明度,并解决用户有关哪些加载项可以处理其数据和邮箱的问题,间接促进加载项采用。

  • 开发人员根据 Outlook 外接程序应激活的方式、Outlook 外接程序读取或写入项目特定属性的需求,或者创建和发送项目的需求来针对 Outlook 外接程序请求适当级别的权限。

  • 如上所述,开发人员在清单中请求权限。

    以下示例请求仅外接程序清单中的 读取项 权限。

    <Permissions>ReadItem</Permissions>
    

    以下示例请求 Microsoft 365 的统一清单中的 读取项 权限。

    "authorization": {
      "permissions": {
        "resourceSpecific": [
          ...
          {
            "name": "MailboxItem.Read.User",
            "type": "Delegated"
          },
        ]
      }
    },
    
  • 如果 Outlook 加载项在特定类型的 Outlook 项目上激活,开发人员可以请求 受限 权限, (约会或邮件) 。

  • 如果 Outlook 加载项需要:开发人员应请求 读取项 权限:

    • 读取当前项的属性。
    • 编写加载项在当前项目上设置的自定义属性,但不需要读取或写入其他项目。
    • 在用户的邮箱中创建或发送邮件。
  • 如果 Outlook 加载项需要向撰写的项目的属性(如收件人姓名、电子邮件地址、正文和主题)写入,或需要添加或删除项目附件,那么开发人员应请求“读/写项目”权限。

  • 仅在 Outlook 外接程序需要使用 mailbox.makeEWSRequestAsync 方法执行下列一个或多个操作时,开发人员才请求“读/写邮箱”权限。

    • 读取或写入邮箱中项目的属性。
    • 创建、读取、写入或发送邮箱中的项目。
    • 创建、读取或写入邮箱文件夹。

资源使用调整

开发人员应注意激活资源的使用限制,在他们的开发工作流中加入性能调整功能,以便减少主机对低性能外接程序的拒绝服务机会。 开发人员应遵循激活 限制和适用于 Outlook 加载项的 JavaScript API 中所述设计激活规则的准则。如果 Outlook 加载项打算在 Outlook on Windows (经典) 或 Mac 上运行,则开发人员应验证加载项是否在资源使用限制内执行。

提高用户安全性的其他措施

开发人员还应该注意并规划以下内容。

  • 开发人员无法在外接程序中使用 ActiveX 控件,因为它们不受支持。

  • 开发人员应在将 Outlook 加载项提交到 AppSource 时执行以下操作。

    • 生成扩展验证 (EV) SSL 证书作为身份证明。

    • 在支持 SSL 的 Web 服务器上承载其提交的加载项。

    • 生成合规隐私策略。

    • 准备好在提交加载项后签订合约协议。

管理员:权限

安全模型向管理员提供以下权限和责任。

  • 可以阻止最终用户安装任何 Outlook 加载项,包括来自 AppSource 的加载项。

  • 可以通过 Exchange 管理中心使任何 Outlook 加载项可用或不可用。

  • 仅适用于经典 Outlook on Windows:可以通过 GPO 注册表设置替代性能阈值设置。

另请参阅