Kontakt aufnehmen
Server 2 Min. Lesezeit · 07/2021

HTTP Basic Auth mit Apache-Server und .htaccess

Eine einfache und schnelle Möglichkeit, Websites hinter einer Anmeldung zu verbergen, wenn Sie den Webserver Apache verwenden.

Bei der Entwicklung von Websites ist es manchmal nötig, sie als Ganzes hinter einer einfachen Anmeldung zu verbergen. Das kann zu Testzwecken sein oder in Situationen, in denen sich die Entwicklung eines aufwendigeren Authentifizierungsmechanismus nicht lohnt.

Die Einrichtung von HTTP Basic Authentication ist sehr einfach und schnell erledigt. Im Grunde genügt es, eine Datei mit Zugangsdaten zu erzeugen und ein paar Zeilen in die Apache-Konfiguration einzufügen – entweder direkt in die VirtualHost-Definition oder in die Datei .htaccess.

Die Datei mit den Zugangsdaten ist schnell erstellt. Dafür können wir entweder einen Onlinedienst nutzen, z. B. https://hostingcanada.org/htpasswd-generator/, oder den Befehl htpasswd verwenden:

bash
$ htpasswd -bcB .htpasswd username password

Damit erzeugen wir die Datei .htpasswd direkt im aktuellen Verzeichnis; die verwendeten Parameter -bcB bedeuten:

  • b - das Passwort wird direkt im Befehl angegeben
  • c - die angegebene Datei soll angelegt werden
  • B - zur Verschlüsselung des Passworts wird bcrypt verwendet

Danach muss nur noch die Authentifizierung im Apache-Server verlangt werden, wobei das Modul auth_basic aktiviert sein muss. Ist es nicht aktiviert und haben wir Root-Zugriff, lässt es sich einfach mit folgendem Befehl aktivieren:

bash
a2enmod auth_basic

Der eigentliche Code für die Authentifizierung kann in der VirtualHost-Definition in die Direktive <Directory> eingefügt werden:

apache
<Directory /some/path>
    ...
    AuthType Basic
    AuthName "Login required"
    AuthUserFile /absolute/path/to/.htpasswd
    Require valid-user

    # Wenn Sie die Anmeldung nur einem bestimmten Benutzer erlauben möchten
    # Require user username
</Directory>

Wichtig ist, den Pfad zur Authentifizierungsdatei als absoluten Pfad anzugeben.

Wenn wir den Code in die .htaccess einfügen, müssen wir prüfen, ob für das betreffende <Directory> das Ändern der Einstellungen per .htaccess erlaubt ist. Die Direktive AllowOverride muss entweder auf AuthConfig oder auf All gesetzt sein:

apache
<Directory /some/path>
    ...
    AllowOverride AuthConfig
</Directory>

Anschließend genügt es, in die .htaccess Folgendes einzufügen:

apache
AuthType Basic
AuthName "Login required"
AuthUserFile /absolute/path/to/.htpasswd
Require valid-user

Basic Authentication im Apache-Server bietet natürlich noch viel mehr Funktionen und Konfigurationsmöglichkeiten. Die vollständige Beschreibung finden Sie in der offiziellen Dokumentation

Teilen
LinkedIn Facebook

Brauchen Sie mehr als einen Artikel?

Melden Sie sich unverbindlich – ein paar Sätze dazu, worum es geht, genügen.

Weiterlesen

Ähnliche Artikel

Weitere Notizen aus Betrieb und Entwicklung.

Gesamter Ratgeber