Как реализовать перекрестный вход в систему с QR-кодом из мобильного приложения в качестве метода аутентификации для веб-сайта или веб-приложения способом c поставщика? - PullRequest
0 голосов
/ 17 июня 2020

Я использую Django 2.2 для своего веб-приложения.

И я искал учебные пособия, которые предназначены для перекрестного входа с QR-кодом в веб-приложение с помощью мобильного приложения.

В основном рабочий процесс выглядит следующим образом:

ожидаемый рабочий процесс

  1. Пользователь заходит на веб-сайт на рабочем столе
  2. При выборе имени пользователя / пароля или входа в систему с помощью QR-кода (мы предполагаем, что пользователь зарегистрирован)
  3. Пользователь выбирает QR-код для входа в систему
  4. Пользователю предлагается установить мобильное приложение (может быть android или iOS)
  5. Пользователь устанавливает мобильное приложение и входит в систему, используя имя пользователя / пароль.
  6. В мобильном приложении пользователь затем соглашается на будущий вход с использованием QR-кода в качестве альтернативы (это делается один раз)
  7. После этого в будущих входах, когда Пользователь выбирает QR-код для входа в соответствии с шагом 3. Они используют мобильное приложение для сканирования QR-кода создается на странице входа на сайт.
  8. Затем мобильное приложение использует FaceID или FingerPrint ID (при условии iOS), чтобы затем разрешить вход. Пользователь нажимает кнопку Да в мобильном приложении, чтобы подтвердить вход.
  9. Каким-то образом веб-приложение уведомляется динамически и позволяет входить в систему в браузере настольного компьютера.

Я не совсем понимаю, как мобильное и веб-приложение на бэкэнде работают друг с другом чтобы добиться этого без проблем.

Что я нашел

Я нашел эту библиотеку https://github.com/aruseni/django-qrauth, которая, похоже, больше не поддерживается. Но я все еще не могу понять, как работает поток между мобильным приложением и серверной частью webapp.

Я также нашел это https://medium.com/@ksarthak4ever / django -two-factor-authentication-2ece42748610 , которое кажется использовать мобильный телефон как устройство 2FA. Не совсем тот вариант использования, который я ищу, если я не понял неправильно.

Я нашел эту статью https://backendless.com/how-to-implement-mobile-to-web-cross-login-using-a-qr-code/, которая дала мне термин «перекрестный вход». Тем не менее, статья сильно тяготеет к этому конкретному поставщику.

Я ищу «понимание» концепции, не полагаясь на особенности реализации поставщика.

То, что я не ищу

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

Я не ищу вариант использования, в котором QR-код служит Подтверждение 2FA для приложения-аутентификатора.

Я тоже пока не смотрю примеры кода. Я просто хочу в первую очередь четкое представление о том, как взаимодействуют мобильное и веб-приложение. Я считаю, что JWT необходим, хотя предполагаю.

Рабочий процесс ценится больше, чем реальный код, потому что я хочу сначала понять, как это работает.

...