在 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 外接程序。
另请参阅
- getAccessToken
- 有关使用 SSO 令牌访问 Microsoft Graph API 的示例 Outlook 外接程序,请参阅 Outlook 外接程序 SSO。
- SSO API 参考
- IdentityAPI 要求集
- 使用单一登录 (SSO) 或跨源资源共享 (CORS) 基于事件或垃圾邮件报告的 Outlook 外接程序