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

MSAL认证后调用ASP.NET Core API遇401:JWT受众无效求助

解决MSAL认证后ASP.NET Core API返回401(Audience无效)的问题

核心问题:前端请求后端受保护端点时,携带的是ID Token而非Access Token。ID Token的受众(aud)是前端应用的Client ID,与后端API配置的受众(api://<app id>)不匹配,导致后端验证失败。

修复步骤

1. 修正Axios拦截器的Token使用

在axios.ts中,将身份认证头中的idToken替换为accessToken:

// 原错误代码
config.headers.Authorization = `Bearer ${token.idToken}`;

// 修改后代码
config.headers.Authorization = `Bearer ${token.accessToken}`;

2. 验证Access Token的受众字段

使用jwt.io解析获取到的Access Token,确认aud字段的值与后端appsettings.json中AzureAd.Audience完全一致(即api://<app id>)。

3. 额外检查项

  • 确认Azure AD后台中,前端应用已被授予后端API的full权限(对应配置的api://<app id>/full scope),且权限已完成管理员同意(若为租户级权限)。
  • 确保后端ASP.NET Core的认证中间件正确绑定Azure AD配置,示例代码:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 23:41:22