在 Outlook 外接程序中使用单一登录令牌对用户进行身份验证

重要

旧版Exchange Online用户标识令牌回调令牌不再受支持,所有Microsoft 365 个租户中均处于关闭状态。 如果 Outlook 外接程序需要委派的用户访问或用户标识,我们建议使用 MSAL (Microsoft身份验证库) 和嵌套应用身份验证。 本地 Exchange 仍支持 Exchange 用户标识令牌。

使用单一登录 (SSO),加载项可以无缝方式验证用户(并根据需要获取访问令牌来调用 Microsoft Graph API)。

借助此方法,加载项可以获取范围限定为服务器后端 API 的访问令牌。 加载项将此令牌用作 Authorization 标头中的持有者令牌,来对 API 回调进行身份验证。 (可选)还可以拥有服务器端代码。

  • 完成“代表”流来获取作用域为 Microsoft Graph API 的访问令牌
  • 使用令牌中的标识信息,以创建用户标识并验证自己的后端服务

有关 Office 外接程序中的 SSO 的概述,请参阅为 Office 外接程序启用单一登录在 Office 外接程序中授予对 Microsoft Graph 的访问权限

在 Microsoft 365 租户中启用新式身份验证

若要对 Outlook 加载项使用 SSO,必须为 Microsoft 365 租户启用新式身份验证。 有关如何执行此作的信息,请参阅在 Exchange Online 中启用或禁用 Outlook 的新式身份验证

注册外接程序

若要使用 SSO,Outlook 外接程序需要具有使用 Microsoft Entra ID 注册的服务器端 Web API。 有关详细信息,请参阅向 Microsoft 标识平台注册使用 SSO 的 Office 加载项

开发外接程序时,必须事先同意。 有关详细信息,请参阅管理员同意

更新加载项清单

在外接程序中启用 SSO 的下一步是从加载项的Microsoft 标识平台注册向清单添加一些信息。 标记因清单类型而异。

  • 仅外接程序清单:在 VersionOverrides 元素的VersionOverridesV1_1末尾添加元素WebApplicationInfo。 然后,添加其所需的子元素。 有关标记的详细信息,请参阅 配置加载项

  • Microsoft 365 的统"webApplicationInfo" 清单:向清单中的根 { ... } 对象添加属性。 为此对象提供一个子"id"属性,该属性设置为加载项 Web 应用的应用程序 ID,因为它是在注册外接程序时在 Azure 门户中生成的。 (请参阅本文前面的 注册外接程序 部分。) 还为其提供一个子 "resource" 属性,该属性设置为注册外接程序时设置的同一 应用程序 ID URI 。 此 URI 的格式应为 api://<fully-qualified-domain-name>/<application-id>。 示例如下。

    "webApplicationInfo": {
          "id": "a661fed9-f33d-4e95-b6cf-624a34a2f51d",
          "resource": "api://addin.contoso.com/a661fed9-f33d-4e95-b6cf-624a34a2f51d"
      },
    

获取 SSO 令牌

加载项使用客户端脚本获取 SSO 令牌。 有关详细信息,请参阅添加客户端代码

在后端使用 SSO 令牌

大多数情况下,如果加载项没有将访问令牌传递到服务器端并在其中使用它,那么获取访问令牌的意义就不大。 若要详细了解服务器端可以和应该执行的操作,请参阅添加服务器端代码

用于基于事件的激活或集成垃圾邮件报告的 SSO

如果外接程序使用基于事件的激活或集成的垃圾邮件报告,还需要执行其他步骤。 有关详细信息,请参阅 使用单一登录 (SSO) 或跨源资源共享 (CORS) 基于事件的加载项或垃圾邮件报告 Outlook 外接程序

另请参阅