mod_authz_basic y CloudFront (era: directorio básico mod_authz frente a ubicación con vhosts)

mod_authz_basic y CloudFront (era: directorio básico mod_authz frente a ubicación con vhosts)

Tengo problemas con el uso de la autenticación básica de Apache. Tengo un único servidor EC2 detrás de un equilibrador de carga elástico de AWS y CloudFront. Ejecuto varios dominios en la máquina. Utilizo la autenticación básica de Apache para acceder a ciertas áreas, pero todas usan los mismos archivos htpassd y htgroups. Funciona bien para un dominio, restringiendo el acceso a un subdominio completo, pero para otro dominio, no funciona para restringir el acceso a una ubicación (o funciona demasiado bien, no puedo obtener acceso).

Entorno: Apache 2.4.43 OpenSSL 1.0.2k-fips SVN 1.14.0 PHP 7.4.5

El modo de falla es para un Apache locationdefinido en conf.d/subversion.conf:

   <Location /repos>
   DAV svn
   SVNParentPath /var/svn/
   SVNListParentPath On
   LogLevel debug
  Options All
  AllowOverride All Options

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /mnt/data/etc/htpasswd
  AuthGroupFile /mnt/data/etc/htgroups
  Require group subversion

Y el archivo de error muestra

[Mon Aug 17 00:04:47.658169 2020] [authz_core:debug] [pid 30612] mod_authz_core.c(818): [client 10.0.200.51:11378] AH01626: authorization result of Require group subversion: denied (no authenticated user yet)
[Mon Aug 17 00:04:47.658511 2020] [authz_core:debug] [pid 30612] mod_authz_core.c(818): [client 10.0.200.51:11378] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
[Mon Aug 17 00:04:54.816887 2020] [authz_core:debug] [pid 30548] mod_authz_core.c(818): [client 10.0.200.51:11382] AH01626: authorization result of Require group subversion: denied (no authenticated user yet)
[Mon Aug 17 00:04:54.817233 2020] [authz_core:debug] [pid 30548] mod_authz_core.c(818): [client 10.0.200.51:11382] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)

En el archivo conf.d/vhost.conf para www.myhost.com, donde intento llegar www.myhost.com/reposusando la configuración anterior para SVN, también tengo

    <Directory />
            Options All
            #Allow from All
            #Order Allow,Deny
            Require all granted
            AllowOverride All Options
            ...

Pasé mucho tiempo investigando varias ratas antes de recordar (y confirmar) que estoy usando el mismo mecanismo de autenticación para un escenario diferente en el mismo host EC2 y la misma instancia de Apache. Esto funciona bien en vhost.conf:

    ServerName dev.anotherdomain.com
    <Directory />
            Options All
            #Allow from All
            #Order Allow,Deny
            AllowOverride All Options

            # AuthType Digest
            AuthType Basic
            AuthName "DevAndTest"
            AuthUserFile /mnt/data/etc/htpasswd
            AuthGroupFile /mnt/data/etc/htgroups
            Require group adifferentgroup

Esto parece funcionar bien, lo cual me tiene un poco desconcertado :(

Respuesta1

Resultó que el problema era que necesitaba incluir Authorizationencabezados en la lista blanca en la distribución de Cloudfront. El caso del subdominio en la pregunta original funcionó porque no estaba detrás de Cloudfront.

información relacionada