Как получить ответ 401 от identityServer4 - PullRequest
0 голосов
/ 01 мая 2018

Недавно мы начали использовать IdentiyServer 4 (что здорово!). У нас есть одна служба идентификации, которую используют все остальные службы, обычно с JWT. Проблема в том, что в случаях, когда токен недействителен (истек или просто неверен), вместо того, чтобы получить ответ 401 (не авторизован), мы просто получаем 500 (внутренняя ошибка сервера).

Я что-то не так делаю? Я даже пытался использовать их официальный пример кода в качестве нашей службы идентификации, и в итоге получил тот же результат.

Вот соответствующие строки Startup.cs:

ConfigureServices:

services.AddMvcCore()
    .AddAuthorization()
    .AddJsonFormatters();

Настройка:

app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
    Authority = Configuration["URLs:IdentityServer"],
    RequireHttpsMetadata = false,

    ApiName = "api1"
});

Вот исключение:

Произошло необработанное исключение при выполнении запроса System.InvalidOperationException: не указана схема authenticationScheme, и не найден DefaultChallengeScheme.

Трассировка стека:

в Microsoft.AspNetCore.Authentication.AuthenticationService.d__11.MoveNext () --- Конец стека трассировки из предыдущего места, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) в Microsoft.AspNetCore.Mvc.ChallengeResult.d__14.MoveNext ()

(есть еще, но я не думаю, что это актуально)

1 Ответ

0 голосов
/ 03 мая 2018

решаемая. Кажется, я использовал старую версию IdentityServer4. Обновленный до последней (2.6.0), пришлось изменить некоторые настройки потока (в соответствии с официальные документы ), и это решило проблему.

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