Vielleicht haben Sie noch nie darüber nachgedacht, was Auth Basic ist, aber Sie sind bestimmt schon darauf gestoßen, als Sie die Einstellungen Ihres Routers aufgerufen haben. So nennt man den Mechanismus der Autorisierung durch Benutzernamen und Passwort auf Webserverebene. Eine solche Autorisierung wird sowohl von Apache als auch von Nginx unterstützt. In dieser Anleitung schlagen wir vor, die Frage zu beantworten, wie man Auth Basic für eine bestimmte Route oder eine bestimmte Website konfiguriert.
So sieht das Auth Basic Autorisierungsfenster aus:
Jetzt sollten Sie verstehen, worum es in dieser Anleitung geht. Es ist möglich, die Autorisierung für eine bestimmte URL, für die gesamte Site oder für alle Sites zu konfigurieren. Als Erstes müssen Sie eine Datei mit einer Liste von Benutzern und Passwörtern erstellen. Zu diesem Zweck verwenden wir das Dienstprogramm htpasswd. Die Syntax des Befehls lautet wie folgt:
$ sudo htpasswd -c /path/to/file username
In diesem Fall wird die Option -c verwendet, um eine neue Datei zu erstellen, Sie brauchen sie nicht zu verwenden, um zuvor erstellte Dateien zu bearbeiten. Ein Beispiel:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Das Programm wird eine doppelte Passwortabfrage durchführen. Aus Sicherheitsgründen wird das Passwort nicht angezeigt, aber eingegeben. Sobald Sie eine solche Datei erstellt haben, können Sie direkt zur Konfiguration von Nginx übergehen.
Um alle Ressourcen mit einem Passwort zu schützen, müssen Sie eine Direktive in den http-Abschnitt
der Datei /etc/nginx/nginx.conf
einfügen:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
Um eine bestimmte Seitenadresse (URL) zu schützen, müssen Sie eine Direktive in den entsprechenden Speicherortblock einfügen. Dies könnte /wp-admin/admin-ajax.php
sein:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Wenn es sich um eine WordPress-Website handelt, ist es am besten, den Speicherort
in location/
zu platzieren. Alle oben beschriebenen Regeln werden funktionieren, und es wird ein Schutz geboten. Wenn Sie den Zugriff für einen bestimmten Ort
erlauben müssen, sieht die Direktive wie auth_basic "off"
aus:
location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
Die PHP-Verarbeitung muss zum location-Block
hinzugefügt werden, sonst wird der Benutzer aufgefordert, das Skript, auf das er zugreift, herunterzuladen.
Die Einrichtung des Zugriffs in Nginx ist also nicht allzu schwierig. Sie müssen nur den Location-Block richtig konfigurieren.