Модули расширения системы > Примеры модулей интеграции с ELMA365 / Пользовательский модуль для двухфакторной аутентификации

Пользовательский модуль для двухфакторной аутентификации

Вы можете включить двухэтапную аутентификацию при входе в систему, чтобы в качестве второго фактора использовался код подтверждения. Пользователь получит этот код через сторонний сервис, например мессенджер.

Для этого создайте пользовательский модуль и затем выберите его в настройках безопасности.

начало внимание

Работать с модулями и настраивать их могут только пользователи, включённые в группу Администраторы.

конец внимание

Для примера настроим получение кода подтверждения через Telegram-бот, выполнив следующие шаги:

  1. Настроить получение кода из стороннего сервиса.
  2. Создать и настроить модуль.
  3. Включить модуль для второго фактора аутентификации.

Шаг 1: Настроить получение кода из стороннего сервиса

  1. Перейдите в Telegram.
  2. Создайте бота. Подробнее читайте в официальной документации Telegram.
  3. Скопируйте токен бота.
  4. С помощью токена получите идентификатор чата для пользователя. Вы можете использовать следующий способ:
  1. Пользователь пишет любое сообщение созданному боту.
  2. Затем администратор системы получает идентификатор чата пользователя с ботом. Для этого:
  • введите следующий запрос в браузере: https://api.telegram.org/bottoken/getUpdates, где token — токен, полученный при создании бота;
  • в ответ на этот запрос на странице браузера появится JSON-текст, в котором содержится идентификатор чата.

Пример JSON-текста

  1. Затем нужно в профиле пользователя указать его идентификатор чата в поле Учетные записи. Если идентификатор не указан, сотрудник войдёт в систему только по логину и паролю.

Шаг 2: Создать и настроить модуль

Перейдите в Администрирование > Модули и создайте модуль. Затем выполните настройки на открывшейся странице Управление:

  1. На вкладке Настройки создайте свойства типа Строка, которые будут использованы в скриптах для получения кода подтверждения через бот мессенджера:
  • Тип аккаунта (accountType) — название стороннего сервиса, через который настраивается двухфакторная аутентификация;
  • Токен бота (botToken) — идентификатор бота на стороне внешнего сервиса. Выдаётся при создании бота;
  • Сообщение (message) — сообщение, которое получит пользовать вместе с кодом подтверждения, например «Вы заходите в ELMA365. Ваш проверочный код: ».

Если все свойства указаны, перейдите на вкладку Основные и нажмите Сохранить.

  1. Перейдите на вкладку Методы API и нажмите Редактировать. Откроется редактор методов. Затем на вкладке Скрипты напишите код, используя следующий шаблон:

// Этот интерфейс позволят задать условия в указанной ниже функции, при которых у пользователя будет запрашиваться код второго фактора аутентификации:
interface SecondFactor_sendError { error: string; skip2fa: boolean; }
 
// Эта функция определяет входящего пользователя по идентификатору и принимает код подтверждения:
async function secondFactor_sendCode(userID: string, code: string): Promise<SecondFactor_sendError> {}

Пример скрипта для поиска входящего пользователя по идентификатору чата с Telegram-ботом

Шаг 3: Включить модуль для второго фактора аутентификации

  1. Перейдите в Администрирование > Модули, откройте страницу модуля и включите его.
  2. В открывшемся окне заполните поля:
  • Токен бота — значение скопированного токена;
  • Тип аккаунта — название стороннего сервиса;
  • Сообщение — текст, который нужно отобразить перед кодом подтверждения.

2fa-integration-2

  1. Сохраните настройки. Модуль готов к использованию.
  2. Перейдите в Администрирование > Настройки безопасности > Двухфакторная аутентификация и выберите настроенный модуль для второго фактора аутентификации.

Теперь, если у пользователя в профиле указан его идентификатор чата с Telegram-ботом, сотруднику придёт код подтверждения при входе в систему.

2fa-integration-1