Heim >Betrieb und Instandhaltung >Nginx >Wie implementiere ich die HTTP -Authentifizierung (Basic Auth, Digest Auth) in Nginx?
Die Implementierung der HTTP -Authentifizierung in NGINX kann mit Basis- und Verdauungsauthentifizierungsmethoden erfolgen. Hier finden Sie eine Schritt-für-Schritt-Anleitung zum Einrichten:
Grundlegende Authentifizierung:
Erstellen einer Passwortdatei: Erstens müssen Sie eine Datei mit Benutzernamen und Passwörtern erstellen. Verwenden Sie den Befehl htpasswd
, um diese Datei zu erstellen und zu verwalten.
<code>sudo htpasswd -c /etc/nginx/.htpasswd username</code>
Auf diese Weise werden Sie aufgefordert, ein Passwort für den angegebenen Benutzer einzugeben. Zusätzliche Benutzer können ohne das -c
-Flag hinzugefügt werden.
Konfigurieren Sie NGINX: Ändern Sie Ihre Nginx -Konfigurationsdatei, um die Authentifizierungsdetails zu enthalten. Fügen Sie Ihrem Server oder Standortblock Folgendes hinzu:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Dies erfordert eine Authentifizierung für den Zugriff auf das /protected/
verzeichnis.
Neustart Nginx: Nach Änderungen starten Sie Nginx neu, um die neue Konfiguration anzuwenden:
<code>sudo systemctl restart nginx</code>
Verdauungsauthentifizierung:
Erstellen einer Kennwortdatei: Ähnlich wie bei Basic Author benötigen Sie eine Kennwortdatei. Sie können Tools wie htdigest
verwenden, um es zu erstellen:
<code>sudo htdigest -c /etc/nginx/.htdigest "Realm Name" username</code>
Ersetzen Sie den "Realm -Namen" durch den gewünschten Reichnamen.
Konfigurieren nginx: Digest auth erfordert die ngx_http_auth_digest_module
, die möglicherweise nicht im Standardaufbau von Nginx enthalten ist. Wenn Sie es haben, konfigurieren Sie Nginx wie folgt:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; auth_digest_user_file /etc/nginx/.htdigest; }</code>
Sowohl die grundlegende als auch die Digest -Authentifizierung haben ihre eigenen Sicherheitsauswirkungen:
Grundlegende Authentifizierung:
Verdauungsauthentifizierung:
Vergleich:
Authentifizierungsbereiche in NGINX werden verwendet, um Ressourcen zu gruppieren, die eine Authentifizierung unter einem gebräuchlichen Namen erfordern. Dies kann dazu beitragen, die Benutzerverwaltung besser zu verwalten und den Benutzern einen klaren Kontext zu bieten, auf das sie zugreifen. So konfigurieren Sie NGINX für die Verwendung von Authentifizierungsbereichen:
Grundlegende Authentifizierung mit Reich:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; # This is the realm name auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Der Text in Zitaten ist der Reichname, der dem Benutzer während der Authentifizierungsaufforderung angezeigt wird.
Digest -Authentifizierung mit Realm:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; # This is the realm name auth_digest_user_file /etc/nginx/.htdigest; }</code>
Ähnlich wie bei Basic AUTh ist der Text in Zitaten der Reichname.
Mehrere Bereiche:
Sie können verschiedene Bereiche für verschiedene Standorte einrichten, um den Zugriff auf verschiedene Teile Ihres Servers zu verwalten.
<code class="nginx">location /admin/ { auth_basic "Admin Area"; auth_basic_user_file /etc/nginx/.htpasswd_admin; } location /user/ { auth_basic "User Area"; auth_basic_user_file /etc/nginx/.htpasswd_user; }</code>
In diesem Beispiel werden verschiedene Realms und Kennwortdateien für den Administrator- und Benutzbereich verwendet, wodurch die Benutzerverwaltung verbessert wird.
Während Nginx nicht nativ, die Kombination der Grund- und Verdauungsauthentifizierung im selben Standortblock, können Sie eine Form der erweiterten Sicherheit erreichen, indem Sie separate Stellen mit unterschiedlichen Authentifizierungsmethoden einrichten. So können Sie es konfigurieren:
Grundlegende Auth für weniger sensible Bereiche:
<code class="nginx">location /less_sensitive/ { auth_basic "Less Sensitive Area"; auth_basic_user_file /etc/nginx/.htpasswd_less_sensitive; }</code>
Digest auth für empfindlichere Bereiche:
<code class="nginx">location /more_sensitive/ { auth_digest "More Sensitive Area"; auth_digest_user_file /etc/nginx/.htdigest_more_sensitive; }</code>
Fallback -Authentifizierung:
Wenn Benutzer eine Fallback -Methode zum Zugriff auf Inhalte haben, können Sie einen separaten Ort mit einer alternativen Authentifizierungsmethode einrichten:
<code class="nginx">location /fallback/ { auth_basic "Fallback Area"; auth_basic_user_file /etc/nginx/.htpasswd_fallback; }</code>
Während dieses Setup die beiden Methoden an derselben Stelle technisch nicht kombiniert, können Sie die Stärken sowohl der grundlegenden als auch der Verdauungsauthentifizierung für verschiedene Bereiche Ihres Servers nutzen, indem Sie die Sicherheit verbessern, indem Sie geeignete Authentifizierungsmechanismen basierend auf der Empfindlichkeit der Daten bereitstellen.
Das obige ist der detaillierte Inhalt vonWie implementiere ich die HTTP -Authentifizierung (Basic Auth, Digest Auth) in Nginx?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!