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

React + .NET 集成Entra ID认证时,后端验证AccessToken出现签名无效(IDX10511)错误的求助

React + .NET 集成Entra ID认证时,后端验证AccessToken出现签名无效(IDX10511)错误的求助

我现在遇到了一个Entra ID认证的棘手问题,想求助大家帮忙排查下:

我在React前端用Entra ID做用户授权,这部分功能是正常的。现在需要把获取到的accessToken通过Authorization头传给.NET后端,前端传参的逻辑是通的,但后端验证token的时候一直返回401 Unauthorized,响应头里的WWW-Authenticate信息如下:

WWW-Authenticate: Bearer error="invalid_token", error_description="The signature is invalid

后端的错误日志如下:

info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
      IDX10243: Reading issuer signing keys from validation parameters.
info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
      IDX10265: Reading issuer signing keys from configuration.
info: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
      IDX10243: Reading issuer signing keys from validation parameters.
fail: Microsoft.IdentityModel.LoggingExtensions.IdentityLoggerAdapter[0]
      IDX10511: Signature validation failed. Keys tried: 'Microsoft.IdentityModel.Tokens.X509SecurityKey, KeyId: '3PaK4EfyBNQu3CtjYsa3YmhQ5E0', InternalId: '3PaK4EfyBNQu3CtjYsa3YmhQ5E0'. , KeyId: 3PaK4EfyBNQu3CtjYsa3YmhQ5E0
      '.
Number of keys in TokenValidationParameters: '0'.
Number of keys in Configuration: '8'.
Matched key was in 'Configuration'.
kid: '3PaK4EfyBNQu3CtjYsa3YmhQ5E0'.
Exceptions caught:
 '[PII of type 'System.String' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'.
token: '[PII of type 'Microsoft.IdentityModel.JsonWebTokens.JsonWebToken' is hidden. For more details, see https://aka.ms/IdentityModel/PII.]'. See https://aka.ms/IDX10511 for details.

我已经尝试调整了后端的认证配置,下面是试过的几种写法(注释掉的都是尝试过但未解决问题的,当前生效的是未注释的那段):

/*builder.Services.AddMicrosoftIdentityWebApiAuthentication(builder.Configuration);*/

/*builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApi(builder.Configuration, "AzureAd");
*/

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAd"))
        .EnableTokenAcquisitionToCallDownstreamApi()
        .AddInMemoryTokenCaches();

/*builder.Services.AddAuthorization(config =>
{
    config.AddPolicy("AuthZPolicy", policyBuilder =>
        policyBuilder.Requirements.Add(new ScopeAuthorizationRequirement() { RequiredScopesConfigurationKey = $"AzureAd:Scopes" }));
});*/

前端这边是用axios拦截器自动给请求添加token的,代码如下:

axios.interceptors.request.use(async config => {
    const authToken = await instance.acquireTokenSilent({
      scopes: ['openid', 'profile', 'email']
    });
    console.log(authToken.accessToken);
    const accessToken = authToken.accessToken;
    config.headers.Authorization = `Bearer ${accessToken}`;
    return config;
  });

我几乎把能试的配置都调整过了,但这个签名无效的错误就是一直存在,有没有遇到过类似问题的朋友能给点排查思路?

备注:内容来源于stack exchange,提问作者Pascal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 09:03:00