- PVSM.RU - https://www.pvsm.ru -
С давних пор для второго шага аутентификации мы использовали одноразовые пароли отправляемые через СМС. Такой функционал появился в Redmine в 2013, когда мы разработали плагин redmine_sms_auth [1]. Об этом мы писали в давней статье [2].
Но время не стоит на месте. Мы активно внедряем Telegram в бизнес-процессы компании (раз [3], два [4], три [5]).
В связи с этим решили сделать аутентификацию через Telegram в Redmine. Заодно с этим переписать старый плагин про СМС и добавить поддержку Google Authenticator.
Далее мы расскажем о том как установить, настроить и использовать этот плагин.
Заходим в папку с плагинами
cd plugins
Клонируем репозиторий
git clone https://github.com/centosadmin/redmine_2fa.git
Переходим в корень Redmine
cd ..
Устанавливаем нужные гемы
bundle install
Выполняем миграции
rake redmine:plugins:migrate
Дополняем конфиг config/configuration.yml
# specific configuration options for production environment
# that overrides the default ones
production:
redmine_2fa:
sms_command: 'echo %{phone} %{password}'
в sms_command
впишите системную команду, которой будут отправляться сообщения.
Такой подход используется для совместимости с большинством API СМС-шлюзов. Скорее всего в вашем случае будет что-то вроде
/usr/bin/curl "https://sms.ru/api/send?phone=%{phone}&message=code: %{password}"
Перезапускаем Redmine.
Так как веб-хуки [6] от Telegram отправляются только на HTTPS адреса, ваш Redmine должен быть настроен на использование этого протокола.
По-умолчанию отключено, чтоб после установки плагина вы могли выбрать “не использовать” и войти в Redmine.
Но лучше включить, дабы случайные прохожие, узнавшие пароль одного из пользователей не смогли войти в систему.
Для аутентификации через Telegram нужно завести отдельного бота. Бота создаём с помощью @BotFather [7]. Инструкция по созданию бота [8].
Полученный от него ключ вводим в настройки и нажимаем Применить.
После того как токен сохранён, нужно инициализировать бота.
При инициализации в систему будет загружено имя бота, чтоб показать ссылку на него на шаге инициализации.
Также будет установлен веб-хук — адрес на который будут приходить запросы от API в случае, если кто-то напишет боту.
В прежних плагинах мы использовали бото-процессы, так как там большой входящий трафик.
Тут же решили исключить лишний элемент из системы.
Важно! При смене токена нужно Инициализировать бота ещё раз.
Данная функция пригодится если
В процессе деактивации сбрасывается токен и деактивируются все пользователи, использующие плагин.
При следующем входе в систему им нужно будет добавить себе в контакты нового бота.
Важно! Не забудьте активировать бота, когда введёте и сохраните новый токен.
При первом входе пользователь может выбрать один из способов аутентификации либо отказаться от использования второго фактора.
Отказаться он сможет только в том случае, если вы разрешили это в настройках плагина.
После команды /start бот сохранит в Redmine ваш аккаунт Telegram и предложит связать его с вашим аккаунтом в Redmine
Вводим предложенную команду
И получаем на почту письмо
При переходе по ссылке увидим сообщение
и форму логина.
Нужно ввести логин и пароль ещё раз.
После чего увидим форму ввода одноразового пароля
и получим заветный код от бота
Настройка Telegram — самая сложная. Но ради удобства в использовании минуту потратить не жалко.
Аутентификация через гугл настраивается проще всего. Сосканируйте QR-код в приложении и нажмите “Далее”.
Для получение кодов через СМС нужно сперва подтвердить номер телефона, на который вы будете получать СМС с одноразовыми паролями.
Если вы пользовались нашим старым плагином [1], то лучше перейти с него на новый [9]. Подробная инструкция о переходе доступна здесь [10].
Может случиться что пользователь захочет сменить способ аутентификации. На его странице есть специальная ссылка для этого.
После сброса настроек при следующем логине пользователю будет предложено выбрать способ аутентификации.
Теперь вы знаете как добавить двухфакторную аутентификацию в Redmine. Самое время применить полученные знания на практике.
На вопросы о плагине готовы ответить в комментариях к этой публикации.
Запросы о расширении функционала и баг-репорты принимаются здесь же, а также в тикетах репозитория [11].
Автор: Centos-admin.ru
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sms/199019
Ссылки в тексте:
[1] redmine_sms_auth: https://github.com/centosadmin/redmine_sms_auth
[2] давней статье: https://habrahabr.ru/company/centosadmin/blog/178073/
[3] раз: https://habrahabr.ru/company/centosadmin/blog/272051/
[4] два: https://habrahabr.ru/company/centosadmin/blog/303490/
[5] три: https://habrahabr.ru/company/centosadmin/blog/281044/
[6] веб-хуки: https://tlgrm.ru/docs/bots/api#setwebhook
[7] @BotFather: https://telegram.me/botfather
[8] Инструкция по созданию бота: https://tlgrm.ru/docs/bots#3-how-do-i-create-a-bot
[9] новый: https://github.com/centosadmin/redmine_2fa
[10] здесь: https://github.com/centosadmin/redmine_2fa/blob/master/README.ru.md#%D0%9C%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0-redmine_sms_auth
[11] тикетах репозитория: https://github.com/centosadmin/redmine_2fa/issues
[12] Источник: https://habrahabr.ru/post/312656/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.