mod_authz_basic e CloudFront (era: mod_authz basic Directory vs. Location com vhosts)

mod_authz_basic e CloudFront (era: mod_authz basic Directory vs. Location com vhosts)

Estou tendo problemas ao usar a autenticação básica do Apache. Eu tenho um único servidor EC2 atrás de um balanceador de carga elástico da AWS e do CloudFront. Eu executo vários domínios na máquina. Eu uso a autenticação básica do Apache para acessar determinadas áreas, mas todos usam os mesmos arquivos htpassd e htgroups. Está funcionando bem para um domínio, restringindo o acesso a um subdomínio completo, mas para outro domínio, não está funcionando para restringir o acesso a um local (ou está funcionando muito bem - não consigo acessar).

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

O modo de falha é para um Apache locationdefinido em 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

E o arquivo de erro mostra

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

No arquivo conf.d/vhost.conf para www.myhost.com, onde estou tentando acessar www.myhost.com/reposusando a configuração acima para SVN, também tenho

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

Passei muito tempo percorrendo vários buracos antes de me lembrar (e confirmar) que estou usando o mesmo mecanismo de autenticação para um cenário diferente no mesmo host EC2 e instância do Apache. Isso funciona bem no 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

Isso parece funcionar bem, o que me deixou um pouco confuso :(

Responder1

Acontece que o problema era que eu precisava colocar Authorizationcabeçalhos na lista de permissões na distribuição do Cloudfront. O caso do subdomínio na pergunta original funcionou porque não estava atrás do Cloudfront.

informação relacionada