eigene 401/403 auf zugriffsgesichertem Server... unmöglich?
Selfdog
- webserver
Hallo erstmal,
das liegt zugrunde:
<VirtualHost *>
ServerName intranet.domain.tld
ServerAlias intranet.domain.tld *.intranet.domain.tld
DocumentRoot /blabla/
<Directory />
AuthType Basic
AuthName "Intranetserver"
AuthUserFile /blabla/Apache/pwds.txt
Require user Besucher
</Directory>
</VirtualHost>
So. Also ein "gesamter" Host, der nur über HTTP-Passwortauthentifi-
zierung (schwieriges wort ;-) zu erreichen ist (/blabla/Apache/ ist
zugriffsgesichert, für alle, bei denen jetzt bedenken aufkommen ;-).
Nun kam mir die glorreiche Idee, eine schöne eigene Fehlermeldung
bei einem 401 (Access denied) und/oder 403 (Forbidden) auszugeben:
<VirtualHost *>
ServerName intranet.domain.tld
ServerAlias intranet.domain.tld *.intranet.domain.tld
DocumentRoot /blabla/
<Directory />
AuthType Basic
AuthName "Intranetserver"
AuthUserFile /blabla/Apache/pwds.txt
Require user Besucher
ErrorDocument 401 http://www.domain.tld/unauthorized
ErrorDocument 403 http://www.domain.tld/unauthorized
</Directory>
</VirtualHost>
So. Das geht aber nicht, darauf weist mich das (apache2)Manual hin,
sowie Fehlermeldungen in dem Error-Log. Bei 401 darf es nämlich
nicht "raus" gehen ;-)
So, wichtig ist auf jeden fall, dass www.domain.tld/
ein "anderer" host ist, dessen Root in /blabla/haupt/ liegt.
Mein Versuch, da was zu machen:
<VirtualHost *>
ServerName intranet.domain.tld
ServerAlias intranet.domain.tld *.intranet.domain.tld
DocumentRoot /blabla/
Alias /mainserver/ /blabla/haupt
<Directory />
AuthType Basic
AuthName "Intranetserver"
AuthUserFile /blabla/Apache/pwds.txt
Require user Besucher
ErrorDocument 401 /mainserver/unauthorized
ErrorDocument 403 /mainserver/unauthorized
</Directory>
</VirtualHost>
Nach ein bisschen Nachdenken nach den Zig versuchen bin ich auf die
glorreiche Idee gekommen: Ach der Alias /mainserver/ ist ja auch
Zugriffsgeschützt! Das heißt dann, ein 401/403 führt gerade von der
zugriffsgesicherten Seite zu einer nächsten ;-)
Mein Versuch, da was zu machen:
<Directory /mainserver/>
Order Allow,Deny
Allow from All
</Directory>
Es funktioniert trotzdem nicht. Jetzt bin ich ratlos: Was soll ich
machen? Wie kann ich eine Fehlermeldung bei einem 401/403 ausgeben,
wenn doch der gesamte Server zugriffsgesichert ist und selbst ein
"Allow from All" da nichts dagegen tun kann?
Weiß jemand Rat?
Vielen Dank,
WauWau
Moin!
Es funktioniert trotzdem nicht. Jetzt bin ich ratlos: Was soll ich
machen? Wie kann ich eine Fehlermeldung bei einem 401/403 ausgeben,
wenn doch der gesamte Server zugriffsgesichert ist und selbst ein
"Allow from All" da nichts dagegen tun kann?
Allow ist für die Zugriffssicherung auf IP-Basis (schau einfach mal, was man statt "from all" da noch so reinschreiben kann - oder ins "deny from ..."). Geht ein Licht auf?
Du mußt die _Passwortauthentifizierung_ für das Verzeichnis abschalten.
- Sven Rautenberg
Hallo Sven,
Allow ist für die Zugriffssicherung auf IP-Basis (schau einfach mal, was man statt "from all" da noch so reinschreiben kann - oder ins "deny from ..."). Geht ein Licht auf?
Ja, ich weiß, aber ich sehe keine andere Möglichkeit... siehe da:
Du mußt die _Passwortauthentifizierung_ für das Verzeichnis abschalten.
Genau. ___Wie____ Mache ich das? Ich habe schon das gesamte Manual auf den Kopf gestellt und finde nix. Tja, da ist ja das Problem!
WauWau
Hola,
erst einmal ein recht herzliches Dankeschön an molily, sie hat mir
nämlich im SelfChat dabei geholfen :)
Hier nochmal das Problem:
<VirtualHost *>
ServerName intranet.domain.tld
ServerAlias intranet.domain.tld *.intranet.domain.tld
DocumentRoot /blabla/
Alias /mainserver/ /blabla/haupt
»»
<Directory /mainserver/>
Order Allow,Deny
Allow from All
</Directory><Directory />
AuthType Basic
AuthName "Intranetserver"
AuthUserFile /blabla/Apache/pwds.txt
Require user BesucherErrorDocument 401 /mainserver/unauthorized
ErrorDocument 403 /mainserver/unauthorized
</Directory>
</VirtualHost>
und hier die schöne Lösung:
<VirtualHost *>
ServerName intranet.domain.tld
ServerAlias intranet.domain.tld *.intranet.domain.tld
DocumentRoot E:/blabla
Alias /mainserver/ "E:/blabla/haupt"
Alias /src/ "E:/blabla/haupt/src"
<Directory "E:/blabla/haupt">
Order deny,allow
Allow from all
Satisfy Any
</Directory>
ErrorDocument 401 /mainserver/unauthorized
ErrorDocument 403 /mainserver/unauthorized
<Directory "E:/blabla">
AuthType Basic
AuthName "Intranetserver"
AuthUserFile E:/blabla/server/apache/intranet.txt
Require valid-user
</Directory>
</VirtualHost>
Ich habe es übrigens mit einem Windows-System zu tun, deswegen gab es
noch zusätzliche (behobene) Komplikationen mit den " und so einem
Zeugs. Der Passwortschutz, der auf der einen Seite für's Verzeichnis
E:/blabla "angeschaltet" wurde, wird mittels Order deny,allow (erst deny, dann allow), Allow from all (Von überall sehen dürfen [voreinstellung...]) sowie dem alles entscheidenden "Satisfy", dass nämlich mit "Any" anstatt dem standartmäßig gesetztem "All" auch den Zugriff gewährt, wenn nur ein Teil der 2 möglichen entscheidenen Zugriffsfaktoren HTTP-Authentifizierung oder Zugriffsentscheidung per IP-Sperre [...] zutrifft, was mittels "Allow from all" ja geschehen ist, nun außer kraft gesetzt. [uffff, langer satz ;-) *verschnauf*]
So, nun genug des gefasels, erfreuen wir uns einfach, dass es funktioniert ;-)
WauWau
--
ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
E-Mail WauWau: [mailto:der-wauwau@gmx.de]