company_banner

Двухфакторная sms-авторизация в Redmine

    image
    Как мой коллега и обещал в одной из предыдущих статей, делимся опытом по настройке двухфакторной 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ХХХХХХХХХХ (или в любом другом, главное, чтобы его сторонний сервис отправки принимал).

    Режим аутентификации меняем с «Внутренний» на «СМС» и применяем изменения.

    Теперь при авторизации после ввода логина/пароля будет запрошиваться код в таком виде:
    image

    При необходимости, можно запросить sms повторно.

    Конец!

    Все замечания/рекомендации/дополнения принимаются с удовольствием.

    Спасибо за внимание!
    Southbridge
    Обеспечиваем стабильную работу highload-проектов

    Comments 7

      0
      Классно! Спасибо! Внутри корпоративной сети может показаться паранойей, но у нас есть полуоткрытые ресурсы, доступ к которым мы предоставляем заказчикам (для их контроля за ходом проектов) — вот тут это может быть действительно полезно!
        0
        У нас как раз похожий случай.
        Поддерживаем *nix системы на аутсорсинге. Все общение с клиентами происходит через редмайн.
          0
          Недавно внедрили такое же для своих клиентов: blog.ihc.ru/avtorizaciya-v-dva-ehtapa/
          Скажите, а чем Google Authenticator не угодил? Планируем его тоже подключить параллельно с sms.
            0
            Не всем удобно оказалось.
            Кому-то лень приложение в телефон ставить.
            0
            Нет ли у кого опыта внедрения sms-авторизации в Linux, где-нибудь на уровне PAM? Видится заманчивым усилить ssh доступ к корпоративным серверам (особенно админский) еще и sms-авторизацией. В идеале, чтобы пользователю приходил код авторизации, а руководству уведомление по sms о том, что такой-то пользователь получил доступ к серверам.

          Only users with full accounts can post comments. Log in, please.