Ошибка AddOpenIdConnect - SecurityTokenException: не удалось проверить 'id_token', не найден подходящий ISecurityTokenValidator для: ''. " - PullRequest
0 голосов
/ 06 февраля 2020

Я получаю это исключение в своем приложении ASP. NET Core 3.1. Используются следующие параметры:

                options.ClientId = config["Connection:ClientId"];
                options.ClientSecret = config["Connection:ClientSecret"];
                options.Authority = config["Connection:Uri"];
                options.CallbackPath = new PathString("/signin");
                options.ResponseType = "code";
                options.ResponseMode = "query";
                options.RequireHttpsMetadata = false;

Я получаю и код авторизации, и токен доступа, но после этого я получаю сообщение об ошибке, как показано:

Невозможно проверить 'id_token', Подходящий ISecurityTokenValidator не найден для: ''. " за вашу помощь.

1 Ответ

0 голосов
/ 07 февраля 2020

В последний раз, когда я их использовал, библиотеки веб-приложений на стороне сервера Microsoft поддерживали только гибридный поток, и вам нужно было установить:

  • response_type = code id_token

Это заставляет идентификаторы токенов проверяться как часть ответа авторизации, что повышает безопасность в области атак замещения.

Более новый вариант для интерфейсов пользователя - использовать следующий поток, в этом случае дополнительные параметры PKCE являются также необходимо, что, я уверен, библиотеки MS не поддерживают.

  • response_type = code

Во втором случае токен id принимается и обрабатывается в следующий шаг, который меняет код авторизации на токены.

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