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

Lernprogramm zur Verwendung von HTML-Formular-Tags

Mithilfe von HTML-Formularen können verschiedene ...

Detaillierte Analyse der HTML-Semantik und der zugehörigen Front-End-Frameworks

Über Semantik Die Semantik ist die Lehre von der ...

Vue.js-Framework implementiert Warenkorbfunktion

In diesem Artikel wird der spezifische Code des V...

Detaillierte Erklärung des TARGET-Attributs des HTML-Hyperlink-Tags A

Das Hyperlink-Tag <a> stellt einen Linkpunkt...

Detaillierte Anweisungen zur Installation von Jenkins auf Ubuntu 16.04

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

Detailliertes Tutorial zur Nginx-Installation

1. Kurze Einführung in Nginx Nginx ist ein kosten...

Ideen und Methoden zur inkrementellen Sicherung einer MySQL-Datenbank

Um eine inkrementelle Sicherung der MySQL-Datenba...

HTML-Grundlagen-Zusammenfassungsempfehlung (Titel)

HTML: Titel Überschriften werden durch Tags wie &...

Beispielcode für horizontales Balkendiagramm von Echarts Bar

Inhaltsverzeichnis Horizontales Balkendiagramm Da...

Zusammenfassung gängiger Nginx-Techniken und Beispiele

1. Priorität mehrerer Server Wenn beispielsweise ...