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

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

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

  • AppSource:加载项完整性

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

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

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

注意

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

权限模型

客户对外接程序安全的理解可能会影响外接程序采用情况,因此 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 管理员通过集中部署而部署的加载项仍然可用。

客户端 关闭可选连接体验时的行为
加载项的可用性和对 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 版和 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 注册表设置覆盖性能阈值设置。

另请参阅