Что умеет решение
Модуль двухфакторной аутентификации на базе стандарта TOTP (RFC 6238). Поддерживает Яндекс.Ключ, Google Authenticator, Microsoft Authenticator и совместимые приложения. Реализована работа с несколькими устройствами, генерация резервных кодов, настройка обязательного прохождения для определенных групп пользователей. Компонент функционирует в административной панели и на публичной витрине магазина, не требуя установки модуля «Проактивная защита».
Сценарий входа с активным 2FA: после ввода логина и пароля система запрашивает подтверждение. Пользователь вводит шестизначный код из приложения или резервный код. После успешной проверки сессия помечается как подтвержденная, и происходит перенаправление на исходную страницу (админка или сайт).
Сценарий обязательной аутентификации без устройств: если пользователь входит в группу, указанную в настройке «обязательные группы», но еще не подключил 2FA, после ввода пароля его перенаправляют на страницу настройки. Там генерируется QR-код и требуется ввод двух кодов подряд для подтверждения.
Сценарий добровольного подключения: осуществляется через компонент ecl:yandex2fa.setup в личном кабинете или по URL с параметром setup. Процесс включает генерацию секретного ключа, отображение QR-кода по протоколу otpauth://totp/, подтверждение двумя кодами и однократную выдачу списка резервных кодов.
Поддержка нескольких устройств: на один аккаунт можно зарегистрировать несколько аутентификаторов, при этом лимит настраивается. Удаление или отключение устройств учитывает политику обязательной двухфакторной аутентификации для группы пользователей.
Сессия доверия: после успешной проверки 2FA активируется доверенная сессия на заданный в настройках срок (в минутах). Это позволяет не запрашивать код подтверждения при каждом запросе в пределах указанного времени.
Безопасность: секреты устройств хранятся на сервере в защищенном виде. Резервные коды сохраняются только в виде хешей; исходный текст показывается пользователю один раз в момент выдачи.
Проверка TOTP: используется временное окно валидации (±N периодов по 30 секунд) и защита от повторного использования кода (replay).
Ограничения доступа: настроен лимит попыток ввода кода и временная блокировка при превышении порога.
Протокол: опционально разрешен прием кодов только через защищенный протокол HTTPS.
Хранение данных: статус доверия после 2FA сохраняется в отдельной таблице модуля, а не в системной таблице b_option.
Журналирование: критические действия записываются в лог модуля.
Служебные URL
Ввод кода (challenge): /bitrix/tools/ecl_yandex2fa_auth.php
Подключение 2FA: /bitrix/tools/ecl_yandex2fa_setup.php
AJAX настройка: /bitrix/tools/ecl_yandex2fa_setup_ajax.php
Пути challenge и setup можно переопределить в настройках модуля. Для интеграции в шаблоны сайта рекомендуется использовать компоненты.
2. Настройки и страницы в административной панели
2.1. Настройки модуля
Настройка модуля двухфакторной авторизации (Google / Яндекс.Ключ) от EcomLabs доступна в разделе «Настройки продукта» через меню «Настройки модулей» или в пункте меню самого модуля «Настройки».
Модуль включён: глобальный переключатель функции 2FA без удаления расширения. По умолчанию отключено (N), требуется активация после установки.
Только HTTPS: запрет на обработку кодов проверки через незащищённый протокол HTTP. По умолчанию отключено (N).
Группы, для которых 2FA обязательна: выбор нескольких групп пользователей. Для выбранных групп вход без подтверждённого устройства невозможен, система перенаправит на настройку. По умолчанию активна только группа администраторов (ID 1).
Окно проверки, периодов ±: допустимое отклонение времени для TOTP (базовый период 30 секунд). Стандартное значение 1.
Алгоритм HMAC: метод хеширования для новых подключений (SHA-1, SHA-256 или SHA-512). Приложение Google Authenticator поддерживает только SHA-1. По умолчанию используется sha1.
Количество резервных кодов: число одноразовых кодов для восстановления доступа при регистрации или перевыпуске. Допустимый диапазон от 8 до 20, по умолчанию 10.
Максимум устройств на пользователя: лимит активных устройств для одного аккаунта. Диапазон от 1 до 20, по умолчанию 5.
Срок доверия сессии после 2FA, минут: время действия доверенной сессии (TTL trust) после успешной проверки кода. По умолчанию 720 минут (12 часов).
Попыток ввода до блокировки: количество последовательных неудачных попыток ввода кода перед блокировкой. По умолчанию 5.
Блокировка, секунд: длительность паузы после исчерпания лимита попыток. По умолчанию 900 секунд.
Издатель (issuer): подпись, отображаемая в приложении-аутентификаторе. Если поле оставить пустым, используется имя сайта из основных настроек.
Модуль обеспечивает двухфакторную авторизацию с поддержкой Google Authenticator и Яндекс.Ключ. Для совместимости с приложениями, имеющими проблемы с кодировкой UTF-8 (например, Drop Authenticator), в QR-кодах используются ASCII-лейблы и транслитерация кириллицы в полях label и issuer. Стандартные приложения Google и Яндекс корректно обрабатывают UTF-8.
По умолчанию страницы ввода кода и настройки 2FA доступны по путям /bitrix/tools/ecl_yandex2fa_auth.php и /bitrix/tools/ecl_yandex2fa_setup.php соответственно. Пользовательские подсказки настраиваются текстовым полем; при отсутствии текста отображается встроенная инструкция для Google Authenticator и Яндекс.Ключ.
В разделе административного меню Bitrix «Пользователи с 2FA» отображается список пользователей с колонками: ID, логин, имя, статус активности 2FA, количество привязанных устройств, дата регистрации, использование резервных кодов и другие данные. Доступна функция сброса 2FA для конкретного пользователя (требует подтверждения), которая очищает данные об устройствах и резервных кодах, а также сбрасывает доверенные сессии.
Раздел «Журнал» фиксирует события: регистрация (enroll), проверка (verify), использование резервных кодов (recovery), ошибки и сбросы. В журнале отображаются дата, пользователь, тип действия, IP-адрес и описание события.
Компонент ecl:yandex2fa.auth предназначен для отображения формы подтверждения входа или статуса 2FA. Его можно разместить на любой странице сайта, включая замену стандартных инструментов. Для гостей система предлагает сначала выполнить вход по логину и паролю. Если требуется код, отображается форма для ввода TOTP или резервного кода.
Модуль двухфакторной авторизации (2FA) для систем Google и Яндекс.Ключ от eCom Labs. Если вход уже подтверждён и соответствующий параметр активен, система выводит сообщение об отсутствии необходимости повторного ввода. При отсутствии требования 2FA или отключённом модуле отображаются соответствующие статусы.
Основные параметры конфигурации: AJAX_MODE (режим AJAX, значение Y по умолчанию), SHOW_VERIFIED (показ блока подтверждения входа) и стандартные настройки кэширования CACHE_TYPE и CACHE_TIME.
Компонент ecl:yandex2fa.setup обеспечивает подключение и управление устройствами. Функционал включает просмотр списка устройств, добавление нового устройства, генерацию QR-кода, ввод двух кодов, выдачу одноразовых резервных кодов, удаление устройства, перевыпуск кодов восстановления и отключение 2FA (при разрешении групповой политикой). Модуль работает автономно на странице профиля по пути /tools/setup.
При включённом AJAX_MODE (значение Y по умолчанию) действия выполняются через файл ecl_yandex2fa_setup_ajax.php. На странице инструментов отображается центрированная карточка с кнопкой возврата на сайт. Поддерживается работа в составе композита.
Рекомендуется разместить компонент ecl:yandex2fa.setup в личном кабинете. Запрос подтверждения (challenge) при входе можно оставить на странице tools или вывести компонент ecl:yandex2fa.auth на кастомной странице входа.
Для «Двухфакторная авторизация (Google / Яндекс.Ключ) (EcomLabs)» команда General iT может выполнить развёртывание, настройку и доработку под структуру будущего сайта.