Описание проекта
По методам подтверждения нужна полноценная поддержка TOTP, чтобы пользователи могли привязать любое совместимое приложение-аутентификатор, отсканировав QR-код, с эндпоинтом выдачи общего секрета и допуском на расхождение часов. Дополнительно нужны одноразовые коды по SMS и email как резервные каналы, с настраиваемой длиной кода, окном действия и ограничением повторной отправки, чтобы держать под контролем расходы и злоупотребления. Каждому подключённому пользователю нужно выдавать набор одноразовых резервных кодов, которые можно распечатать или сохранить, и должен быть безопасный путь перевыпуска и отзыва при утере устройства. Слой доставки делаем на адаптерах, чтобы SMS- или email-провайдера можно было менять через конфиг, а не переписывая код.
Всё это управляется через документированный REST API с токенной авторизацией вызывающих приложений, предсказуемыми JSON-ответами и понятными кодами ошибок для неверных, просроченных или уже использованных токенов. Безопасность — суть продукта, поэтому мы ждём хеширование секретов при хранении, блокировки при переборе, журнал попыток проверки и разумные настройки по умолчанию. В отклике опишите, пожалуйста, ваш опыт с OTP или системами аутентификации.
— Поддержка TOTP-аутентификаторов (QR-выдача, общий секрет, допуск по времени)
— Одноразовые коды по SMS и email со сроком действия и лимитом повторов
— Одноразовые резервные коды с перевыпуском и отзывом
— Документированный REST API с токенной авторизацией и понятными кодами ошибок
— Адаптеры провайдеров SMS/email, сменяемые через конфиг
— Журнал аудита, блокировка перебора, хеширование секретов при хранении