Führen Sie die Schritte zum Konfigurieren der grundlegenden Benutzerauthentifizierung auf Nginx-Ebene aus.

Führen Sie die Schritte zum Konfigurieren der grundlegenden Benutzerauthentifizierung auf Nginx-Ebene aus.

Vorwort

Anwendungsszenario: Wahrscheinlich muss die interne Website für externe Benutzer zugänglich sein, dem Website-Konto des Besuchers können jedoch keine Berechtigungen erteilt werden. Daher werden Einschränkungen auf Nginx-Ebene auferlegt. Beispielsweise verfügen interne Mitarbeiter bei Outsourcing-Projekten über Konten, um Dokumente zu bearbeiten, während Outsourcing-Mitarbeiter keine internen Konten haben, aber die Dokumente einsehen können müssen. Daher ist die Einrichtung einer Benutzerauthentifizierung auf Nginx-Ebene die beste und einfachste Option. In den meisten Fällen eröffnen Arbeitgeber für Outsourcing-Mitarbeiter kein Konto mit grundlegenden Zugriffsrechten.

Voraussetzungen für die Benutzerauthentifizierung auf nginx-Ebene: Sie benötigen ein entsprechendes Programm zur Kennworterstellung, beispielsweise apache2-utils (Debian, Ubuntu) oder httpd-tools (RHEL / CentOS / Oracle Linux). Unterschiedliche Betriebssysteme erfordern unterschiedliche Software.

Erstellen einer Kontokennwortdatei

  • Verwenden Sie den Befehl sudo htpasswd -c /etc/apache2/.htpasswd user1 um das erste Konto zu erstellen, und drücken Sie dann die Eingabetaste, um das Kennwort einzugeben. Verwenden Sie denselben Befehl ohne den Parameter -c, um den zweiten Benutzer und das zweite Kennwort zu erstellen. Der Parameter -c dient zum Erstellen einer Datei. Sie müssen die Datei im zweiten und den folgenden Befehlen nicht erneut erstellen.
  • Bestätigen Sie, dass die Datei- und Kontoinformationen erfolgreich generiert wurden. Verwenden Sie den Befehl cat /etc/apache2/.htpasswd, um den Dateiinhalt anzuzeigen. Es sollte sich um das Konto und das verschlüsselte Passwort handeln, z. B.: user1:$apr1$/woC1jnP$KAh0SsVn5qeSMjTtn0E9Q0 usw.

Konfigurieren Sie Nginx für die grundlegende HTTP-Benutzerauthentifizierung

Verwenden Sie die Direktive auth_basic, um den Namen des geschützten Bereichs anzugeben, der im Popup-Fenster für Konto und Kennwort angezeigt wird. Verwenden Sie die Direktive auth_basic_user_file, um den Pfad .htpasswd mit den Konto- und Kennwortinformationen festzulegen. Konfigurieren Sie beispielsweise:

Standort /API {
 auth_basic "Administratorbereich";
 auth_basic_benutzerdatei /etc/apache2/.htpasswd; 
}

Wenn ein Block außerdem nicht das gesamte Authentifizierungssystem erben möchte, kann er im Block auth_basic deaktivieren, d. h. die Benutzerauthentifizierung wird deaktiviert. Konfigurieren Sie beispielsweise:

Server {
 ...
 auth_basic "Administratorbereich";
 auth_basic_user_file conf/htpasswd;

 Standort /public/ {
  auth_basic aus;
 }
}

Kombinieren Sie Authentifizierung mit Zugriffsbeschränkungen per IP-Adresse

Die HTTP-Basisauthentifizierung lässt sich wirkungsvoll mit Zugriffsbeschränkungen per IP-Adresse kombinieren. Sie können mindestens zwei Szenarien implementieren:

  • Der Benutzer muss authentifiziert sein und über IP-Zugriffsrechte verfügen
  • Benutzer müssen authentifiziert sein oder über IP-Zugriffsrechte verfügen

1. Verwenden Sie die Anweisungen zum Zulassen und Verweigern, um den Zugriff auf die angegebene IP-Adresse zuzulassen oder einzuschränken. Beispiel:

Standort /API {
 #... 192.168.1.2 verweigern;
 192.168.1.1/24 zulassen;
 127.0.0.1 zulassen;
 alles leugnen;
}

2. In anderen Netzwerken als 192.168.1.2 werden nur 192.168.1.1/24 Zugriffsrechte gewährt. HINWEIS: Allow- und Deny-Anweisungen werden in der Reihenfolge angewendet, in der sie definiert sind.

Kombinieren Sie Einschränkungen mit der Satisfaction-Direktive über IP- und HTTP-Authentifizierung. Wenn die Direktive auf „alle“ gesetzt ist, wird der Zugriff gewährt, wenn der Client beide Bedingungen erfüllt. Wenn die Direktive auf „any“ gesetzt ist, wird der Zugriff gewährt, wenn der Client mindestens eine Bedingung erfüllt, zum Beispiel:

Standort /API {
 #... alle zufriedenstellen; 

 192.168.1.2 verweigern;
 192.168.1.1/24 zulassen;
 127.0.0.1 zulassen;
 alles leugnen;

 auth_basic "Administratorbereich";
 auth_basic_user_file conf/htpasswd;
}

Das Obige kann in einem vollständigen Beispiel zusammengefasst werden:

http {
 Server {
  hören Sie 192.168.1.23:8080;
  root /usr/share/nginx/html;

  Standort /API {
   API;
   alle zufriedenstellen;

   192.168.1.2 verweigern;
   192.168.1.1/24 zulassen;
   127.0.0.1 zulassen;
   alles leugnen;

   auth_basic "Administratorbereich";
   auth_basic_benutzerdatei /etc/apache2/.htpasswd; 
  }
 }
}

Der endgültige Effekt ist wie unten dargestellt:

© Originalartikel, zitiert aus offiziellen Dokumenten

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So verwenden Sie das Realip-Modul im Nginx-Grundlagenlernen
  • Eine kurze Einführung in die Grundlagen von Nginx
  • Nginx-Grundlagen - Gzip-Konfigurationshandbuch
  • Grundlegende Sicherheitskonfiguration des Nginx-Servers und einige Sicherheitstipps
  • Eine Erklärung der grundlegenden Konfiguration von Nginx
  • Lernen Sie die Grundlagen von nginx

<<:  Installations-Tutorial zur komprimierten Version von MySQL 8.0.11 unter Win10

>>:  So schreiben Sie mit nodejs ein Tool zur Generierung von Entitätsklassen für Datentabellen für C#

Artikel empfehlen

Verwenden von js, um einen Wasserfalleffekt zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Beispiel für einen reinen CSS3-Mindmap-Stil

Mindmap Er sieht wahrscheinlich so aus: Die meist...

Detaillierte Erklärung dreier häufig verwendeter Webeffekte in JavaScript

Inhaltsverzeichnis 1 Element Offset-Serie 1.1 Off...

Beispiel zum Hochladen eines Docker-Images in ein privates Repository

Das Image kann problemlos direkt in das öffentlic...

Lernen Sie MySQL-Datenbanken in einer Stunde (Zhang Guo)

Inhaltsverzeichnis 1. Datenbankübersicht 1.1 Entw...

MySQL-Passwort ist korrekt, aber keine lokale Anmeldung möglich -1045

MySQL-Passwort ist korrekt, aber keine lokale Anm...

Wie überwacht und erhält Zabbix Netzwerkgerätedaten über SSH?

Szenariosimulation: Das Betriebs- und Wartungsper...

Anfänger lernen einige HTML-Tags (2)

Verwandter Artikel: Anfänger lernen einige HTML-Ta...

Analysieren der häufig verwendeten v-Anweisungen in vue.js

Inhaltsverzeichnis Erklärung des V-Texts bei „if“...

Detaillierte Anweisungen zur Installation von Jenkins auf Ubuntu 16.04

1. Voraussetzungen JDK wurde installiert echo $PA...

Einführung in Fork in Multithreading unter Linux

Inhaltsverzeichnis Frage: Fall (1) Fork vor dem E...

Web-Unterrichtspläne, Unterrichtspläne für Anfänger

Unterrichtsthemen Webseite Anwendbare Klasse Zwei...

So installieren und implementieren Sie MySQL 8.0 unter CentOS8

Die offizielle Version 8.0.11 von MySQL 8 wurde v...

HTML-Code zum Hinzufügen von Symbolen zum transparenten Eingabefeld

Ich habe vor Kurzem eine Website mit Anwaltsempfe...