2015-10-19 6 views
2

У меня есть веб-приложение Java Spring, и в настоящее время он имеет обычный поток аутентификации. Мне нужно добавить в него реализацию двухфакторной аутентификации. Для этого мы можем использовать сторонний провайдер, например google или любой другой провайдер.Добавить двухфакторную аутентификацию в мое веб-приложение

+0

Пожалуйста, прочитайте руководство [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), особенно часть минимального, полного и проверяемого примера (MCVE). Это поможет вам решить проблемы для себя. Если вы сделаете это и все еще застряли, вы можете вернуться и опубликовать свой MCVE, что вы пробовали, и каковы результаты, чтобы мы могли лучше вам помочь. – JeffC

+0

@ JeffC много читал, но не смог найти решение. Наконец, решил отправить в stackoverflow, чтобы получить помощь. По крайней мере, если я смогу получить простое руководство или отправную точку, вы сможете продолжить. – mahedhanu

ответ

2

Вот good package that I wrote, который реализует два-фактор-авторизации в Java коде.

Копирование из read_me, чтобы получить эту работу вам:

  1. Правильно инициализировать генератор случайных чисел.
  2. Используйте generateBase32Secret() для создания секретного ключа для пользователя.
  3. разорвал секретный ключ в базе данных, связанной с учетной записью пользователя.
  4. Показать URL-адрес изображения QR, возвращенный пользователем qrImageUrl (...).
  5. Пользователь использует изображение для загрузки секретного ключа в свое приложение-аутентификатор.

Всякий раз, когда пользователь входит в систему:

  1. Пользователь вводит номер из приложения аутентификатора в форму авторизации.
  2. Прочтите секрет, связанный с учетной записью пользователя из базы данных.
  3. Сервер сравнивает вход пользователя с выходом generateCurrentNumber(...).
  4. Если они равны, то пользователь может войти в систему.
+0

Как это решение отличается от коммерческих предложений, таких как предложения, предоставляемые Stormpath? –

+0

Эту бесплатную версию с открытым исходным кодом? В противном случае я не уверен @PradeepKumarTR. – Gray

Смежные вопросы