Basic-HTTP-Authentifizierung verwendet Benutzernamen und Passwörter zu sichern, bestimmte Routen Ihrer website. Es wird allgemein verwendet, um lock-down-admin-panels und backend-services, und—in Verbindung mit HTTPS—bietet gute Sicherheit für web-basierte Ressourcen.
Wie Funktioniert die HTTP-Authentifizierung zu Arbeiten?
Basic-HTTP-Authentifizierung schützt bestimmte Ressourcen oder Routen mit einem Benutzernamen und einem Passwort. Wenn ein Benutzer versucht, Zugriff auf diese Ressource, wird Ihr browser öffnet sich ein Dialogfenster Anmeldeinformationen vor dem senden nichts mehr. Der admin-panels der meisten home-Router gesichert sind, auf diese Weise.
Hinter den kulissen, wenn ein Benutzer versucht, auf eine geschützte Ressource zuzugreifen, sendet der server dem Nutzer eine WWW-Authenticate-header zusammen mit einem 401 Unauthorized Antwort. Der client sendet den entsprechenden Benutzernamen und das Passwort, gespeichert in der Authorization-header. Der server prüft die Kombination mit einer Liste von Hash-Passwörter, und der client verbinden darf, wenn es passt.
Basic-HTTP-Authentifizierung erfordert das versenden von Passwörtern im Klartext, Sie müssen HTTPS/TLS auf dem server, sonst werden Sie anfällig für man-in-the-middle-Angriffe. HTTPS verschlüsselt die Verbindung, und sperren Sie jemand versucht zu schnüffeln Ihr Passwort. Können Sie ein kostenloses Zertifikat mit LetsEncrypt, oder wenn Sie schauen, um zu sichern, einen privaten server zu erstellen und melden Sie sich ein.
Generieren Sie ein Passwort-Datei
Für grundlegende HTTP-Authentifizierung arbeiten, müssen Sie eine Datei als eine Datenbank, die Benutzernamen und die entsprechenden Passwörter. Sie können diese mit der htpasswd-Dienstprogramm, das installiert werden soll zu Ihrer Apache-installation durch die apache2-utils Bibliothek. Wenn es nicht installiert ist, können Sie es von Ihrer Distribution Paket-manager; für Debian-basierte Systeme wie Ubuntu, das wäre:
sudo apt-get install apache2-utils
Als Nächstes generieren Sie die Passwort-Datei mit der Option-c aufrufst. Dieser Befehl erstellt eine neue Passwort-Datei und legt das Kennwort für den “admin” user:
sudo htpasswd -c /etc/apache2/.htpasswd admin
Sie werden aufgefordert, ein Kennwort einzugeben, die gehasht und gespeichert, die in /etc/apache2/.htpasswd. Wenn Sie möchten, um einen anderen Benutzer hinzuzufügen, lassen Sie das -c-flag zum Anhängen eines Eintrags.
Alternativ können Sie ändern die Apache-AuthBasicProvider option, dass unterschiedliche Methoden der überprüfung der Passwörter, wie zum Beispiel aus Datenbanken. Allerdings, die Standard-option der Verwendung von htpasswd-Dateien funktioniert gut für die meisten Fälle, vor allem mit nur wenigen Benutzern.
Konfiguration Von Apache
Es gibt ein paar Möglichkeiten, konfigurieren von Kennwort-Authentifizierung in Apache. Du wirst immer noch die gleiche config-Optionen, aber die Apache-config speichert Dateien in einer Reihe von Orten, die Sie haben zu Bearbeiten, hängt von Ihrer Konfiguration.
Wenn Sie möchten, aktivieren Sie die Authentifizierung für alles, Sie werden wollen, Bearbeiten Sie die main-config-Datei:
/etc/apache2/apache2.conf
Wenn Sie stattdessen möchten, beglaubigen Sie einen bestimmten Ordner, werden Sie wollen, zu Bearbeiten, dass die Ordner die config-Datei in sites-enabled. Zum Beispiel die Standard-config ist unter:
/etc/apache2/sites-available/000-default.conf
aber deins wird wahrscheinlich benannt werden auf der Grundlage der route. Wenn Sie brauchen, einen neuen zu machen, kopieren Sie diese default-config und ändern Sie die DocumentRoot-Verzeichnis.
Wenn Sie managed hosting-und don ‘ T haben Zugang zu den wichtigsten config-Dateien, werden Sie wahrscheinlich ändern .htaccess-Datei befindet sich normalerweise im Stammverzeichnis Ihrer Website-Ordner. Zum Beispiel:
/var/www/html/.htaccess
In jedem Fall werden Sie wollen, zu öffnen, was auch immer-Datei, passend zu Ihrem Anwendungsfall, und fügen Sie die folgenden in einem directory-block. Wenn Sie ändern ein .htaccess-Datei, die <Directory> – block ist nicht notwendig, nur die Linien innen:
<Directory “/var/www/html”>
AuthType Basic
AuthName “Gesperrter Inhalt”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
Die auth-Einstellungen gelten für das gesamte Verzeichnis, die Sie in der Regel würde festlegen möchten, um die gesamte Dokument-root, obwohl Sie es anwenden konnte nur auf einen bestimmten Ordner, indem Sie den Pfad:
<Directory “/var/www/html/nur für den Dienstgebrauch”>
</Directory>
Dies wird die Art der Authentifizierung und Punkt-Apache in Richtung der Passwort-Datei. Es gibt keine Voraussetzung, es zu benennen, etwas bestimmtes, so können Sie generieren, verschiedene Passwort-Dateien für verschiedene Verzeichnisse.
Starten Sie Apache neu, um die änderungen zu übernehmen:
sudo service apache2 restart
Überprüfen Sie die geschützte route in Ihrem browser, und Sie sollten angehalten werden, und nach einem Passwort gefragt. Wenn Sie nicht bieten können, bekommen Sie eine 401 Unauthorized Fehler und Zugriff verweigert.
Beachten Sie, dass die Passwörter noch im Klartext übertragen, so aktivieren Sie HTTPS für Apache.