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

使用单一登录 (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 外接程序需要有已向 Azure Active Directory (AAD) v2.0 注册的服务器端 Web API。 有关详细信息,请参阅向 Azure AD v2.0 端点注册使用 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 令牌用作 Outlook 加载项中的标识,建议还使用 Exchange 标识令牌作为备用标识。 加载项用户可能使用多个客户端,而有些客户端可能不支持提供 SSO 令牌。 通过将 Exchange 标识令牌用作备用令牌,就不用多次提示这些用户输入凭据了。 有关详细信息,请参阅应用场景:在 Outlook 外接程序中对服务实现单一登录

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

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

另请参阅