mod_authz_basic und CloudFront (war: mod_authz basic Verzeichnis vs. Standort mit vhosts)

mod_authz_basic und CloudFront (war: mod_authz basic Verzeichnis vs. Standort mit vhosts)

Ich habe ein Problem mit der Verwendung der Apache-Basisauthentifizierung. Ich habe einen einzelnen EC2-Server hinter einem AWS Elastic Load Balancer und CloudFront. Ich betreibe mehrere Domänen auf dem Rechner. Ich verwende die Apache-Basisauthentifizierung für den Zugriff auf bestimmte Bereiche, aber alle verwenden dieselben htpassd- und htgroups-Dateien. Bei einer Domäne funktioniert es einwandfrei und beschränkt den Zugriff auf eine vollständige Subdomäne, bei einer anderen Domäne funktioniert es jedoch nicht, wenn der Zugriff auf einen Standort beschränkt werden soll (oder es funktioniert zu gut – ich kann nicht darauf zugreifen).

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

Der Fehlermodus ist für einen Apache locationin conf.d/subversion.conf definiert:

   <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

Und die Fehlerdatei zeigt

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

In der Datei conf.d/vhost.conf für , die ich mit der obigen Konfiguration für SVN www.myhost.comerreichen möchte , habe ich auchwww.myhost.com/repos

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

Ich habe lange damit verbracht, verschiedene Fehlerquellen zu untersuchen, bevor mir einfiel (und ich bestätigte), dass ich denselben Authentifizierungsmechanismus für ein anderes Szenario auf demselben EC2-Host und derselben Apache-Instanz verwende. Dies funktioniert in vhost.conf einwandfrei:

    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

Das scheint gut zu funktionieren, was mich ein wenig verblüfft :(

Antwort1

Es stellte sich heraus, dass das Problem darin bestand, dass ich AuthorizationHeader in der Cloudfront-Verteilung auf die Whitelist setzen musste. Der Subdomain-Fall in der ursprünglichen Frage funktionierte, weil er nicht hinter Cloudfront lag.

verwandte Informationen