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

.NET Core 8 Azure AD令牌验证报「签名无效」问题求助

.NET 8升级后JWT令牌签名验证失败问题修复

问题原因

.NET 8中Microsoft Identity Web对JWT令牌的签名验证逻辑做了严格优化,你的配置存在参数冲突:设置了ValidateIssuerSigningKey = true(要求验证签名密钥),同时自定义SignatureValidator直接返回令牌(跳过实际签名校验),再搭配RequireSignedTokens = false(允许无签名令牌),这种混合配置在.NET 7中能兼容,但.NET 8触发了严格校验逻辑,导致签名无效错误。

解决方案

方案1:不需要验证令牌签名(仅测试/非生产环境)

调整参数,明确关闭签名验证:

services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(options =>
{
    options.IncludeErrorDetails = true;
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidIssuer = $"https://sts.windows.net/{configuration["AD:TenantId"]}/", 
        ValidateIssuer = true,

        ValidAudience = "00000003-0000-0000-c000-000000000000",
        ValidateAudience = true,

        // 可移除自定义签名验证器,关闭签名校验后无需该逻辑
        // SignatureValidator = delegate (string token, TokenValidationParameters parameters) { return new JwtSecurityToken(token); },
        ValidateIssuerSigningKey = false, // 改为false,关闭签名密钥验证

        RequireSignedTokens = false,
        ClockSkew = TimeSpan.Zero
    };
}, options => configuration.Bind("AD", options));

方案2:启用签名验证(生产环境推荐)

遵循安全最佳实践,让Microsoft Identity Web自动从Azure AD元数据获取公钥验证签名:

services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(options =>
{
    options.IncludeErrorDetails = true;
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidIssuer = $"https://sts.windows.net/{configuration["AD:TenantId"]}/", 
        ValidateIssuer = true,

        ValidAudience = "00000003-0000-0000-c000-000000000000",
        ValidateAudience = true,

        // 移除自定义签名验证器,交由框架自动处理签名校验
        ValidateIssuerSigningKey = true, // 默认值,可省略
        // RequireSignedTokens = true, // 默认值,可省略
        ClockSkew = TimeSpan.Zero
    };
}, options => configuration.Bind("AD", options));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:12:16