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

ASP.NET Core Web API中JWT认证失效及IDX20803错误求助

解决JWT认证时IDX20803错误的方案

错误根源在于业务WebAPI的JWT认证配置逻辑错误:你设置了Authority属性,这会让JwtBearer中间件尝试从指定地址获取OpenID Connect(OIDC)元数据文档(比如.well-known/openid-configuration),但你的Auth.API只是简单生成JWT Token,并没有提供OIDC服务的元数据端点,因此导致配置获取失败。

修复步骤:

1. 修改业务WebAPI的认证配置

去掉Authority配置,改为直接指定JWT验证参数,和Auth.API保持一致:

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.RequireHttpsMetadata = false; // 生产环境请设为true
        options.SaveToken = true;
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuerSigningKey = true,
            // 必须和Auth.API中使用的密钥完全一致
            IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(builder.Configuration["Jwt:Key"])),
            ValidateIssuer = false,
            ValidateAudience = false
        };
    });

2. 确保密钥一致性

  • 确认业务WebAPI的appsettings.json中Jwt:Key的值和Auth.API的完全相同
  • 注意编码方式:Auth.API生成Token用的是Encoding.ASCII.GetBytes,业务API也要用相同编码,避免密钥不匹配导致验证失败

3. 可选:进阶的Authority模式(按需使用)

如果希望通过Authority统一管理配置,需要在Auth.API中搭建OIDC服务(比如用IdentityServer4或OpenIddict),提供元数据端点。但当前场景下,直接配置验证参数更简单高效。

额外注意事项

  • 生产环境务必将RequireHttpsMetadata设为true,防止Token被窃听篡改
  • 若需要验证Issuer或Audience,需在Auth.API生成Token时指定对应字段,并在业务API的验证参数中开启对应验证项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:08:09