Outlook插件Angular应用使用MSAL.js获取AccessToken时出现client_id_aud_mismatch错误的问题求助
Outlook插件Angular应用使用MSAL.js获取AccessToken时出现client_id_aud_mismatch错误的问题求助
大家好,我最近遇到了一个非常棘手的问题,折腾了好几天都没找到头绪,想请教一下社区的各位大佬:
我正在开发一个基于Angular的Outlook插件,使用@azure/msal-browser库来处理身份认证和访问令牌获取。MSAL的初始化逻辑我放在了Office.onReady事件中,具体代码如下:
import { createNestablePublicClientApplication, IPublicClientApplication } from "@azure/msal-browser"; declare var entraAppId: string; declare var entraTenantId: string; declare var pca: IPublicClientApplication; Office.onReady(async info => { pca = await createNestablePublicClientApplication({ auth: { clientId: entraAppId, authority: entraTenantId } }) });
这段代码在我本地的Windows系统(所有主流浏览器)、以及我自己的Mac设备(Safari浏览器)上都能正常运行。但有一位客户在他的Mac设备上,不管是用Safari还是Chrome,不管是否开启隐私/无痕模式,调用任何令牌获取方法都会抛出同一个奇怪的错误:ServerError: client_id_aud_mismatch。
我尝试了两种常规的令牌获取方式,结果完全一致:
declare var pca; var tokenRequest = { scopes: ["Mail.read", "User.read", "openid", "profile"] }; // 尝试1:静默获取令牌 const try1 = await pca.acquireTokenSilent(tokenRequest); // 错误返回:ServerError: client_id_aud_mismatch // 尝试2:弹窗交互方式获取令牌 const try2 = await pca.acquireTokenPopup(tokenRequest); // 错误返回:ServerError: client_id_aud_mismatch
目前我已经排查了所有能想到的配置点:
- 确认客户的Microsoft Entra应用配置是正确的:所需的应用权限已经被管理员授予,重定向URI完全按照Outlook插件的要求配置,客户端ID和租户ID也已经准确复制到了插件应用中
- 翻遍了MSAL官方文档、微软Entra的官方文档,甚至谷歌搜遍了相关关键词,完全找不到关于
client_id_aud_mismatch这个错误的任何说明,也没看到其他开发者遇到过这个问题
有没有人碰到过这个诡异的错误?这个client_id_aud_mismatch到底代表什么含义,可能是哪里的配置或者环境出了问题?
内容来源于stack exchange
相关产品推荐
相关产品推荐

