Не удается аутентифицироваться с использованием JWT в клиенте MVC - PullRequest
0 голосов
/ 30 декабря 2018

Я установил следующую аутентификацию в своем клиенте MVC.

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
services.AddAuthentication(_ =>
{
  //_.DefaultScheme = "Cookies";
  //_.DefaultChallengeScheme = "oidc";
  _.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
  .AddCookie("Cokies")
  .AddFacebook()
  .AddGoogle()
  .AddJwtBearer()
  .AddOpenIdConnect("oidc", _ => { });

Поскольку по умолчанию установлено значение JWT, я представляю, что остальные ( Cookie , Facebook , Google и OpenIdConnect ) просто игнорируются, если декоратор авторизации вызывается без параметров.

Однако я просто получаю 401 Unauthorized без дополнительной информации.Например, если я закомментирую оператор схемы по умолчанию для JWT и активирую cookie, например, так:

{
  _.DefaultScheme = "Cookies";
  _.DefaultChallengeScheme = "oidc";
  //_.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}...

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

Чего мне не хватает в моем MVC-клиенте для правильной аутентификации?Или проблема в моей конфигурации IDS4?

Я некоторое время гуглял, но не получаю никаких обращений, которые говорят со мной и которые я бы признал значимыми.Может быть, мое невежество, хотя ...

Более короткая версия, по-прежнему вызывающая ту же проблему, выглядит следующим образом.

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
  .AddJwtBearer(_ =>
  {
    _.Authority = "https://localhost:44300";
    _.Audience = "http://localhost:5001";
  });

Мой IDS4 работает на порту 44300 (проверено с .well-known ) и API находится на порту 5001.

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