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

JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode

Mit der Array-Deduplizierung wird man häufig bei ...

CSS zum Erstellen eines dynamischen sekundären Menüs

Dynamisches Implementieren eines einfachen sekund...

Tipps zur MySql-SQL-Optimierung teilen

Eines Tages stellte ich fest, dass die Ausführung...

Beispielcode zur Implementierung der Schnittstellensignatur mit Vue+Springboot

1. Umsetzungsideen Der Zweck der Schnittstellensi...

Zusammenfassung der grundlegenden Verwendung von JS-Arrays

Vorwort Arrays sind eine spezielle Art von Objekt...

Lösung für das Problem des MySQL-Datenverzögerungssprungs

Heute haben wir ein weiteres typisches Problem im...

Wie erreicht MySQL die Parallelität mehrerer Versionen?

Inhaltsverzeichnis MySQL-Mehrversionen-Parallelit...

Das WeChat-Applet verwendet die Videoplayer-Videokomponente

In diesem Artikelbeispiel wird der spezifische Co...

Lösung für die falsche Ausrichtung des Eingabecursors in Chrome, Firefox und IE

Detaillierte Erklärung zur Fehlplatzierung des Ein...

Allgemeine Probleme mit der Regelpriorität beim Nginx-Standort

Inhaltsverzeichnis 1. Standort / Matching 2. Stan...