Вы можете включить двухэтапную аутентификацию при входе в систему, чтобы в качестве второго фактора использовался код подтверждения. Пользователь получит этот код через сторонний сервис, например мессенджер.
Для этого создайте пользовательский модуль и затем выберите его в настройках безопасности.
начало внимание
Работать с модулями и настраивать их могут только пользователи, включённые в группу Администраторы.
конец внимание
Для примера настроим получение кода подтверждения через Telegram-бот, выполнив следующие шаги:
- Настроить получение кода из стороннего сервиса.
- Создать и настроить модуль.
- Включить модуль для второго фактора аутентификации.
Шаг 1: Настроить получение кода из стороннего сервиса
- Перейдите в Telegram.
- Создайте бота. Подробнее читайте в официальной документации Telegram.
- Скопируйте токен бота.
- С помощью токена получите идентификатор чата для пользователя. Вы можете использовать следующий способ:
- Пользователь пишет любое сообщение созданному боту.
- Затем администратор системы получает идентификатор чата пользователя с ботом. Для этого:
- введите следующий запрос в браузере:
https://api.telegram.org/bottoken/getUpdates
, гдеtoken
— токен, полученный при создании бота; - в ответ на этот запрос на странице браузера появится JSON-текст, в котором содержится идентификатор чата.
{ |
- Затем нужно в профиле пользователя указать его идентификатор чата в поле Учетные записи. Если идентификатор не указан, сотрудник войдёт в систему только по логину и паролю.
Шаг 2: Создать и настроить модуль
Перейдите в Администрирование > Модули и создайте модуль. Затем выполните настройки на открывшейся странице Управление:
- На вкладке Настройки создайте свойства типа Строка, которые будут использованы в скриптах для получения кода подтверждения через бот мессенджера:
- Тип аккаунта (
accountType
) — название стороннего сервиса, через который настраивается двухфакторная аутентификация; - Токен бота (
botToken
) — идентификатор бота на стороне внешнего сервиса. Выдаётся при создании бота; - Сообщение (
message
) — сообщение, которое получит пользовать вместе с кодом подтверждения, например «Вы заходите в ELMA365. Ваш проверочный код: ».
Если все свойства указаны, перейдите на вкладку Основные и нажмите Сохранить.
- Перейдите на вкладку Методы API и нажмите Редактировать. Откроется редактор методов. Затем на вкладке Скрипты напишите код, используя следующий шаблон:
// Этот интерфейс позволят задать условия в указанной ниже функции, при которых у пользователя будет запрашиваться код второго фактора аутентификации:
interface SecondFactor_sendError { error: string; skip2fa: boolean; }
// Эта функция определяет входящего пользователя по идентификатору и принимает код подтверждения:
async function secondFactor_sendCode(userID: string, code: string): Promise<SecondFactor_sendError> {}
Пример скрипта для поиска входящего пользователя по идентификатору чата с Telegram-ботом
interface SecondFactor_sendError { |
Шаг 3: Включить модуль для второго фактора аутентификации
- Перейдите в Администрирование > Модули, откройте страницу модуля и включите его.
- В открывшемся окне заполните поля:
- Токен бота — значение скопированного токена;
- Тип аккаунта — название стороннего сервиса;
- Сообщение — текст, который нужно отобразить перед кодом подтверждения.
- Сохраните настройки. Модуль готов к использованию.
- Перейдите в Администрирование > Настройки безопасности > Двухфакторная аутентификация и выберите настроенный модуль для второго фактора аутентификации.
Теперь, если у пользователя в профиле указан его идентификатор чата с Telegram-ботом, сотруднику придёт код подтверждения при входе в систему.