Проблема конфигурации OpenLdap

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

Веб-приложение (я):

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

Веб-приложение (я):

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

Веб-приложение (я):

Redmine, Phpldapadmin

LDAP:

Openldap

После установки я предпринял следующие шаги, чтобы переконфигурировать свой ldap, чтобы лучше отразить ldap, используемый в производстве (поскольку весь этот redmine + ldap еще не в производстве )

  1. Остановлен сервис slapd и удален cn = config.ldif из /etc/ldap/slapd.d
  2. Modified /usr/share/slapd/slapd.conf на это:

     include /etc/ldap/schema/core.schema
    включить /etc/ldap/schema/cosine.schema
    включить /etc/ldap/schema/nis.schema
    включить /etc/ldap/schema/inetorgperson.schema
    
    pidfile /var/run/slapd/slapd.pid
    argsfile /var/run/slapd/slapd.args
    loglevel none
    
    путь к модулю / usr / lib / ldap
    moduleload back_mdb
    
    размерность 500
    инструмент-резьба 1
    
    бэкэнд mdb
    база данных mdb
    суффикс "o = testcompany.com"
    rootdn "cn = admin, o = testcompany.com"
    каталог "/ var / lib / tc-ldap"
    rootpw "пароль"
    
    индекс objectClass eq
    индекс uid eq
    index ou eq
    индекс по умолчанию eq, sub
    
    lastmod на
    КПП 512 30
    
    доступ к attrs = userPassword, shadowLastChange
     by dn = "cn = admin, o = testcompany.com" написать
     от анонимной авторизации
     самостоятельно написать
     автор: * none
    
    доступ к dn.base = "" по * чтению
    
    доступ к *
     by dn = "cn = admin, o = testcompany.com" написать
     автор: * читать
    
  3. После этого slaptest -f /usr/share/slapd/slapd.conf -F /etc/ldap/slapd.d сгенерировал мой новый cn = config.ldif

  4. Set соответствующий пользователь / группа для нового cn = config.ldif с chown -R openldap: openldap /etc/ldap/slapd.d/

  5. Запустил службу slapd и проверил, есть ли ldap работает или нет. Так как это было, и я мог получить к нему доступ с помощью phpldapadmin, я добавил организационную единицу (ou = sales) , все коды стран и импортировал 3000 пользователей (с помощью ldapadd ). Теперь мой DIT выглядит следующим образом

     - o = testcompany.com
     - ou = продажи
     - AD
     + uid = 123456, c = AD, ou = sales, o = testcompany.com
     + ...
    

    и это здорово, это именно то, как должно выглядеть, однако я заметил, что запись cn = admin, o = testcompany.com не существует, хотя она использовала конфигурация по умолчанию после того, как я установил openldap.

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

  7. Однако (вот где моя проблема), когда я пытаюсь войти в Redmine с пользователем, которого я только что создал (с аутентификацией ldap), я всегда получаю ошибку Invalid credentials (хотя это работает как очарование, когда я вхожу в систему с любой другой учетной записью, создано с помощью Simple Authentication )

Эти события привели меня к мысли, что ошибка находится в конфигурации LDAP. После еще нескольких часов / дней возни с ACL s и dpkg-reconfigure slapd (и даже очисткой-переустановкой slapd и ldap-utils) я все еще не могу выйти за рамки этого точка. И еще одна небольшая информация, после dpkg-reconfigure slapd и создания нескольких пользователей по умолчанию dc = example, dc = com , я могу заставить их войти в Redmine. (и даже появляется cn = admin, o = testcompany.com ...)

Ниже я прикреплю несколько вещей, которые я пробовал. Я надеюсь, что кто-нибудь может помочь мне несколькими советами о том, где я сошел с тропы (почему-то я чувствую, что упускаю очевидное).

Что я пробовал до сих пор:

    1. modify the default slapd.conf file, and repeat the process i've written above
    2. create a completely new one 
    3. a lot of different ways to add/modify the ACL
    4. read through a lot of mailing list, similar problems on redmine forums, and openldap mailing lists, still no success (i can paste a lot of links from my .txt if you need it)
0
задан 4 August 2017 в 20:42
3 ответа

Наконец выяснил, в чем проблема.

Прежде всего, я забыл включить индексы: objectClass и mail в свой slapd.conf , и это было одной из причин.

Во-вторых, по некоторым причинам, даже если я перенастроил свой ldap (а также переиндексировал его), мои изменения не отобразились.

Оказывается, после шага 5. (после запуска службы) также необходимо перезагрузить вашу службу slapd sudo service slapd reload или ( sudo service slapd force-reload , если необходимо), чтобы slapd, чтобы не отставать от изменений.

Это решило мою проблему. теперь каждый может пройти аутентификацию с помощью ldap auth :)

0
ответ дан 24 November 2019 в 04:09

Я хотел бы указать вам на хорошую статью на сайте Ubuntu - ldapguide

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

0
ответ дан 24 November 2019 в 04:09

Пожалуйста, попробуйте изменить корень dn на dc=testcompany,dc=com удалить точку '...'
Точка "..." - это разделитель для другой части ldap DN. спецификация https://tools.ietf.org/html/rfc1779#section-2.2
также попробуйте указать ldapv3 в файле slapd.conf. который распознает o= как ou=
https://tools.ietf.org/pdf/rfc3494.pdf

0
ответ дан 24 November 2019 в 04:09

Теги

Похожие вопросы