Прозрачная аутентификация в Redmine

в 5:55, , рубрики: plugins, redmine, single sign on, SSO, usability, аутентификация, безопасность, разработка, системное администрирование, управление проектами

Сегодняшний пост будет про удобство использования Redmine в корпоративной среде, а если быть точнее, про прозрачную авторизацию пользователей Redmine в домене Microsoft Active Directory.

Мы используем Redmine как единую информационную среду, в которой работают все сотрудники компании. Вводить один и тот же пароль дважды — это всегда неудобно. Поэтому, мы настроили прозрачную аутентификацию через домен.

Прозрачная аутентификация в Redmine - 1

Прозрачная аутентификация

Во-первых, в самом Redmine есть прекрасная возможность авторизации через LDAP (Active Directory является надстройкой над LDAP). Заполнив небольшое количество полей, можно быстро получить возможность аутентифицировать пользователей в домене, и даже, создавать их налету. Эта функция избавляет администратора от необходимости заводить каждого нового пользователя.

Прозрачная аутентификация в Redmine - 2

Но проблема в том, что у среднестатистического пользователя, впервые пришедшего в компанию, моментально возникает вопрос «Какой пароль вводить?». Этот вопрос, как правило, оттягивает влияние специалистов. Поэтому, мы написали небольшой плагин (надстройку над родным механизмом аутентификации Redmine) – SSO (Single sign-on) .

Основная функция плагина в том, чтобы взять из серверной переменной логин пользователя и в случае совпадения этого логина с базой пользователей Redmine, прозрачно аутентифицировать пользователя или создать его, а затем аутентифицировать, если логин не был найден.

Таким образом, все новые пользователи избавляются от необходимости вводить логин и пароль. Все что им нужно – это открыть ярлык на рабочем столе, и они сразу попадают в корпоративную среду.

Как настраивать на стороне сервера

Что собственно делать, чтобы логин авторизованного пользователя появился в серверной переменной? Мы в качестве web-сервера используем Apache. Основная причина, по которой мы не переходим на Ngnix – это отсутствие стабильного модуля NTLM-аутентификации в домене Windows.

Может кто-то сможет подсказать его?

В Apache все настраивается довольно просто. Нужно скачать и скомпилировать модуль NTLM-аутентификации. О том, как это сделать, я подробно писал в своей первой статье, там же описаны некоторые глюки работы данного модуля: habrahabr.ru/company/monandco/blog/198496/

Как настраивать на стороне клиента

Чтобы прозрачная аутентификация работала корректно, браузер клиента должен передавать на север определенную информацию. По умолчанию, браузеры этого не делают и вылетает окошко с просьбой ввести доменный логин и пароль (но нам этого не нужно).

Firefox
Нужно в строке URL набрать «about:config»
Найти параметр «network.automatic-ntlm-auth.trusted-uris» и добавить в него ваш домен.

Прозрачная аутентификация в Redmine - 3

Chrome и IE
Нужно добавить домен в доверенную зону.

Прозрачная аутентификация в Redmine - 4

И поменять настройки для доверенной зоны.

Прозрачная аутентификация в Redmine - 5

Chrome для Windows подхватывает настройки из Internet Explorer.
Конечно, все это лучше делать используя групповые политики.

Плагин SSO реализует ряд других полезных функций.

2-х факторная аутентификация

Плагин реализует 2-х факторную аутентификацию в Redmine с отправкой кода через SMS. Правда нужен собственный SMS-шлюз, который будет отправлять SMS-сообщения.

Можно настраивать различные параметры для 2-х факторной аутентификации. Например, можно отключить аутентификацию на определенных доменах или IP-адресах. Это удобно, когда хочется получить дополнительную проверку только для пользователей, работающих снаружи.

Можно отключить 2-х факторную аутентификацию для пользователей из определенных групп безопасности Redmine, например, для админов.

Screen saver внутри окна браузера

Это такое своеобразное костыльное решение для тех, у кого нет нормальной блокировки пользователя по бездействию в операционной системе. Можно выставить интервал, после которого, в случаи бездействия пользователя в окне браузера, вместо интерфейса Redmine появляется заставка из матрицы.

Прозрачная аутентификация в Redmine - 6

Дополнительно можно включить автоматический выход из системы по таймауту.

Надеюсь, моя статья и наш плагин будут полезны вам. Если у вас есть какие-то вопросы по использованию Redmine, то пишите в комментариях. Постараюсь ответить.

Автор: tdvsdv

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js