You need to enable JavaScript to run this app. ASP.NET Core 2.2 Web API集成Azure AD Bearer认证报无默认质询方案错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 2.2 Web API集成Azure AD Bearer认证报无默认质询方案错误如何解决

问题核心根因

你当前的配置存在方案名不匹配的硬错误:

  • 在AddAuthentication方法中,你把所有默认认证相关的Scheme全部硬设置为JwtBearerDefaults.AuthenticationScheme(即常量字符串"Bearer")
  • 但你链式调用的.AddAzureADBearer()扩展方法,根本不会注册这个名字的认证处理器:该方法是Azure AD认证组件提供的扩展,它注册的Bearer认证方案固定使用AzureADBearerDefaults.AuthenticationScheme作为方案名,和你设置的默认方案名完全对不上
  • 这就导致框架在运行时,找不到你声明的"Bearer"方案对应的实际处理器,当需要执行认证挑战逻辑时,自然抛出“没有指定认证方案、也找不到默认挑战方案”的报错。
具体修复操作

1. 对齐默认认证方案的名称

修改ConfigureServices中的认证注册逻辑,把默认方案名改成和Azure AD Bearer扩展实际注册的方案名一致,修改后代码如下:

public void ConfigureServices(IServiceCollection services)
{
    // 直接将默认方案指定为AzureADBearer扩展实际注册的方案,不要硬套JwtBearer的常量
    services.AddAuthentication(AzureADBearerDefaults.AuthenticationScheme)
        .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

    // 其余原有服务注册逻辑保持不变
}

如果你需要显式细分各个默认方案的配置,也可以写成如下形式,确保所有方案名都和实际注册的对齐:

services.AddAuthentication(options =>
{
    // 所有默认方案全部匹配Azure AD Bearer的实际注册名,不要使用JwtBearer的常量值
    options.DefaultScheme = AzureADBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = AzureADBearerDefaults.AuthenticationScheme;
    options.DefaultAuthenticateScheme = AzureADBearerDefaults.AuthenticationScheme;
})
.AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

2. 校验中间件管道顺序

从你贴的Configure方法代码来看,app.UseAuthentication()的位置目前处于Swagger中间件之后、MVC中间件之前,这个顺序本身是符合要求的,但需要额外注意两点:

  • 绝对不能把app.UseAuthentication()放到app.UseMvc()或app.UseEndpoints()之后,否则认证逻辑根本不会在接口请求处理流程中生效
  • 不要在认证中间件之前挂载需要身份校验的接口路由

3. 排查配套配置是否完整

完成上述代码修改后,还需要检查以下几个容易踩坑的点:

  • 确认项目已经正确安装Microsoft.AspNetCore.Authentication.AzureAD.UINuGet包,没有出现包版本和项目目标框架不兼容的问题
  • 确认appsettings.json中AzureAd配置节下包含Instance、TenantId、ClientId三个必填字段,没有缺项导致配置绑定失败
  • 如果项目中定义了自定义授权策略,检查策略内硬编码的认证方案名,确保和当前注册的Azure AD Bearer方案名一致,没有出现名实不匹配的问题

内容的提问来源于stack exchange,提问作者Tech with Thiru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 08:15:00