Сервер работает под управлением 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]
если ваш каталог большой (университетский, может быть), запросы могут быть медленными из коробки. Вам нужно их настроить. Нет серебряной пули, но есть несколько указателей:
В этом документе Microsoft указано больше.
Вы можете попробовать отладку mod_ldap , может быть, вы найдете очевидные проблема, будьте осторожны, учетные данные могут появиться в журнале отладки.
У меня была точно такая же проблема в 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.