Двухфакторная аутентификация (реализация)
Со стороны API
Детальное описание методов есть в Postman в папке "Пользователи"
В рамках двухфакторной аутентификации:
Если для пользователя требуется двухфакторная аутентификация, с использованием стандартного токена до прохождения 2FA доступны лишь следующие методы:
/wa_users/restorePass
/wa_users/setToken
/wa_users/2FA/init/
/wa_users/2FA/validate/
/wa_users/logout
Пример сообщения, что не пройдена 2FA:
{ "success": false, "errorCode": "403", "errorMsg": "Двухфакторная аутентификация не пройдена" }
После успешного прохождения 2FA с помощью стандартного токена можно выполнять остальные методы API.
Изменён метод /wa_users/login
Если для пользователя используется двухфакторная аутентификация, стандартная структура с токеном и его временем жизни будет содержать новое поле - is2FAPassed
Пример:
{ "token": "7218608a-4089-45e8-96c8-b1ae26f4cdc8", "expire_date": "2022-03-29T01:25:46", "is2FAPassed": false }
Добавлен метод /wa_users/2FA/init/
Инициирует отправку кода подтверждения в сторону пользователя с использованием настроенного на стороне бэка метода.
Добавлен метод /wa_users/2FA/validate/
Выполняет проверку, что введённый пользователем код соответствует ранее отправленному.
Техническая реализация новых вариантов отправки
Чтобы реализовать новый вариант, нужно выполнить следующие шаги:
Создать новый общий модуль с произвольным названием
Созданный общий модуль должен реализовывать следующие методы:
ОтправитьКод
Реализует отправку кода и его сохранение в ИБ.
Параметры:
ФизическоеЛицо - СправочникСсылка.ФизическиеЛица - физ. лицо, которому будет отправлен код
Должен возвращать параметры в соответствии со структурой лксДвухфакторнаяАутентификацияОбщий.КодОтправленПараметры
ВведенКорректныйКод
Проверяет равен ли код ранее отправленному
Параметры: ФизическоеЛицо - СправочникСсылка.ФизическиеЛица - физ. лицо, которое пытается пройти аутентификацию ВведенныйКод - Число - 6 цифр TOTP-кода, введённого пользователем
Должен возвращать Булево в зависимости от результата проверки или Неопределено , если 2FA не начата.
Для служебных действий над кодом и статусом прохождения 2FA следует использовать методы области СлужебныйПрограммныйИнтерфейс общего модуля лксДвухфакторнаяАутентификацияОбщий .
Добавить созданный общий модуль в перечисление лксВариантыДвухфакторнойАутентификации
Новое значение перечисления должно отвечать следующий требованиям:
Имя значения - то, как общий модуль назван в конфигурации.
Синоним - осмысленное название варианта 2FA. Будет отобраться в пользовательском интерфейсе.
Last updated