使用单一登录 (SSO) 或跨源资源共享 (CORS) 基于事件或垃圾邮件报告的 Outlook 外接程序
当 Outlook 外接程序实现基于事件的激活或集成的垃圾邮件报告时,事件在单独的 运行时中运行。 若要在这些外接程序中配置单一登录 (SSO) 或通过跨源资源共享 (CORS) 请求外部数据,必须配置已知的 URI。 通过此资源,Office 将能够识别支持 SSO 或 CORS 请求的加载项,包括其 JavaScript 文件。
注意
本文中的步骤仅适用于在经典 Outlook on Windows 中运行的 Outlook 加载项。 这是因为经典 Outlook on Windows 使用 JavaScript 文件,而 Mac 版 Outlook 网页版 Outlook 和 Windows 版新版 Outlook 使用 引用相同 JavaScript 文件的 HTML 文件。 若要了解详细信息,请参阅 为基于事件的激活配置 Outlook 外接程序 和 实现集成的垃圾邮件报告加载项。
列出已知 URI 中允许的加载项
若要列出允许哪些加载项使用 SSO 或 CORS,请创建一个 JSON 文件来标识每个加载项的每个 JavaScript 文件。 然后,在已知 URI 中托管该 JSON 文件。 已知 URI 允许指定有权获取当前 Web 源令牌的所有托管 JS 文件。 这可确保源的所有者完全控制哪些托管的 JavaScript 文件应在外接程序中使用,哪些托管的 JavaScript 文件不用于外接程序,从而防止模拟时出现任何安全漏洞。
以下示例演示如何为两个加载项配置 SSO 或 CORS, (主版本和 beta 版本) 。 可以根据需要列出任意数量的加载项,具体取决于从 Web 服务器提供的加载项数量。
{
"allowed":
[
"https://addin.contoso.com:8000/main/js/autorun.js",
"https://addin.contoso.com:8000/beta/js/autorun.js"
]
}
将 JSON 文件托管在源根目录中 URI 中名为 .well-known
的位置下。 例如,如果源为 https://addin.contoso.com:8000/
,则已知 URI 为 https://addin.contoso.com:8000/.well-known/microsoft-officeaddins-allowed.json
。 为说明,此文件将托管在 Office Web 外接程序中,而不是您尝试向其发出 CORS 请求的 Web 服务器中。 有关使用建议位置的示例,请参阅 Outlook-Add-in-SSO-events 示例。
原点是指方案 + 子域 + 域 + 端口的模式。 位置的名称 必须是.well-known
,资源文件的名称 必须是microsoft-officeaddins-allowed.json
。 此文件必须包含一个名为 的属性 allowed
的 JSON 对象,其值为授权为其各自的加载项执行 SSO 的所有 JavaScript 文件的数组。
配置已知 URI 后,如果外接程序实现了 SSO,则可以调用 getAccessToken () API 来获取具有用户标识的访问令牌。
重要
虽然 OfficeRuntime.auth.getAccessToken
和 Office.auth.getAccessToken
执行检索访问令牌的相同功能,但我们建议在基于事件的或垃圾邮件报告 (预览版中调用 OfficeRuntime.auth.getAccessToken
) 加载项。 支持基于事件的激活、集成的垃圾邮件报告和 SSO 的所有 Outlook 客户端版本都支持此 API。 另一方面, Office.auth.getAccessToken
仅在从版本 2111 (内部版本 14701.20000) 开始的经典 Outlook 上受支持。