Сьогоднішній пост буде про зручність використання Redmine в корпоративному середовищі, а якщо бути точніше, про прозору авторизацію користувачів Redmine в домені Microsoft Active Directory.
Ми використовуємо Redmine як єдине інформаційне середовище, в якому працюють всі співробітники компанії. Вводити один і той же пароль двічі - це завжди незручно. Тому, ми налаштували прозору автентифікацію через домен.
Прозора автентифікація
По-перше, в самому Redmine є чудова можливість авторизації через LDAP (Active Directory є надбудовою над LDAP). Заповнивши невелику кількість полів, можна швидко отримати можливість автентифікувати користувачів в домені, і навіть, створювати їх нальоту. Ця функція позбавляє адміністратора від необхідності заводити кожного нового користувача.
Але проблема в тому, що у середньостатистичного користувача, який вперше прийшов у компанію, моментально виникає питання «Який пароль вводити?». Це питання, як правило, відтягує вплив фахівців. Тому, ми написали невеликий плагін (надбудову над рідним механізмом аутентифікації Redmine) - SSO (Single sign-on).
Основна функція плагіну в тому, щоб взяти з серверної змінної логін користувача і в разі збігу цього логіна з базою користувачів Redmine, прозоро автентифікувати користувача або створити його, а потім автентифікувати, якщо логін не було знайдено.
Таким чином, всі нові користувачі позбавляються від необхідності вводити логін і пароль. Все що їм потрібно - це відкрити ярлик на робочому столі, і вони відразу потрапляють в корпоративне середовище.
Як налаштовувати на боці сервера
Що власне робити, щоб логін авторизованого користувача з'явився в серверній змінній? Ми використовуємо Apache як веб-сервер. Основна причина, по якій ми не переходимо на Ngnix - це відсутність стабільного модуля NTLM-аутентифікації в домені Windows.
Може хтось зможе підказати його?
В Apache все налаштовується досить просто. Потрібно завантажити і скомпілювати модуль NTLM-автентифікації. Про те, як це зробити, я докладно писав у своїй першій статті, там же описані деякі глюки роботи даного модуля: habrahabr.ru/company/monandco/blog/198496
Як налаштовувати на боці клієнта
Щоб прозора автентифікація працювала коректно, браузер клієнта повинен передавати на північ певну інформацію. Типово, браузери цього не роблять і вилітає віконце з проханням ввести доменний логін і пароль (але нам цього не потрібно).
Firefox
Потрібно в рядку URL набрати "about:config»
Знайти параметр «network.automatic-ntlm-auth.trusted-uris» і додати в нього ваш домен.
Chrome и IE
Потрібно додати домен у довірену зону.
І поміняти налаштування для довіреної зони.
Chrome для Windows підхоплює налаштування з Internet Explorer.
Звичайно, все це краще робити використовуючи групові політики.
Плагін SSO реалізує ряд інших корисних функцій.
2-х факторна автентифікація
Плагін реалізує 2-х факторну автентифікацію в Redmine з відправкою коду через SMS. Правда потрібен власний SMS-шлюз, який буде відправляти SMS-повідомлення.
Можна налаштовувати різні параметри для 2-х факторної автентифікації. Наприклад, можна вимкнути автентифікацію на певних доменах або IP-адресах. Це зручно, коли хочеться отримати додаткову перевірку тільки для користувачів, які працюють зовні.
Можна відключити 2-х факторну автентифікацію для користувачів з певних груп безпеки Redmine, наприклад, для адмінів.
Screen saver всередині вікна переглядача
Це таке своєрідне миличливе рішення для тих, у кого немає нормального блокування користувача по бездіяльності в операційній системі. Можна виставити інтервал, після якого, у випадку бездіяльності користувача у вікні браузера, замість інтерфейсу Redmine з'являється заставка з матриці.
Додатково можна увімкнути автоматичний вихід з системи за таймаутом.
Сподіваюся, моя стаття і наш плагін будуть корисні вам. Якщо у вас є якісь питання щодо використання Redmine, то пишіть в коментарях. Постараюся відповісти.
