Я создал веб-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 Token
(и Refresh token
) для данного пользователя.
Я думаю следующее решение:
- Сайт MVC имеет свою собственную базу данных и аутентификацию для пользователей (используя
Identity
). - Соединение (учетные данные / токены) с API хранится отдельно в базе данных сайта MVC и используется как «глобальный» способ на стороне сервера для выполнения вызовов против API