Microsoft Teams扩展隐身窗口SSO认证错误排查求助
Microsoft Teams扩展SSO认证在Chrome隐身窗口报错问题
我正在使用React.js和C#开发Microsoft Teams扩展,该扩展采用SSO认证机制。在Google Chrome隐身窗口测试时,SSO令牌获取过程持续出现错误,但通过admin.teams.microsoft.com访问应用时无此问题。
复现步骤
- 打开Google Chrome隐身窗口,访问https://dev.teams.microsoft.com/
- 登录Microsoft Teams开发者平台UI
- 使用提供的压缩包导入扩展
- 尝试启动应用,在开发者控制台查看SSO相关错误
错误信息
- POST https://login.microsoftonline.com 返回400 Bad Request
- POST https://cc-frontline-backend.azurewebsites.net 返回401 Unauthorized
- Error in getAccessToken: "Exchange SSO ID Token failed with HTTP status 401"
- Error in useEffect: "Failed to retrieve access token: invalid_token"
- 错误截图显示Microsoft Teams响应错误
代码片段
function initializeTeamsSdk(): Promise<void> { return new Promise((resolve, reject) => { microsoftTeams.initialize(() => { console.log("Teams SDK initialized successfully."); resolve(); }); }); } async function AuthenticateWithSSO(): Promise<IAccessTokenRequestBody> { await initializeTeamsSdk(); return new Promise((resolve, reject) => { microsoftTeams.authentication.getAuthToken({ successCallback: (token: string) => { try{ const decoded = jwtDecode(token); const requestBody = { tenantId: decoded.tid, ssoToken: token, clientId: decoded.aud, }; SetClientId(requestBody.clientId); SetSsoToken(requestBody.ssoToken); SetTenantId(requestBody.tenantId); microsoftTeams.appInitialization.notifySuccess(); resolve(requestBody); }catch(error){ reject("Token decoding failed"); } }, failureCallback: (error: string) => { microsoftTeams.appInitialization.notifyFailure({ reason: microsoftTeams.appInitialization.FailedReason.AuthFailed, message: error, }); reject(error); }, resources: [process.env.SSO_TAB_APP_URI as string], }); }); }
技术细节
- "@microsoft/teams-js": "^1.11.0"
- "@microsoft/teamsfx": "^0.5.0"
已尝试解决方案
- 验证并更新环境变量
- 检查端点配置正确性
- 添加重试机制应对可能的网络错误
问题咨询
是否有人遇到过类似的Microsoft Teams扩展SSO认证问题?这些问题是否与配置、Teams平台更新或SDK版本有关?如何解决这些认证错误?
内容的提问来源于stack exchange,提问作者erolDemirhan
相关产品推荐
相关产品推荐

