Я использую OpenLDAP (в контейнере докеров) в основном для двух целей:
1.) Наличие локального дерева, в котором фактически хранятся мои технические пользователи. 2.) Прокси-запросы к моему корпоративному активному каталогу только для получения информации (я не хочу что-то изменять).
Все идет нормально. Я нашел несколько руководств в Интернете, в которых описано, как выполнять запросы прокси из openldap в активный каталог, и, наконец, я использовал эту конфигурацию (для своего OpenLDAP) для настройки прокси:
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {2}back_ldap
dn: olcDatabase={2}ldap,cn=config
changetype: add
objectClass: olcDatabaseConfig
objectClass: olcLDAPConfig
olcDatabase: {2}ldap
olcDbURI: ldap://my_corporate_ad:389
olcSuffix: dc=my,dc=corporate,dc=ad,dc=com
olcDbRebindAsUser: TRUE
olcDbChaseReferrals: TRUE
После настройки я могу подключиться к локальному дереву, и оно работает, как ожидалось. Но когда я пытаюсь подключиться к OpenLDAP с учетными данными прокси / base dn, я могу войти в систему, но не вижу никакого дерева / записей. Ldapsearch просто дает мне нулевые результаты, если я запрашиваю objectclass = *.
Когда я смотрю журналы из openldap, он показывает мне следующий результат:
56ebba59 conn=1007 fd=23 ACCEPT from IP=100.30.407.19:15313 (IP=172.17.0.3:389)
56ebba59 conn=1007 op=0 BIND dn="cn=dockers2eu,cn=Users,dc=my,dc=corporate,dc=ad,dc=com" method=128
56ebba59 conn=1007 op=0 BIND dn="cn=dockers2eu,cn=Users,dc=my,dc=corporate,dc=ad,dc=com" mech=SIMPLE ssf=0
56ebba59 conn=1007 op=0 RESULT tag=97 err=0 text=
56ebba59 conn=1007 op=1 SRCH base="dc=my,dc=corporate,dc=ad,dc=com" scope=1 deref=0 filter="(objectClass=*)"
56ebba59 conn=1007 op=1 SRCH attr=objectclass
Unable to chase referral "ldap://bkabkzasdh" (-1: Can't contact LDAP server)
Unable to chase referral "ldap://asdfjkasdja" (-1: Can't contact LDAP server)
Unable to chase referral "ldap://my.corporate.ad.com/CN=Configuration,DC=my,DC=corporate,DC=ad,DC=com??base" (-1: Can't contact LDAP server)
56ebba8f conn=1007 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
56ebbacb conn=1007 op=2 SRCH base="dc=my,dc=corporate,dc=ad,dc=com" scope=0 deref=0 filter="(objectClass=*)"
56ebbacb conn=1007 op=2 SEARCH RESULT tag=101 err=0 nentries=0 text=
Я вижу, что он не может преследовать рефералов. Это должно быть нормально, потому что я просто хочу получить информацию, хранящуюся локально в AD.
Прежде всего, убедитесь, что ваш ldapsearch правильный. Это определит, связана ли проблема с запросом или вашей конфигурацией LDAP.
Измените хост ldap в вашей команде ldapsearch на -H ldap: // my_corporate_ad: 389 для прямого запроса AD. Если это дает результаты, значит ваш поиск действителен. Если нет, заставьте это работать перед повторной попыткой против OpenLDAP.
В вашем LDAPConfig вы можете добавить соответствующие строки olcAccess, хотя я не уверен, что это действительно вызывает вашу проблему.