Общие сведения
Приложение "Telegram" может использоваться в качестве фактора аутентификации посредством доставки push-уведомлений пользователю.
Доставка осуществляется посредством защищённого Telegram Bot API с использованием отдельного аккаунта Telegram-бота.
Настройка фактора Telegram
Создание аккаунта для Telegram-бота
Для создания аккаунта требуется иметь зарегистрированную УЗ в Telegram.
В приложении Telegram:
- Через поиск найти официальный аккаунт Telegram BotFather (имеет логин @BotFather).
- В рамках взаимодействия с ботом выполнить операцию создания нового бота. В результате должно быть получено сообщение следующего вида:
«Done! Congratulations on your new bot. You will find it at t.me/yourbot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this. Use this token to access the HTTP API: 12345678919:h209548jm9tu323ав83ut34t34t32vv2 Keep your token secure and store it safely, it can be used by anyone to control your bot. For a description of the Bot API, see this page: https://core.telegram.org/bots/api»
Сохранить в безопасном месте строку с токеном, следующую за сообщением «Use this token to access the HTTP API:» (в примере выше «12345678919:h209548jm9tu323ав83ut34t34t32vv2»). Токен будет использоваться в качестве секрета для отправки сообщений через данного бота и используется для настройки подключения.
Внимание
Параметры аккаунта Telegram, через который был зарегистрирован новый бот, необходимо хранить в безопасном месте.
Настройка параметров Telegram для нескольких экземпляров Avanpost FAM
Чтобы избежать конфликта при работе нескольких экземпляров Avanpost FAM с одним Telegram-ботом, в версиях FAM 1.12 и выше реализован механизм поддержания стабильности работы с Telegram-сервисами.
В версиях FAM ниже 1.12 при наличии двух и более FAM Server с одинаковым токеном (телеграм-ботом) стабильно работает тот, которого включили позже.
При этом у администратора есть возможность указывать несколько Telegram-сервисов в форме настройки метода аутентификации посредством Telegram. Развернутые экземпляры Avanpost FAM Server поддерживают соединение с Telegram-сервисами. В случае, если с одним из сервисов утрачивается контакт, другой Telegram-сервис устанавливает контроль на Telegram-ботом (токеном). Дальнейшее обновление FAM Server осуществляется через данный Telegram-сервис.
Каждый экземпляр Avanpost FAM обладает собственным идентификатором idp_id
(расположен по пути: /opt/idp/idp_id
). Данный идентификатор используется для установки контакта Telegram-сервиса экземпляра с Telegram-ботом в случаях, когда развернуто несколько экземпляров FAM Server. Также идентификатор idp_id
используется для случаев кластеризации FAM Server при настройке репликации баз данных.
Для настройки метода Telegram требуется задать дополнительные параметры конфигурационного файла в соответствии с Таблицей 3.
Настройка параметров аутентификации методом Telegram (для FAM версии 1.12 и выше)
Настройка метода аутентификации SMS осуществляется в административной консоли Avanpost FAM Server следующим образом:
- Войти в раздел "Настройки методов аутентификации" режима "Сервис".
- Нажать кнопку "Добавить метод аутентификации".
- Заполнить общую информацию о методе согласно таблице (более подробно параметры описаны в Настройка методов аутентификации) и нажать кнопку "Далее".
Параметр Описание Название Ввести название. Фактор аутентификации Выбрать "SMS". Метод активен Заполнить чекбокс:
- при включенном чекбоксе метод можно использовать сразу после его создания и настройки;
- при выключенном чекбоксе метод невозможно использовать сразу после создания: для требуется активация в его профиле.
- Заполнить форму, содержащую основные параметры метода аутентификации через Telegram в соответствии с таблицей.
Параметр Описание Настройки привязки фактора
Разрешить Inline-привязку с помощью других факторов Чекбокс "Разрешить Inline-привязку с помощью других факторов":
- при установленном флажке разрешена интерактивная Inline-привязка разрешена;
- при установленном флажке запрещена Inline-привязка фактора.
Настройки Telegram
Название метода отображаемое пользователям Ввести название метода для отображения пользователям.
Ключ-тэг Уникальный тэг (используется для ориентации в логах).
Токен Телеграм Значение токена (получается от бота).
Требуется ввести сохраненную при создании бота строку, следующую за сообщением «Use this token to access the HTTP API:».
Таймаут авторизации Время жизни авторизации (в секундах). Таймаут отправки сообщений Время ожидания (в секундах) для отправки сообщений. Таймаут верификации Время жизни верификации (в секундах), которое определяет, сколько времени есть у пользователя на подтверждение операции. Использовать отдельный Telegram-сервис Заполнить чекбокс:
- при установленном флажке данный экземпляр Avanpost FAM будет использовать отдельный Telegram-сервис;
- при выключенном флажке один Telegram-сервис может использоваться совместно с другими экземплярами Avanpost FAM.
- Нажать "Сохранить" для сохранения настроенного метода (для возврата на предыдущий шаг нажать "Назад", для отказа от создания нового метода нажать "Отмена").
Чтобы отредактировать параметры настроенного метода требуется войти в его профиль (нажать на его название в реестре методов: режим "Сервис" - вкладка "Настройки методов аутентификации") и нажать . Для удаления метода в профиле следует нажать и подтвердить выбор.
Настройка параметров аутентификации методом Telegram (для FAM до версии 1.12)
До версии 1.12 FAM требуется настроить параметры секции telegram в конфигурационном файле config.json (для Avanpost FAM 1.7 и ранее) или config.toml (для Avanpost FAM 1.8+)
- Открыть файл /opt/idp/config.toml (или config.json для версий Avanpost FAM 1.7 и более ранних) на редактирование, использовав любой доступный в ОС текстовый редактор (в примере использован редактор vi).
vi /opt/idp/config.toml
2. В секции telegram задать необходимые настройки. Полный перечень параметров с их описанием доступен в Таблице 2. Пример настроенной секции:
[telegram] accessToken = 'TELEGRAM_TOKEN' authLifeTimeSeconds = 60 inlineBindingEnable = true listenerGetUpdatesTimeout = 60 senderTimeoutMilliSeconds = 1 verificationLifeTimeInSeconds = 60
Таблица 2. Описание параметров настройки метода аутентификации через Telegram для конфигурационного файла
Параметр | Описание |
---|---|
| Значение токена, указывается в кавычках |
| Время жизни авторизации в секундах |
| Флаг, указывающий, разрешено ли использование inline-привязки в Telegram для процесса аутентификации |
| Время ожидания (в секундах) для получения Системой обновлений от Telegram-бота |
| Время ожидания (в миллисекундах) для отправки сообщений |
| Время жизни верификации в секундах, которое определяет, сколько времени есть у пользователя на подтверждение операции |
Настройка параметров аутентификации методом Telegram (для FAM версии 1.12 и выше)
Для настройки аутентификации через Telegram в случаях, когда с телеграм-ботом взаимодействует несколько сервисов Avanpost FAM Server, требуется настройка дополнительных параметров в конфигурационном файле.
Таблица 3. Параметры настройки метода аутентификации через Telegram с несколькими сервисами FAM Server для конфигурационного файла
Параметр | Описание |
---|---|
| Значение токена (бота), указывается в кавычках. |
| Время таймаута (в секундах) при неактивности телеграм-бота (например, при значении |
| Перечень сервисов Avanpost FAM Server, взаимодействующих с данным токеном. |
| Время (в секундах), которое должно пройти до того момента, когда сервис Avanpost FAM Server начнет обращаться к другим сервисам Avanpost FAM Server (указаны в параметре |
| Адрес телеграм-сервиса. |
После развертывания Avanpost FAM Server в папке cmd/tg_service
содержится файл config.example.toml
, который рекомендуется использовать в качестве примера для конфигурационного файла config.toml
.