Как я могу настроить аутентификацию Redmine => Active Directory?

9

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

Наш сервер AD находится на хосте: порт, ims.example.com:389и у меня есть пользователь IMS/me.

Прямо сейчас у меня также есть пользователь meв Redmine, использующий локальную аутентификацию.

Я создал метод аутентификации ActiveDirectory LDAP в RedMine со следующими параметрами:

Host: ims.example.com
Port: 389
Base DN: cn=Users,dc=ims,dc=example,dc=com

On-The-Fly User Creation: YES
Login: sAMAccountName
Firstname: givenName
Lastname: sN
Email: mail

Тестирование этого соединения работает просто отлично.

Я, однако, не успешно заверен с этим.

Я создал пользователя-администратора для резервного копирования, чтобы я мог вернуться в meучетную запись, если что-то сломаю, а затем я попытался изменить meучетные данные ActiveDirectory. Однако, как только я это сделаю, для входа в систему ничего не получится. Я перепробовал все эти варианты имени для входа:

  • me
  • IMS/me
  • IMS\me

Я использовал свой известный пароль домена, но не радости.

Итак, какие настройки у меня неправильные, или какую информацию мне нужно получить, чтобы сделать эту работу?

Крис Р
источник

Ответы:

13

Итак, вот конкретные настройки, которые мне понадобились для того, чтобы эта работа работала:

Host: ims.example.com
Port: 389
User: MYDOMAIN\accountName
Password: *******
Base DN: dc=mydomain,dc=example,dc=com

On-The-Fly User Creation: YES
Login: sAMAccountName
Firstname: givenName
Lastname: sN
Email: mail

Трюк убирался cn=Usersиз Базового DN, после чего все это как бы сошлось.

Другой примечательной вещью было включение пользователя для чтения каталога.

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

Крис Р
источник
Ааа ... Я даже не думал спросить вас, были ли ваши учетные записи в контейнере по умолчанию "CN = Users, ..." или нет.
Эван Андерсон
Было бы более полезно узнать, как я мог это определить. Я только пришел к этой настройке методом проб и ошибок.
Крис Р
Для меня это тоже было методом проб и ошибок, так как я вручную свернул свой собственный плагин AD-аутентификации для Devise, который даже не требует конкретной учетной записи AD Read; он связывается и аутентифицируется в AD, используя имя пользователя и пароль, входящие в систему. Это было очень полезно, Крис, спасибо.
Бен Кригер
Одно уточнение (это заняло у меня целый день): учетная запись должна быть отформатирована как отличительное имя, а не как имя для входа.
coz
Для меня исправление, как добавление домена к учетной записи пользователя запроса, например, часть MYDOMAIN.
Энди Арисменди,
6

Уловка, чтобы найти Базовое DN для аутентификации LDAP ActiveDirectory, состоит в том, чтобы проверить, какое доменное имя пользователя является полным. Вы можете проверить это с помощью:

whoami /FQDN

если вы вошли как тот пользователь, который возвращает что-то вроде

CN=John Doe,OU=users,OU=department,DC=corp,DC=domain,DC=com

и базовый DN можно найти, удалив первый CN.

OU=users,OU=department,DC=corp,DC=domain,DC=com
Ремко Шоеман
источник
Спасибо за это. Я не знал об этой команде, очень помог.
jasonmmiraglia
4

Я не знаком с Redmine, но похоже, что вы пытаетесь выполнить анонимную привязку к Active Directory для проверки учетных данных. Это не сработает. Настроив несколько продуктов для интеграции LDAP с AD, я часто сталкиваюсь с этой проблемой.

Из коробки AD требует, чтобы клиенты аутентифицировались при привязке к каталогу для выполнения запросов.

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

Эван Андерсон
источник
В какой форме я должен указать имя пользователя? Они действительно не объясняют это в публикации в вики (которая в любом случае была моей отправной точкой для этого процесса)
Крис Р
В частности, я пытался, IMS\meи это не сработало. Я не могу получить какие-либо подробности о том, почему это не удается .
Крис Р
Я бы указал имя пользователя bind в синтаксисе DOMAIN \ samAccountName. Чтобы выяснить причину сбоя, я бы порекомендовал вытащить сниффер (tcpdump, wireshark, встроенный Microsoft «Сетевой монитор» и т. Д.) И решить эту проблему. Нет более быстрого способа выяснить, что говорится на проводе, чем посмотреть на то, что говорится на проводе. (Звучит глупо, но многие люди даже не думают смотреть туда ...) Затем, по крайней мере, вы можете видеть, передаются ли заданные вами параметры так, как вы ожидаете.
Эван Андерсон
Wireshark оказывается здесь находкой. Спасибо за этот совет. Я нашел некоторые проблемы для этого, и я скоро сообщу и опубликую детали.
Крис Р
Видя, что коробки говорят друг другу, моментально становится понятным множество проблем. Рад слышать, что у вас это работает!
Эван Андерсон
3

Используйте браузер ldap и визуально проверьте структуру ... luma на Ubuntu работает хорошо, ldapper для Mac также.


источник
На самом деле он не работал с моим сервером LDAP, но я вижу, как это будет полезно.
Крис Р