Настройка двухфакторной авторизации через Telegram

При выборе этого способа после ввода логина и пароля пользователю отправляется одноразовый код в Telegram-бот

Предварительные действия

Создание Telegram-бота

  1. Перейти к @BotFather (https://t.me/BotFather) в Telegram

  2. Отправить команду /newbot и следовать инструкциям для создания нового бота

Подсказка

Скопируйте и сохраните полученный токен — он понадобится для настройки на сервере или в профиле пользователя

Получение ID чата

Бот может отправлять одноразовый код в личные сообщения пользователю или в общий чат

  1. Активировать отображение ID в Telegram:

    1. Откройте Telegram и перейдите в Настройки

    2. Выберите Продвинутые настройки

    3. Перейдите в Экспериментальные настройки

    4. Активируйте чек-бокс Show Peer IDs in Profile

  2. Получить ID:

    • Личный ID профиля — перейдите в Мой профиль и скопируйте значение ID

    • ID группы — откройте группу, ID будет показан рядом с её названием

Важно

Чтобы бот мог отправлять сообщения в личные сообщения пользователя, пользователь должен сам отправить боту команду /start. Без этого Telegram запрещает боту первым писать пользователю

Настройка на сервере

Подключение бота

  1. Перейти в Администрирование → Настройки → Настройки телеграм бота:

    • В поле Токен для телеграм бота указать полученный у @BotFather токен

    • В поле ID чата телеграм бота указать ID личного профиля или группы для общих уведомлений

  2. Сохранить настройки, нажав Сохранить

  3. Проверить отправку тестового сообщения, нажав Отправить

Настройка пользователя

Чтобы код приходил в личные сообщения конкретного пользователя:

  1. Открыть профиль пользователя в Организация → Пользователи

  2. На вкладке Профиль указать:

    • Телеграм (токен) — токен бота, который пишет именно этому пользователю

    • Телеграм (ID чата) — ID личного чата пользователя с этим ботом

    Важно

    Если поле Телеграм (токен) оставить пустым, будет использован токен из настроек сервера — но только при включённой опции Использовать токен бота Telegram из настроек при отправке OTP для всех пользователей (см. ниже)

  3. Сохранить профиль, нажав Сохранить

Включение двухфакторной авторизации

Способ 1. Только для конкретных пользователей

Глобально 2FA на сервере включать не нужно. Достаточно зарегистрировать Telegram-ключ в профиле нужного пользователя:

  1. Открыть профиль пользователя в Организация → Пользователи

  2. Перейти на вкладку Безопасность аккаунта

  3. Добавить ключ типа Telegram

После этого при входе только у этого пользователя будет запрошен второй фактор через Telegram. Остальные пользователи войдут без 2FA

Способ 2. Для всех пользователей сервера

  1. Перейти в Администрирование → Настройки → Аутентификация

  2. В поле Двухфакторная авторизация выбрать Telegram (OTP)

    Подсказка

    Чтобы не указывать токен в профиле каждого пользователя, активируйте чек-бокс Использовать токен бота Telegram из настроек при отправке OTP для всех пользователей — тогда сервер будет использовать общий токен из настроек, а в профиле пользователя достаточно указать только Телеграм (ID чата)

  3. Сохранить настройки, нажав Сохранить

После этого 2FA через Telegram станет обязательной для всех пользователей сервера

Важно

Если у пользователя не указан Телеграм (ID чата), он не сможет пройти двухфакторную авторизацию — код некуда будет отправить

Аварийное отключение

Если возникают проблемы и пройти двухфакторную авторизацию невозможно, выполните на сервере команду:

rude constance set TWO_FACTOR "off"

После внесения всех изменений при попытке авторизоваться одноразовые коды будут отправляться в указанные чаты