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

ASP.NET Core Web API集成Azure AD授权遇CORS及Token签名无效问题

解决Azure AD Token签名无效(401)问题的方案

关键排查与修复步骤

1. 核对API的Authority配置

  • 确保appsettings.json里的Authority是Azure AD的正确租户端点,格式应为https://login.microsoftonline.com/{租户ID}/v2.0(SPA应用默认返回v2.0 Token,API需对应使用v2.0端点),别漏了/v2.0后缀,租户ID用GUID格式,不要用租户域名替代。
  • 可以直接访问{Authority}/.well-known/openid-configuration确认端点返回正常,确保API能获取到Azure AD的签名密钥。

2. 验证Token受众(Audience)匹配

  • 用JWT解析工具解析获取到的Token,查看aud字段值:
    • 如果API是v1.0模式,aud必须等于API应用注册的客户端ID;
    • 如果是v2.0模式,aud必须等于API的应用ID URI(比如api://{API客户端ID})。
  • 确保Swagger里配置的Scope包含正确的API前缀,比如api://{API客户端ID}/access_as_user,不能用SPA自己的客户端ID作为Scope。

3. 检查API认证中间件配置

  • 确认.NET Core API使用AddMicrosoftIdentityWebApi时绑定了正确的配置节:
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApi(Configuration.GetSection("AzureAd"));
    
  • 若手动配置JwtBearer,需保证TokenValidationParameters里的参数和Token字段严格匹配:
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidAudience = Configuration["AzureAd:Audience"],
        ValidIssuer = Configuration["AzureAd:Authority"],
        ValidateIssuerSigningKey = true
    };
    

4. 确认SPA应用的API权限配置

  • 登录Azure门户,进入SPA应用注册的API权限页面:
    • 确认已添加目标API的委托权限;
    • 确保已点击授予管理员同意(委托权限必须完成这一步才能生效)。

5. 排查Token签名算法与版本

  • 解析Token查看alg字段,Azure AD默认用RS256,确保API的认证中间件没有强制使用其他算法(比如HS256),否则会导致签名验证失败。
  • 确认API没有限制Token版本,SPA返回的v2.0 Token要对应API的v2.0配置,不要混用v1.0和v2.0端点。

6. 检查Azure应用服务的环境配置

  • 部署到Azure应用服务后,进入应用服务的配置→应用设置,确认认证相关的配置项(比如AzureAd:Authority、AzureAd:Audience)和本地appsettings.json一致,避免部署时被覆盖或配置错误。
  • 确保应用服务可以正常访问Azure AD的元数据端点,若有VNet或防火墙限制,需允许出站访问login.microsoftonline.com相关域名。

快速验证流程

  1. 解析Token,记录aud、iss、alg字段值;
  2. 对比API配置里的Audience、Authority是否和Token字段完全匹配;
  3. 确认API应用注册的应用ID URI与Token的aud一致;
  4. 检查SPA应用的API权限是否已添加并完成管理员同意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:09:52