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

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

Сьогоднішній пост буде про зручність використання 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, то пишіть в коментарях. Постараюся відповісти.

Image