Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite

So konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite

PHPz
PHPznach vorne
2023-05-12 08:10:112383Durchsuche

Vorwort

Anwendungsszenario: Wahrscheinlich müssen externe Benutzer auf die interne Website zugreifen, und gleichzeitig können Besuchern keine Website-Kontoberechtigungen erteilt werden, sodass auf Nginx-Ebene Einschränkungen auferlegt werden. Bei Outsourcing-Projekten verfügen beispielsweise interne Mitarbeiter über Konten zum Bearbeiten von Dokumenten, während ausgelagerte Mitarbeiter keine internen Konten haben, aber die Dokumente sehen müssen. Daher ist die Einstellung der Benutzerüberprüfung auf Nginx-Ebene die beste und einfachste Option In den meisten Fällen werden Arbeitgeber kein Konto mit grundlegenden Zugriffsrechten für ausgelagerte Mitarbeiter eröffnen.

Voraussetzungen für die Benutzerauthentifizierung auf Nginx-Ebene: Es ist ein entsprechendes Programm zur Passworterstellung erforderlich, z. B. Apache2-Utils (Debian, Ubuntu) oder httpd-tools (Rhel/Centos/Oracle Linux).

Erstellen Sie eine Kontopasswortdatei

  • 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 einzugeben Passwort, derselbe Befehl, es gibt keinen -c-Parameter zum Erstellen eines zweiten Benutzers und Passworts, der -c-Parameter dient zum Erstellen einer Datei und es besteht keine Notwendigkeit, die Datei im zweiten und den folgenden Befehlen erneut zu erstellen. sudo htpasswd -c /etc/apache2/.htpasswd user1 创建第一个账户,然后按下 enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。

  • 确认一下文件及账号信息生成成功,使用命令 cat /etc/apache2/.htpasswd 查看文件内容,应该为账号及加密后的密码,如:user1:$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0 

Bestätigen Sie, dass die Datei- und Kontoinformationen erfolgreich generiert wurden. Verwenden Sie den Befehl cat /etc/apache2/.htpasswd, um den Dateiinhalt anzuzeigen, z. B.: user1: $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0 usw.


Konfigurieren Sie Nginx für die HTTP-Basisbenutzerauthentifizierung.

Verwenden Sie den Befehl auth_basic, um den Namen des geschützten Bereichs anzugeben. Dieser Name wird im Popup-Fenster für das Kontokennwort angezeigt .htpasswd mit Kontopasswortinformationen. Beispiel: Konfiguration:

location /api {
 auth_basic   "administrator's area";
 auth_basic_user_file /etc/apache2/.htpasswd; 
}
Wenn ein Block außerdem nicht das gesamte Authentifizierungssystem erben möchte, können Sie auth_basic im Block deaktivieren, was bedeutet, dass die Benutzerauthentifizierung deaktiviert ist. Beispielkonfiguration:
server {
 ...
 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;

 location /public/ {
  auth_basic off;
 }
}

Authentifizierung mit Zugriffsbeschränkungen nach IP-Adresse kombinieren

  • Die HTTP-Basisauthentifizierung kann effektiv mit Zugriffsbeschränkungen nach IP-Adresse kombiniert werden. Sie können mindestens zwei Szenarien implementieren:

  • Benutzer müssen authentifiziert sein und über IP-Zugriffsrechte verfügen.

Benutzer müssen authentifiziert sein oder über IP-Zugriffsrechte verfügen oder Beschränken Sie den Zugriff auf die angegebene IP, konfigurieren Sie beispielsweise:


location /api {
 #... deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;
}

2. Für andere Netzwerke als die Adresse 192.168.1.2 wird nur der Zugriff auf 192.168.1.1/24 gewährt. Hinweis: Allow- und Deny-Anweisungen werden in der definierten Reihenfolge angewendet.

Kombinieren Sie Einschränkungen mit der Erfüllen-Anweisung über IP- und HTTP-Authentifizierung. Wenn die Direktive auf all gesetzt ist, wird der Zugriff gewährt, wenn der Client diese beiden Bedingungen erfüllt. Wenn die Anweisung auf „any“ gesetzt ist, wird der Zugriff gewährt, wenn der Client mindestens eine Bedingung erfüllt. Beispiel: Konfiguration:


location /api {
 #... satisfy all; 

 deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;

 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;
}

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

http {
 server {
  listen 192.168.1.23:8080;
  root /usr/share/nginx/html;

  location /api {
   api;
   satisfy all;

   deny 192.168.1.2;
   allow 192.168.1.1/24;
   allow 127.0.0.1;
   deny all;

   auth_basic   "administrator's area";
   auth_basic_user_file /etc/apache2/.htpasswd; 
  }
 }
}

Der endgültige Effekt ist wie in der Abbildung dargestellt Figur:

So konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die Nginx-Benutzerauthentifizierungsseite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen