Перейти к основному содержанию

NextCloud — 2FA через Telegram

Nextcloud

Скинули задачку — настроить двухфакторную аутентификацию в NextCloud через Telegram. Принцип работы простой:

  1. Пользователь логинится в NextCloud.
  2. Пользователю в Телеграм от бота приходит код второго фактора.
  3. Пользователь указывает код и входит в NextCloud.

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

Во-первых, нам понадобится бот в Телеграм для нашего NextCloud. Для управления ботами есть специальный бот @BotFather, добавляем его себе в контакты и пишем ему:

/start

telegram

Выводится справка по командам. Для создания бота пишем:

/newbot

Нам предлагают указать для бота name (имя), я пишу:

Zabbix internet-lab.ru

Нам предлагают указать для бота username (логин), он должен оканчиваться на "bot" или "Bot" я пишу:

zabbix_internet_lab_ru_bot

telegram

Бот создан, получаем токен "Use this token to access the HTTP API". Копируем токен, он нам понадобится для дальнейшей настройки.

Можно украсить бота, загрузить картинку и описание.

Two-Factor Gateway

Для аутентификации через Телеграм устанавливаем в NextCloud приложение Two-Factor Gateway.

nextcloud

Документацию по дальнейшей настройке бота можно найти здесь:

https://nextcloud-twofactor-gateway.readthedocs.io/en/latest/Admin%20Documentation/

Инструкцию по регистрации бота пропускаем, мы уже это сделали. Если не сделали, то делаем:

  1. Зарегистрируйте Telegram Bot.
  2. Откройте клиент Telegram client, найдите @BotFather и начните диалог.
  3. Отправьте /newbot для создания бота.
  4. Отправьте название бота, например, 'My own NC bot'.
  5. Отправьте имя бота, например, 'my_nc_bot'.
  6. BotFather создаёт бота и присылает токен, например, '123456789:AAbbCCddEEffGGhhIIjjKKllMMnnOOppQQ'.

А теперь нужно зайти в консоль сервера NextCloud и указать приложению токен:

occ twofactorauth:gateway:configure telegram
Please enter your Telegram bot token: 123456789:AAbbCCddEEffGGhhIIjjKKllMMnnOOppQQ
Using 123456789:AAbbCCddEEffGGhhIIjjKKllMMnnOOppQQ.

Файл occ должен иметь права на выполнение, скрипт выполнять нужно от имени пользователя, под которым работает NextCloud. К примеру:

cd /var/www/nextcloud
sudo chmod a+x ./occ
sudo -u www-data ./occ twofactorauth:gateway:configure telegram

nextcloud

Включение второго фактора

Дальше работаем от пользователя, которому нужно включить второй фактор.

Нам понадобится chat id пользователя из Telegram. Для получения chat id пользователю нужно в Telegram добавить бота @myidbot и отправить команду:

/getid

telegram

На самом деле таких ботов, которые возвращают идентификаторы довольно много.

Заходим к боту, которого мы создали в Телеграм и пишем ему:

/start

Логинимся в NextCloud и переходим к настройкам безопасности.

nextcloud

Переходим к разделу Telegram verification, нажимаем Enable.

nextcloud

Нужно ввести номер телефона или chat id, который мы узнали ранее. Поскольку номер телефона у многих скрыт, то лучше указывать chat id. Verify.

nextcloud

Бот присылает код подтверждения в телегу:

123456 is your Nextcloud verification code.

Копируем его в NextCloud. Confirm.

nextcloud

Успех.

Your account was successfully configured to receive messages via Telegram.

Проверка

Пробуем выполнить вход в NextCloud.

nextcloud

Требуется указать второй фактор, код которого высылает нам бот в Телеграм. Наш NextCloud стал ещё безопаснее.

 

Похожие материалы