Разрешить неподписанные токены JWT в ASP.NET Core - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь разрешить неподписанные токены JWT через (для тестирования):

    var keyBytes = Encoding.ASCII.GetBytes("example_key_example_key_example_key");

    services.AddAuthentication(options => {
        options.DefaultAuthenticateScheme = "jwt";
        options.DefaultChallengeScheme = "jwt";
    }).AddJwtBearer("jwt", options => {
        options.RequireHttpsMetadata = false;
        options.SaveToken = false;

        options.TokenValidationParameters = new TokenValidationParameters {
            IssuerSigningKey = new SymmetricSecurityKey(keyBytes),

            RequireSignedTokens = false,
            ValidateTokenReplay = false,
            RequireExpirationTime = false,
            ValidateActor = false,
            ValidateIssuerSigningKey = false,
            ValidateIssuer = false,
            ValidateAudience = false,
            ValidateLifetime = false,
        };
    });

А в контроллере схема выше используется так:

[HttpGet("resource")]
[Authorize(AuthenticationSchemes = "jwt")]
public string GetResource() {
    return "protected resource";
}

Я ожидаю, что он ответит со статусом 200 и "защищенным ресурсом" в теле, вместо этого он отвечает 401 (неавторизованным)

Запрос содержит токен на предъявителя без подписи, пример: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjVjYjYxOTYyYzdmZGM0NjUzOGE3MzQ4NiIsInJvbGUiOiJ1c2VyIiwibmJmIjoxNTU1NTc4OTUwLCJleHAiOjE1NTk4OTg5NDksImlhdCI6MTU1NTU3ODk1MCwiaXNzIjoidHJhZGVfYm90IiwiYXVkIjoidHJhZGVfYm90In0

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