Интегрировать Redmine с Active Directory

Posted by

Имею:

Развернутый сервис управления Redmine на .5 Server amd64 по заметке.

Имеющийся в корпоративной среде домен контроллер srv-dc.nemdomb.local развернутый по заметке.

Задача:

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

http://IP&DNS/redmine — user&password — Администрирование — Авторизация с помощью LDAPНовый режим аутентификации

Настройки нового режима аутентификации для Redmine 1.3.2

  • Имя: nembomb
  • Компьютер: 10.7.8.168
  • Порт: 389
  • Учетная запись: aollo@nemdomb.local
  • Пароль: <очень_секретный_пароль>
  • BaseDN: CN=Users,DC=nemdomb,DC=local
  • Создание пользователя на лету: отмечаем галочкой
  • Пользователь: samaccountname
  • Имя: givenname
  • Фамилия: sn
  • Email: mail

И нажимаю «Создать».

Нажимаю “Проверить”результат: Подключение успешно установлено.

Проверяю связь модуля из Redmine с Active Directory

, где учетная запись aollo@nemdomb.local – запись с правами Domain Admins.

Проверим параметры подключения через консоль:

ekzorchik@srv-mon:~$ apt-cache search ldapsearch

ldapscripts — Add and remove user and groups (stored in a LDAP directory)

ldapvi — perform an LDAP search and update results using a text editor

ekzorchik@srv-mon:~$ sudo apt-get install ldapscripts -y

ekzorchik@srv-mon:~$ ldapsearch -x -b "cn=Users,dc=nemdomb,dc=local" -H ldap://10.7.8.168/ -D "aollo@nemdomb.local" -w <очень_секретный_пароль>

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

ekzorchik@srv-mon:~$ ldapsearch -x -b "cn=Users,dc=nemdomb,dc=local" -H ldap://10.7.8.168/

# extended LDIF

#

# LDAPv3

# base <cn=Users,dc=nemdomb,dc=local> with scope subtree

# filter: (objectclass=*)

# requesting: ALL

#

# search result

search: 2

result: 1 Operations error

text: 000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this ope

ration a successful bind must be completed on the connection., data 0, v1db1

# numResponses: 1

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

http://IP&DNS/redmine – user&password – Администрирование – Пользователи – Новый пользователь —

Вкладка: Общее

  • Пользователь: alektest
  • Имя: alektest
  • Фамилия: alektest
  • Email: alektest@nemdom.ru (указываю действующий почтовый адрес на него от www-data@ekzorchik.ru придет письмо)
  • Язык: Russian (Русский)
  • Режим Аутентификации: nemdomb (создали ранее строка выше)
  • Отправлять пользователю информацию по учетной записи: отмечаю галочкой
  • Уведомление по email: О всех событиях во всех моих проектах
  • Не извещать об изменениях, которые я сделал сам: отмечаю галочкой
  • Часовой пояс: (GMT+03:00) Moscow
  • Отображение комментариев: В хронологическом порядке
  • Предупреждать при закрытии страницы с не сохраненным текстом: отмечаю галочкой

Затем переключаюсь на вкладку: Проекты и если уже есть существующие проекты или проекты которым будет относится заводимый пользователь то выбираем проект (Отчеты) и отмечаем роль (у меня есть созданная роль sysadmin для системных администраторов), после нажимаем “Добавить”.

И нажимаю “Сохранить” перейдя на вкладку “Общее” при создании пользователя.

Теперь можно авторизоваться под заведенным пользователем в Redmine:

http://IP&DNS/redmine – Sign In -

  • Login: alektest
  • Password: Aa1234567

и нажимаю Login >> и вот я внутри:

Авторизуюсь в Redmine 1.3.2 через доменную учетную запись alektest

Отлично работает и уже теперь мне администратор Redmine может ставить задачи да и сам я могу если позволяю права назначенной на меня роли sysadmin создавать документы, наполнять wiki. А вот и пример сообщения которое приходит пользователю в случае заведения его учетной записи в Redmine:

Сообщение от Redmine пришедшее доменному пользователю на почтовый ящик

В сообщение есть подсказка, использовать вашу nemdomb (,т.е. доменную учетную запись) для входа открыв в браузере ссылку: http://10.7.8.157/redmina/login

Из письма от Redmine перехожу по ссылке на интерфейс Аутентификации в Redmine

  • Login: alektest
  • Pass: Aa1234567

По непонятным причинам вход в Redmine с использованием доменных учетных записей сразу не отрабатывает – пишет, чтоInvalid user or password» либо не верный ввод логина либо пароля, но вот только этого не может быть, если просто подождать некоторое время и снова обратиться к окну авторизации — авторизация пройдет успешно. На счет этого нужно внимательно еще раз проверить настройки выше по заметки, уже сколько раз по своей невнимательности натыкался на вроде как глюк/баг, а в итоге просто моя невнимательность. Если же все равно Вы наблюдаете сообщение: — «Неправильное имя пользователя или пароль» — все дело в настройках интеграции — они отваливаются если сделать, проверить, то авторизация снова заработает для заведенных пользователей, но это же бред так делать. На просторах интернета вроде как рекомендуют поставить плагин для Redmine (Ldap Sync) и посредством него держать подключение к домен контроллеру, но это костыль. А потому я не хочу снова и снова изобретать велосипед настроек и подкручиваний, буду просто использовать локальную аутентификацию. На этом я прощаюсь, в следующей заметке я рассмотрю, как на установленной самой последней стабильной версии Redmine использовать аутентификацию доменных учетных записей из коробки. А пока все, с уважением автор блога — ekzorchik.