You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook外接程序OIDC认证后访问令牌的处理及相关疑问

针对Outlook外接程序OIDC认证问题的解答

1. 任务窗格获取访问令牌后该如何处理?

不要手动存储令牌,直接把它交给angular-auth-oidc-client管理。这个库本身具备令牌安全存储、自动附加到API请求等能力,完全适配通用OIDC场景——微软文档中提到的“不要存储访问令牌”仅针对Office专属SSO方案,和你用的通用OIDC认证无关。

具体操作可调用库提供的方法(比如storeTokens或通过signInCallback模拟回调流程),将从对话框收到的令牌注入到库的状态中。之后发起API请求时,库的HTTP拦截器会自动将令牌添加到请求头里,无需手动处理。

2. 在此场景下如何处理令牌过期?

利用angular-auth-oidc-client的内置能力即可:

  • 如果你的OIDC流程配置了refresh token,库会自动跟踪访问令牌的过期时间,在令牌到期前自动发起刷新请求,无需额外代码。
  • 如果没有refresh token,可监听库的令牌过期事件,触发后重新调用Office.UI.displayDialogAsync打开IDP的授权页面,完成新的认证流程,再将新令牌注入到库中。

避免手动跟踪过期时间,依赖库的内置逻辑更可靠。

3. 是否有对接非微软IDP的认证示例?

目前官方没有专门针对非微软IDP的Outlook外接程序示例,但可以基于通用OIDC流程+Angular外接程序的组合实现,核心步骤如下:

  • 配置angular-auth-oidc-client时,将非微软IDP的授权端点、令牌端点、用户信息端点等地址填入配置项,替代微软Azure AD的地址。
  • 登录触发:在任务窗格中调用Office.UI.displayDialogAsync,打开你配置的IDP授权页面(注意要将外接程序的域名加入IDP的允许列表)。
  • 令牌传递:在认证完成后的回调页面中,获取IDP返回的令牌,通过Office.UI.messageParent将令牌发送回任务窗格。
  • 令牌接管:任务窗格接收令牌后,调用angular-auth-oidc-client的方法完成令牌注入,让库接管后续的令牌管理和API请求处理。

内容的提问来源于stack exchange,提问作者ZrSiO4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:25:06