Как мой коллега и обещал в одной из предыдущих статей, делимся опытом по настройке двухфакторной sms-авторизации для использования в Redmine в рамках работы.
Идея о добавлении второго шага авторизации обоснована все тем же усилением безопасности данных при использовании системы тикетов.
Вначале была опробована система OTP на основе Google Authenticator.
Не всем оказалось удобно этим пользоваться, потому решили добавить по просьбам трудящихся другой вариант авторизации — по sms.
Для реализации был разработан плагин для Redmine нашим разработчиком, который тоже успел тут засветиться.
Плагин назван банально redmine_sms_auth, ставится просто и работает стабильно.
Установка и настройка плагина
Останавливаем редмайн.
Вытягиваем плагин с github:
git clone https://github.com/olemskoi/redmine_sms_auth.git /opt/redmine/plugins/redmine_sms_auth
Выполняем миграцию:
bundle exec rake redmine:plugins:migrate RAILS_ENV="production"
Включаем плагин в конфиге Redmine /opt/redmine/config/configuration.yml в секции production:
sms_auth:
command: '/usr/bin/curl --silent --show-error "https://smsc.ru/sys/send.php?charset=utf-8&login=LOGIN&psw=PASSWORD&phones=%{phone}&mes=factory.southbridge.ru code: %{password}"'
password_length: 4
Мы пользуемся сервисом smsc.ru для отправки сообщений не на правах рекламы
По переменным:
command — это способ использования сервиса сообщений, плагин вызывает именно эту комманду для отправки sms. В нашем случае с smsc.ru удобнее использовать curl;
LOGIN и PASSWORD — тут указываются логин/пароль, используемые для авторизации в сервисе sms;
phones=%{phone} — номер телефона, берется из поля в учетных данных пользователя;
mes=factory.southbridge.ru — это чтобы пользователи видели от кого пришел непонятный набор цифр и не пугались;
password_length: 4 — длина пароля.
Запускаем Redmine.
Настройка со стороны редмайна
Со стороны настройки редмайна все выглядит следующим образом.
На странице с учетными данными пользователя заносится номер телефона в поле Мобильный телефон в формате +7ХХХХХХХХХХ (или в любом другом, главное, чтобы его сторонний сервис отправки принимал).
Режим аутентификации меняем с «Внутренний» на «СМС» и применяем изменения.
Теперь при авторизации после ввода логина/пароля будет запрошиваться код в таком виде:
При необходимости, можно запросить sms повторно.
Конец!
Все замечания/рекомендации/дополнения принимаются с удовольствием.
Спасибо за внимание!
Автор: akhaustov