В одном из моих проектов мне нужно реализовать функцию входа в систему. Это означает, что пользователь может войти в приложение с простым именем пользователя и паролем, чтобы получить доступ только для чтения на веб-сайте и API за ним.
Если пользователь хочет выполнить какие-либо осмысленные операции с данными, такие как «запись / обновление», ему необходимо пройти аутентификацию с помощью второго фактора (с помощью кода SMS).
Второй фактор действителен в течение максимум 10 минут, если пользователь не подключается к сайту в течение 10 минут, он автоматически выйдет из системы из-за второго фактора, но все равно останется в системе с одним фактором.
Может ли identityserver4 поддерживать этот сценарий "из коробки"? или мне нужно реализовать это самостоятельно?
Вот мое предложение по решению:
- для однофакторного входа в систему идентификационный сервер предоставляет однофакторную область, которую клиент должен понимать. он предоставляет токен доступа, который также имеет ограниченную область действия.
- когда клиентскому приложению требуется двухфакторная область действия, оно снова вызывает identityserver, где пользователь должен обеспечить аутентификацию второго фактора. следовательно, новый токен со второй областью действия фактора отправляется обратно клиенту. с этим токеном клиент может вызывать методы API, которые требуют аутентификации второго фактора.
- токен аутентификации второго фактора имеет срок действия 10 минут
- через 10 минут токен недействителен, но один факторный токен все еще действует, поскольку он имеет длительный срок службы.
Вопросы
- Может ли IdentityServer4 предлагать вход в систему из коробки? Если нет, каковы альтернативные решения?
что вы предлагаете относительно моего решения?
Заранее спасибо