Outlook 加载项中的身份验证选项
Outlook 加载项可以访问 Internet 上任意位置的信息,无论是托管加载项的服务器、内部网络,还是云中的其他位置。 如果相应信息受保护,加载项需要能够验证用户身份。 Outlook 加载项 根据特定场景提供了多种不同的身份验证方法。
使用 OBO 流的单一登录访问令牌
单一登录 (SSO) 访问令牌为 Outlook 外接程序提供了一种无缝方式,用于对Microsoft图形 API进行身份验证和获取访问令牌。 由于不需要用户输入其凭据,此功能可以减少摩擦。 可以将代理流与中间层服务器或嵌套应用身份验证 () 下一部分中所述。
注意
Word、Excel、Outlook 和 PowerPoint 目前支持使用 OBO 流的 SSO。 有关支持的详细信息,请参阅 IdentityAPI 要求集。 如果使用的是 Outlook 加载项,请确保为 Microsoft 365 租户启用新式身份验证。 有关如何执行此操作的信息,请参阅在 Exchange Online 中启用或禁用 Outlook 的新式身份验证。
如果加载项符合以下情况,请考虑使用 SSO 访问令牌:
- 主要由 Microsoft 365 用户使用
- 需要访问以下服务:
- 作为 Microsoft Graph 的一部分公开的 Microsoft 服务
- 你控制的非 Microsoft 服务
SSO 身份验证方法使用 Azure Active Directory 提供的 OAuth2 代表流。 它要求外接程序在 应用程序注册门户中 注册,并在外接程序清单中指定任何必需的Microsoft Graph 范围(如果使用仅外接程序清单)。 如果外接程序使用 Microsoft 365 的统一清单,则存在一些清单配置,但未指定Microsoft Graph 范围。 相反,在运行时在调用中指定所需的范围,以将令牌提取到 Microsoft Graph。
借助此方法,加载项可以获取作用域为你的服务器后端 API 的访问令牌。 加载项将此令牌用作 Authorization
标头中的持有者令牌,来对 API 回调进行身份验证。 此时,服务器可以:
- 完成“代表”流来获取作用域为 Microsoft Graph API 的访问令牌
- 使用令牌中的标识信息创建用户标识并对自己的后端服务进行身份验证
有关更详细的概述,请参阅 SSO 身份验证方法的完整概述。
有关在 Outlook 加载项中使用 SSO 令牌的详细信息,请参阅在 Outlook 加载项中使用单一登录令牌对用户进行身份验证。
有关使用 SSO 令牌的加载项示例,请参阅 Outlook 加载项 SSO。
使用嵌套应用身份验证的单一登录访问令牌
嵌套应用身份验证 (NAA) 为本机 Office 应用程序上下文中运行的 Office 外接程序启用单 Sign-On (SSO) 。 与用于 Office.js 和 getAccessToken()
的代理流相比,NAA 在应用体系结构中提供了更大的灵活性,从而允许创建丰富的客户端驱动应用程序。 NAA 简化了加载项代码的 SSO 处理。 NAA 使你能够以 SPA 的形式从外接程序客户端代码进行Microsoft Graph 调用,而无需使用中间层服务器。 无需使用 Office.js API,因为 NAA 由 MSAL.js 库提供。
若要使 Outlook 外接程序能够使用 NAA,请参阅 使用嵌套应用身份验证在 Office 外接程序中启用 SSO (预览) 。 NAA 在所有 Office 加载项中的工作方式相同。
Exchange 用户标识令牌
重要
旧版 Exchange 令牌已弃用。 从 2025 年 2 月开始,我们将开始关闭 Exchange Online 租户的旧版 Exchange 用户标识和回调令牌。 有关时间线和详细信息,请参阅常见问题解答页面。 这是 Microsoft的“安全未来计划”的一部分,该计划为组织提供了应对当前威胁环境所需的工具。 Exchange 用户标识令牌仍适用于本地 Exchange。 嵌套应用身份验证是今后令牌的建议方法。
Exchange 用户标识令牌为加载项提供了一种创建用户标识的方法。 通过验证用户标识,可以对后端系统执行一次性身份验证,然后接受用户标识令牌,来作为对未来请求的授权。 使用 Exchange 用户标识令牌:
- 当加载项主要由 Exchange 本地用户使用时。
- 当加载项需要访问你控制的非 Microsoft 服务时。
- 当加载项在不支持 SSO 的 Office 版本上运行时,要回退身份验证。
加载项可以调用 getUserIdentityTokenAsync 以获取 Exchange 用户标识令牌。 有关使用这些令牌的详细信息,请参阅使用 Exchange 标识令牌对用户进行身份验证。
通过 OAuth2 流获取的访问令牌
加载项还可以访问 Microsoft 和其他支持使用 OAuth2 进行授权的服务。 如果你的加载项符合以下情况,请考虑使用 OAuth2 令牌:
- 需要访问不受控制的服务。
使用此方法时,加载项会提示用户通过使用 displayDialogAsync 方法初始化 OAuth2 流来登录到该服务。
回调令牌
重要
旧版 Exchange 令牌已弃用。 从 2025 年 2 月开始,我们将开始关闭 Exchange Online 租户的旧版 Exchange 用户标识和回调令牌。 有关时间线和详细信息,请参阅常见问题解答页面。 这是 Microsoft的“安全未来计划”的一部分,该计划为组织提供了应对当前威胁环境所需的工具。 Exchange 用户标识令牌仍适用于本地 Exchange。 嵌套应用身份验证是今后令牌的建议方法。
借助回调令牌,可以使用 Exchange Web 服务 (EWS) 或 Outlook REST API 从服务器后端访问用户邮箱。 如果你的加载项符合以下情况,请考虑使用回调令牌:
- 需要从服务器后端访问用户邮箱。
加载项使用 getCallbackTokenAsync 方法之一获取回调令牌。 访问权限级别由加载项清单中指定的权限控制。