Аутентификация с помощью JWT: защита представлений с точки зрения потребителя - PullRequest
0 голосов
/ 21 февраля 2019

Я создал веб-API с использованием ASP.NET Core 2.1, и он (успешно) использует JWT в качестве метода авторизации запросов.

API связан с базой данных SQL Server.Мои пользователи хранятся в нем, используя Identity в качестве базовой платформы.

Чтобы разрешить доступ для моего API, я беру имя пользователя и пароль, которые сравниваются с сохраненным (на основе Identity) пользователем.

При успешном входе в систему возвращается Access Token (с продолжительностью жизни 30 минут).

При первом входе в систему генерируется и сохраняется Refresh Token для пользователя Identity и отправляется обратно из API.

Все это работает хорошо.Следующим моим шагом было создание отдельного сайта .NET Core 2.1 MVC, который использует API.

Мой вопрос:

С точки зрения сайта MVC, как защитить свои контроллеры и представления на основе этой настройки безопасности?Я бы обычно использовал атрибут [Authorize] как часть Identity.

Все, что у меня есть на стороне сайта MVC на данный момент, это Access TokenRefresh token) для данного пользователя.

Я думаю следующее решение:

  • Сайт MVC имеет свою собственную базу данных и аутентификацию для пользователей (используя Identity).
  • Соединение (учетные данные / токены) с API хранится отдельно в базе данных сайта MVC и используется как «глобальный» способ на стороне сервера для выполнения вызовов против API

1 Ответ

0 голосов
/ 25 февраля 2019

Вы должны использовать OpenID Connect и OAuth 2.0 framework.пожалуйста, проверьте IdentityServer4 .Он также поддерживает идентификацию ядра asp.net

IdentityServer - поставщик OpenID Connect - он реализует протоколы OpenID Connect и OAuth 2.0.

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

Но они в двух словах - это одно и то же: часть программного обеспечения, которая выдает токены безопасности клиентам.

IdentityServer имеет ряд заданий и функций, в том числе:

  • защита ваших ресурсов
  • проверка подлинности пользователей с использованием локального хранилища учетных записей или внешнего поставщика удостоверений
  • обеспечивает управление сеансами и единый вход
  • управление и аутентификация клиентов
  • выдача идентификаторов и токенов доступа клиентам
  • проверка токенов
...