identityServer4 с входом в систему и MFA - PullRequest
0 голосов
/ 14 марта 2019

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

Если пользователь хочет выполнить какие-либо осмысленные операции с данными, такие как «запись / обновление», ему необходимо пройти аутентификацию с помощью второго фактора (с помощью кода SMS).

Второй фактор действителен в течение максимум 10 минут, если пользователь не подключается к сайту в течение 10 минут, он автоматически выйдет из системы из-за второго фактора, но все равно останется в системе с одним фактором.

Может ли identityserver4 поддерживать этот сценарий "из коробки"? или мне нужно реализовать это самостоятельно?

Вот мое предложение по решению:

  • для однофакторного входа в систему идентификационный сервер предоставляет однофакторную область, которую клиент должен понимать. он предоставляет токен доступа, который также имеет ограниченную область действия.
  • когда клиентскому приложению требуется двухфакторная область действия, оно снова вызывает identityserver, где пользователь должен обеспечить аутентификацию второго фактора. следовательно, новый токен со второй областью действия фактора отправляется обратно клиенту. с этим токеном клиент может вызывать методы API, которые требуют аутентификации второго фактора.
  • токен аутентификации второго фактора имеет срок действия 10 минут
  • через 10 минут токен недействителен, но один факторный токен все еще действует, поскольку он имеет длительный срок службы.

Вопросы

- Может ли IdentityServer4 предлагать вход в систему из коробки? Если нет, каковы альтернативные решения?

что вы предлагаете относительно моего решения?

Заранее спасибо

1 Ответ

1 голос
/ 14 марта 2019

То, что вы написали в пунктах маркера, в основном, как я вижу, реализовано в IdentityServer4Это просто настройка двух разных областей действия и выдача двух отдельных токенов для одного и того же пользователя.Первая область «только для чтения», время жизни = 24 часа, приемлемо только для безопасных операций в API приложения, вторая область «полная» с временем жизни = 10 минут, приемлемое для всех операций.Нет больших проблем, это должно быть прекрасно выполнимо с базовым IdentityServer4.Однако вам придется выполнить RT (F) M и настроить области, клиенты, токены и т. Д. В конфигурации IdentityServer4.Кроме того, вам необходимо реализовать политики доступа с двумя токенами в реализации API-интерфейса бэкэнда вашего приложения, и, разумеется, клиентские приложения должны будут внимательно следить за тем, какой токен они получают и какой токен они используют для какого вызова бэкэнда ... но всеэто более или менее очевидно (и вы, кажется, понимаете это, судя по этим пунктам), поэтому я не совсем понимаю, что вы хотели бы сказать «из коробки» или о чем вы беспокоитесь вусловия поддержки для этого на стороне IdentityServer4 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...