Pull to refresh

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

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



Отдельно отмечу, что первая часть может служить самостоятельным приложением. Оба сервиса работают через 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.
Tags:
Hubs:
+4
Comments4

Articles

Change theme settings