.png)
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 location
in 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.com
erreichen 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 Authorization
Header in der Cloudfront-Verteilung auf die Whitelist setzen musste. Der Subdomain-Fall in der ursprünglichen Frage funktionierte, weil er nicht hinter Cloudfront lag.