Selfdog: eigene 401/403 auf zugriffsgesichertem Server... unmöglich?

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-Kontainer direkt im VirtualHost-Teil (wo sonst...)

<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

--
ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
E-Mail WauWau: [mailto:der-wauwau@gmx.de]
  1. 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

    1. 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

      --
      ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
      E-Mail WauWau: [mailto:der-wauwau@gmx.de]
  2. 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 Besucher

    ErrorDocument 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]