Проект, над которым я работаю, состоит из веб-API, одностраничного приложения для реагирования и мобильного приложения. От каждого клиента пользователю потребуется указать свое имя пользователя и пароль, чтобы получить доступ к защищенным частям веб-API. Я установил сервер аутентификации Identity Server 4, который использует мою собственную реализацию интерфейсов IProfileService и IResourceOwnerPasswordValidator, потому что я использую ASP.NET Core Identity. Это позволяет Identity Server получить доступ к ASP.NET Core Identity UserManager, RoleManager и SignInManager, чтобы определить, действительны ли указанные имя пользователя и пароль.
Тип гранта, который я использовал для всего этого, - это тип ResourceOwnerPassword. Я не полностью интегрировал авторизацию в одностраничное приложение, но я могу передать имя пользователя и пароль на сервер идентификации, и будет сгенерирован токен, который я могу добавить в заголовок запроса к моему API.
Я провел больше исследований об Identity Server и связанных с ним технологиях, потому что я новичок во всем этом. Похоже, что нежелательно использовать тип предоставления ResourceOwnerPassword. Насколько я могу судить, мне кажется, что мне следует использовать тип неявного предоставления, но я не совсем понимаю, как имена пользователей и пароли вписываются в этот поток. Есть ли у кого-нибудь представление о том, какой тип я должен использовать? Возможна ли описанная мною система только с использованием типа предоставления ResourceOwnerPassword?