Двухфакторная аутентификация для всех

от автора

По мотивам этой публикации я решил написать (и написал!) опенсорс для реализации двухфакторной аутентификации. На самом деле получилось два репозитория, которые обеспечивают весь «бэкграунд» второго фактора аутентификации и предоставляют удобную архитектуру для внедрения плюшек.

Отдельно отмечу, что первая часть может служить самостоятельным приложением. Оба сервиса работают через API.

Пинкоды

Это приложение отвечает за создание, отправку и проверку пина. Под капотом Sinatra + Redis.

Реализовано:

  • установка времени жизни пинкода;
  • ограничение по количеству попыток на ввод;
  • выбор стороннего шлюза для отправки смсок.

В планах:

  • другие способы доставки пинов (в идеале вынести эту доставку в отдельный модуль/сервис);
  • настраиваемый уровень сложности кода.

Акаунтинг

Эта часть занимается всем что полезно при аутентификации, но напрямую к ней не относится. Работает на Rails + PG.

Реализовано:

  • доступ по генерируемым ключам.

В планах:

  • настройки доступа (например, открыть доступ только для определенных айпишников);
  • cбор статистики.

Если говорить о статистике, то для двухфакторки это жизненно важная фича. Например СМС-шлюзы иногда отмечают пропавшие смски как доставленные. В этом плане статистика создано/подтверждено скажет гораздо больше и поможет не потерять ценных пользователей.

Итоги

Конечно решение разрабатывалось не как конкурент существующим, а как альтернатива. Например, когда надо реализовать доставку через свой шлюз, работать в закрытом режиме, допилить себе фичу и так далее. Также я надеюсь, что сообщество поможет сделать сервис лучше своей экспертной оценкой, пулреквестами и «еще бог знает чем».

Ссылки

Пинкоды: github.com/IlyaDonskikh/pincode
Акаунтинг: github.com/IlyaDonskikh/pincode_account

Возможно, у кого-то из читателей возник вопрос, что это за папка services и почему в ней храниться вся бизнес-логика. Ответ здесь: brewhouse.io/blog/2014/04/30/gourmet-service-objects.html.

Бонусы

Кроме всего вышеперечисленного у меня есть бесплатные вычислительные мощности на Азур, так что если вам интересно поэкспериментировать над этим проектом, но «негде», то напишите мне в личку. Проект запущен в облачном варианте здесь: pinc0de.com.

ссылка на оригинал статьи http://habrahabr.ru/post/261885/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *