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

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

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

  • AppSource:加载项完整性

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

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

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

权限模型

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

有四个级别的权限。

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

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

  • XML 清单:使用 <Permissions> 元素。
  • Microsoft 365 (预览版统一清单) :使用“authorization.permissions.resourceSpecific”数组中对象的“name”属性。

注意

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

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

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

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

AppSource:加载项完整性

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

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

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

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

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

可选连接体验

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

客户端 关闭可选连接体验时的行为
- Windows1
-Mac
不显示 “获取外接程序 ”或“ 所有应用2 ”按钮,因此用户无法管理其加载项或访问 AppSource。
-Android
-Ios
获取加载项 ”对话框仅显示管理员部署的加载项。
- Web 浏览器
- 新的 Windows 版 Outlook (预览版)
加载项的可用性和对 AppSource 的访问权限不受影响,因此用户可以继续 管理其加载项 ,包括管理员部署的加载项。

注意

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 版和 Mac 版 Outlook 可监视已安装 Outlook 加载项的性能,行使治理控制,并在加载项超出以下方面的限制时使其不可用。

    • 激活响应时间

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

    • 内存使用率

    • CPU 使用率

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

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

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

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

多层权限将增加透明度

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

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

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

    以下示例请求 XML 清单中的 读取项 权限。

    <Permissions>ReadItem</Permissions>
    

    以下示例请求 Microsoft 365 统一清单中的 读取项 权限, (预览版) 。

"authorization": {
  "permissions": {
    "resourceSpecific": [
      ...
      {
        "name": "MailboxItem.Read.User",
        "type": "Delegated"
      },
    ]
  }
},
  • 如果 Outlook 加载项在特定类型的 Outlook 项目上激活, (约会或邮件) ,或者特定提取的实体 (电话号码、地址、URL) 项目的主题或正文中存在,则开发人员可以请求 受限 权限。

    重要

    基于实体的上下文 Outlook 加载项将在 2024 年第 2 季度停用。 停用此功能的工作将于 5 月开始,并持续到 6 月底。 6 月之后,上下文加载项将无法再检测邮件项目中的实体以对其执行任务。 以下 API 也将停用。

    为了帮助最大程度地减少潜在的中断,在基于实体的上下文加载项停用后,仍支持以下内容。

    • 正在开发由联机会议加载项激活的 “加入 会议”按钮的替代实现。 结束对基于实体的上下文加载项的支持后,联机会议加载项将自动转换为替代实现,以激活“ 加入会议 ”按钮。
    • 基于实体的上下文加载项停用后,将继续支持正则表达式规则。 建议更新上下文加载项,以使用正则表达式规则作为替代解决方案。 有关如何实现这些规则的指南,请参阅 使用正则表达式激活规则显示 Outlook 加载项

    有关详细信息,请参阅 基于实体的上下文 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 加载项可用或不可用。

  • 仅适用于 Windows 版 Outlook:可以通过 GPO 注册表设置覆盖性能阈值设置。

另请参阅