Двухфакторная аутентификация (реализация)

Со стороны API

Детальное описание методов есть в Postman в папке "Пользователи"

В рамках двухфакторной аутентификации:

Если для пользователя требуется двухфакторная аутентификация, с использованием стандартного токена до прохождения 2FA доступны лишь следующие методы:

  1. /wa_users/restorePass

  2. /wa_users/setToken

  3. /wa_users/2FA/init/

  4. /wa_users/2FA/validate/

  5. /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 следует использовать методы области СлужебныйПрограммныйИнтерфейс общего модуля лксДвухфакторнаяАутентификацияОбщий .

Добавить созданный общий модуль в перечисление лксВариантыДвухфакторнойАутентификации

Новое значение перечисления должно отвечать следующий требованиям:

  1. Имя значения - то, как общий модуль назван в конфигурации.

  2. Синоним - осмысленное название варианта 2FA. Будет отобраться в пользовательском интерфейсе.

Last updated