Я настроил клиента MVC, добавив следующие строки.
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer();
Сообщение об ошибке, как и ожидалось, было 401 Unauthorized. Поэтому я добавил конфигурацию для носителя в соответствии с предложением Microsoft .
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(_ =>
{
_.Authority = "http://localhost:5000";
_.Audience = "http://localhost:5002";
});
В моем решении порт 5000 является хостом провайдера IDS4, а порт 5002 - приложением MVC. В этот момент я получил ошибку, потому что на данный момент я использую строго HTTP. Было предложено снизить уровень безопасности, установив RequireHttpsMetadata в false , что я и сделал, как показано ниже.
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(_ =>
{
_.Authority = "http://localhost:5000";
_.Audience = "http://localhost:5002";
_.RequireHttpsMetadata = false;
})
К моему разочарованию, я снова получаю 401 Unauthorized в моем браузере, когда запрашиваю страницу в действии, украшенную [Authorize] .
Я не уверен, как диагностировать это дальше. Я пытаюсь сравнить мой код с gazillion примеров, но не вижу существенной разницы. Кроме того, многие примеры относятся к другой версии Core, IDS или схемы. Мне нужно посоветовать, откуда может исходить запах.