IDX10500: Ошибка проверки подписи. Ключи безопасности не были предоставлены для проверки подписи - PullRequest
0 голосов
/ 11 марта 2020

У меня есть следующий код, и когда я вызываю конечную точку API, я получаю ошибку Bearer was not authenticated. Failure message: IDX10500: Signature validation failed. No security keys were provided to validate the signature.

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(cfg =>
{
    cfg.RequireHttpsMetadata = false;
    cfg.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateAudience = false,
        ValidateIssuer = false,
        ValidateIssuerSigningKey = false
    };
});

Почему это происходит, если я устанавливаю ValidateIssuerSigningKey=false?

1 Ответ

2 голосов
/ 11 марта 2020

Пожалуйста, обратитесь к теме: https://github.com/aspnet/Security/issues/1741

Вы можете установить делегат TokenValidationParameters.SignatureValidator, чтобы просто возвращать JwtSecurityToken.

В настоящее время вы не можете установить ValidateIssuerSigningKey в false, чтобы пропустить проверку подписи. В качестве обходного пути вы можете установить делегат TokenValidationParameters.SignatureValidator, который будет просто возвращать JwtSecurityToken:

ValidateIssuerSigningKey = false,
SignatureValidator = delegate (string token, TokenValidationParameters parameters)
{
    var jwt = new JwtSecurityToken(token);

    return jwt;
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...