Медленный поиск LDAP в Apache 2.4

Медленный поиск LDAP в Apache 2.4

На сервере установлены RHEL 7 и Apache 2.4.6; это довольно новая (примерно недельной давности) проблема. Интранет моего факультета использует аутентификацию в университетской среде Active Directory, а аутентификация для конечных пользователей занимает более 30 секунд. Последующие загрузки страниц происходят практически мгновенно, и через некоторое время (тайм-аут, я полагаю) проблема возвращается.

<Directory /var/www/html/intranet>
  AuthType Basic
  AuthName "Restricted files"
  AuthBasicProvider ldap
  AuthLDAPBindDN CN=dept-binder,OU=Generic-Logon,OU=Generic,DC=example,DC=edu
  AuthLDAPBindPassword lamepassword
  AuthLDAPURL ldaps://ldap-ad.example.edu:636/dc=example,dc=edu?sAMAccountName?sub

  <RequireAny>
    require ldap-group CN=ug-dept-intranet,OU=Deoartment,OU=Dept-Groups,DC=example,DC=edu
  </RequireAny>
</Directory>

Вот несколько важных строк из error_log:

AH02034: Initial (No.1) HTTPS request received for child 36 (server dept.example.edu:443)
AH01626: authorization result of Require ldap-group CN=ug-psy-employees,OU=Dynamic,OU=Psychology,OU=FSU-Dept-Groups,DC=fsu,DC=edu: denied (no authenticated user yet)
AH01626: authorization result of Require ldap-group CN=ug-dept-intranet,OU=Dept,OU=Dept-Groups,DC=example,DC=edu: denied (no authenticated user yet)
AH01691: auth_ldap authenticate: using URL ldaps://ldap-ad.example.edu:636/dc=example,dc=edu?sAMAccountName?sub
AH02001: Connection closed to child 11 with standard shutdown (server dept.example.edu:443)

# 37 seconds pass

AH01697: auth_ldap authenticate: accepting jsmith
AH01713: auth_ldap authorize: require group: testing for group membership in "CN=ug-dept-intranet,OU=Department,OU=Dept-Groups,DC=example,DC=edu"
AH01714: auth_ldap authorize: require group: testing for member: CN=jsmith,OU=PEOPLE,DC=example,DC=edu (CN=ug-dept-intranet,OU=Department,OU=Dept-Groups,DC=example,DC=edu)
AH01715: auth_ldap authorize: require group: authorization successful (attribute member) [Comparison true (adding to cache)][6 - Compare True]

решение1

У меня была точно такая же проблема на Fedora 33 с Apache 2.4, и я решил ее, добавив:

LDAPConnectionTimeout 1

в глобальную конфигурацию Apache: https://httpd.apache.org/docs/2.4/mod/mod_ldap.html

Вышеуказанный параметр устанавливает тайм-аут соединения LDAP на 1 секунду.
Я использую LDAPS с TLS и подозреваю, что задержка была вызвана попыткой Apache разрешить имена или проверить неквалифицированный (самозарегистрированный) сертификат Active Directory/DC.

решение2

Если ваш каталог большой (университет, так что это может быть), запросы могут быть медленными из коробки. Вам нужно настроить их. Серебряной пули нет, но некоторые указания:

  • фильтр по индексированным атрибутам
  • попробуйте использовать порт глобального каталога, если атрибуты указаны как реплицированные в глобальном каталоге
  • избегать (если это вообще возможно) суб-объемных поисков. Это, очевидно, не всегда возможно, но часто это

В этом списке есть ещеДокумент Майкрософт.

Можешь попробоватьотладка mod_ldap, возможно, таким образом вы сможете обнаружить какую-то очевидную проблему, будьте осторожны, учетные данные могут появиться в журнале отладки.

Связанный контент