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