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

Word Office Add-in SSO在Microsoft Teams客户端失效,请求技术指导

解决Microsoft Teams中Office加载项的SSO认证问题

核心原因

Teams客户端内的Office加载项运行在嵌入式WebView环境中,不支持Office.js的getAccessToken方法。这是因为Teams拥有独立的身份认证体系,需结合Teams自身的SSO机制适配认证流程。

具体解决方案

1. 切换到Teams SSO认证流程

放弃直接调用Office.js的SSO方法,改用Teams JS SDK提供的认证能力:

  • 确保你的加载项已在Azure AD完成注册,并配置符合Teams要求的重定向URI(格式为https://<你的加载项域名>/auth-endpoint)
  • 初始化Teams SDK后,调用authenticate方法发起认证请求,示例代码:
    microsoftTeams.initialize();
    microsoftTeams.authentication.authenticate({
      url: window.location.origin + "/auth-start",
      width: 600,
      height: 535,
      successCallback: (result) => {
        // 处理返回的令牌,对接后端API
        console.log("获取令牌成功:", result);
      },
      failureCallback: (reason) => {
        console.error("认证失败:", reason);
      }
    });
    

2. 调整后端认证逻辑

  • 在Node.js后端适配Teams的OAuth2流程:接收Teams传递的授权码,再向Azure AD申请交换访问令牌
  • 确保Azure AD应用注册中已添加Teams作为平台,并配置好目标API的权限(如Microsoft Graph相关权限)

3. 避免触发外部浏览器弹窗

Teams客户端内的认证需使用内置弹窗,禁止调用外部浏览器:

  • 检查加载项清单文件(manifest.xml),确认WebApplicationInfo节点的Id为正确的Azure AD应用ID,Resource设置为你需要访问的资源(如https://graph.microsoft.com)
  • 禁止使用Office.js的dialog.displayDialogAsync打开认证页面,统一使用Teams SDK的认证方法

4. 调试与排查要点

  • 在Teams客户端中启用开发者工具:右键加载项页面→检查,查看控制台输出的错误信息
  • 确认Azure AD应用的重定向URI已添加到允许列表
  • 检查令牌请求的scope参数,确保包含https://graph.microsoft.com/.default等必要权限

关键注意事项

  • Teams中的Office加载项必须先初始化Teams SDK(microsoftTeams.initialize()),才能调用其认证接口
  • 不要混合使用Office.js和Teams SDK的认证方法,保持流程统一
  • 确保加载项清单文件的Permissions节点已设置为对应权限(如ReadWriteDocument)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:42:20