Как аутентифицировать пользователя в интерфейсе.NET Core MVC с помощью инфраструктуры идентификации ядра.net

У меня есть ASP.NET CORE MVC WebApp с Identity Framework. Теперь, когда мы также планируем расширить наш продукт таким образом, чтобы мы могли предоставлять мобильные приложения с xamerin, я решил создать API, чтобы нам не приходилось кодировать бэкэнд дважды. В настоящее время мы размещаем наше приложение в облаке Azure.

Для бэкэнда: я хотел бы использовать ASP.NET CORE WebApi, но я решил, что такого шаблона Identity или встроенной интеграции Azure Web API нет. Так будет ли лучше использовать ASP.NET вместо этого? Я уже создал базовый логин AccountController для API ядра.net.

Так как я аутентифицировал ASP.NET Core MVC Web App через каркас идентификации, я хотел бы также использовать его в бэкэнде. Чтобы вы вошли в систему на бэкэнде и получили токен, как только вы вошли в систему. Я должен написать код для входа пользователя в систему и вернуть токен.

Как именно я могу аутентифицировать интерфейс.NET ASP CORE? Пользователь запросит страницу входа в систему -> AuthConntroller.Login-> Метод входа в систему запускает вызов Backend API для входа в систему -> Backend API запрашивает базу данных backend -> если при успешном возврате true-> backend генерирует токен -> отправляет его обратно во внешний интерфейс -> frontend использует Owin, чтобы я мог использовать атрибут [Authorize] в классах контроллера, чтобы я мог аутентифицировать пользователя?

Что-нибудь еще, что я должен рассмотреть, когда я использую такой дизайн API?

Большое спасибо за любые советы / хитрости / ссылки / рекомендации по моей дилемме.

С уважением, Пол

1 ответ

Если я правильно понимаю проблему, эти источники могут помочь:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.1&tabs=visual-studio

http://docs.identityserver.io/en/release/quickstarts/6_aspnet_identity.html https://github.com/openiddict/openiddict-core

В таких случаях может не хватить идентичности Asp.Net. Вы можете предоставить Auth server project эти библиотеки для ваших клиентских проектов.

Другие вопросы по тегам