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

客户端与.NET Core API的AAD认证报错问题咨询

问题修复方案

1. 替换已弃用的认证配置

你当前使用的AddAzureAD扩展属于微软已停止维护的旧版Azure AD集成方案,且默认适配场景为Web网页应用而非Web API,无法正确校验MSAL生成的访问令牌。请按以下步骤调整:

  • 安装NuGet依赖包 Microsoft.Identity.Web
  • 替换ConfigureServices方法中的认证配置代码:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(jwtOptions =>
    {
        // 此处填写你在Azure AD中注册的API的客户端ID
        jwtOptions.Audience = "api://<你的API客户端ID>";
        jwtOptions.TokenValidationParameters.ValidateIssuer = true;
    }, adOptions =>
    {
        adOptions.ClientId = "<你的API客户端ID>";
        adOptions.TenantId = "<你的租户ID>";
        adOptions.Instance = "https://login.microsoftonline.com/";
    });

2. 校验令牌参数配置

即使请求已携带令牌,令牌参数不匹配也会触发401错误,请确认以下配置:

  • 客户端MSAL请求令牌时使用的Scope为API暴露的权限范围,格式为api://<API客户端ID>/<自定义权限名>,不能使用其他资源的Scope
  • 令牌的受众(aud声明)与API配置的Audience值一致,可将令牌粘贴到本地JWT解析工具中确认声明内容
  • 租户ID配置与令牌颁发者匹配,若使用多租户应用需对应调整颁发者校验规则

3. 中间件顺序校验

你当前的中间件排序UseCors -> UseRouting -> UseAuthentication -> UseAuthorization符合要求,无需调整。注释的内联CORS配置与当前默认CORS策略效果一致,保留现有配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:18:00