Búsqueda LDAP de Apache 2.4 lenta

Búsqueda LDAP de Apache 2.4 lenta

El servidor ejecuta RHEL 7 y Apache 2.4.6; Este es un problema bastante nuevo (de aproximadamente una semana). La intranet de mi departamento utiliza autenticación en el entorno Active Directory de la universidad y la autenticación para los usuarios finales tarda más de 30 segundos. Las cargas de páginas posteriores son casi instantáneas y, después de un tiempo (tiempo de espera, supongo), el problema vuelve.

<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>

Aquí hay algunas líneas relevantes de 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]

Respuesta1

Tuve exactamente el mismo problema en Fedora 33 con Apache 2.4 y lo resolví agregando:

LDAPConnectionTimeout 1

a la configuración global de Apache: https://httpd.apache.org/docs/2.4/mod/mod_ldap.html

El parámetro anterior establece el tiempo de espera de la conexión LDAP en 1 segundo.
Estoy usando LDAPS con TLS y sospecho que el retraso se debió a que Apache intentó resolver nombres o verificar el certificado no calificado (autoinscrito) de Active Directory/DC.

Respuesta2

Si su directorio es grande (universitario, podría serlo), las consultas podrían ser lentas desde el principio. Necesitas modificarlos. No hay una solución milagrosa, pero sí algunos consejos:

  • filtrar por atributos indexados
  • Intente utilizar el puerto del catálogo global si los atributos aparecen como catálogo global replicado.
  • Evite (si es posible) búsquedas de subámbito. Evidentemente, esto no siempre es posible, pero a menudo sí lo es.

Hay más listados en estedocumento de microsoft.

Puedes probardepurando mod_ldap, tal vez pueda encontrar algún problema obvio de esa manera; tenga cuidado, las credenciales podrían aparecer en el registro de depuración.

información relacionada