Двухфакторная аутентификация Django - PullRequest
0 голосов
/ 27 февраля 2019

Я недавно читал документацию о двухфакторной аутентификации django, которую нашел здесь: https://django -two-factor-auth.readthedocs.io / en / stable / installation.html Документация отличная.Тем не менее, я пытаюсь понять полные требования для этого решения.Если я внедряю этот пакет, нужно ли мне полагаться на третье лицо, чтобы завершить это решение, или двухфакторная аутентификация может быть достигнута без третьей стороны?Моя главная проблема - это затраты, связанные с подключением к третьим сторонам.Если этого можно избежать, очевидно, я бы предпочел бесплатно.Если этого нельзя избежать, есть ли у кого-нибудь опыт работы со сторонними поставщиками, предлагающими двухфакторную аутентификацию?Я немного исследовал Twillio, но я знаю, что есть другие, которые также выполняют эту услугу.Спасибо заранее за любые данные.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

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

Вы можете сделать это, напрямую внедрив библиотеку pyOTP , а затем предоставив пользователюиспользуйте приложение Google Authenticator.Поскольку все дело в математике, при создании или проверке кода сторонние службы отсутствуют.

Я уже реализовывал это на веб-сайте django.Это включает в себя настройку OTP-секрета, его проверку.Затем каждый раз, когда требуется авторизация, генерируйте QR-код для сканирования с использованием URI обеспечения, а затем комбинируйте проверку 2FA с вашей аутентификацией.Все эти шаги можно выполнить, используя только библиотеку pyOTP.(Я также использовал библиотеку pyqrcode для генерации сканируемого qr-кода)

Если вы выполните поиск, вы, вероятно, найдете несколько примеров людей, которые уже построили эти небольшие шаги в больших библиотеках, , как этот .

Если вы хотите предложить услугу 2FA на основе SMS, вам нужно рассмотреть использование Twilio.Но это, возможно, особенность, и она не обязательна.

0 голосов
/ 27 февраля 2019

Двухфакторный может работать не только через смс сообщения.Это также может быть реализовано с помощью, например:

  • предварительно сгенерированных одноразовых паролей / пин-кодов
  • алгоритма OTP / TOTP
  • сообщений электронной почты
  • Пользовательский канал связи (например, ваше собственное мобильное приложение, которое будет связываться с вашим сервером и извлекать код для входа)
  • Протокол U2F (Yubikey и т. Д.)

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

...