Maison >Opération et maintenance >Nginx >Comment implémenter l'authentification HTTP (Auth Basic, Digest Auth) dans Nginx?
La mise en œuvre de l'authentification HTTP dans NGINX peut être effectuée en utilisant des méthodes d'authentification Basic et Digest. Voici un guide étape par étape sur la façon de les configurer:
Authentification de base:
Créer un fichier de mot de passe: Tout d'abord, vous devez créer un fichier contenant des noms d'utilisateur et des mots de passe. Utilisez la commande htpasswd
pour créer et gérer ce fichier.
<code>sudo htpasswd -c /etc/nginx/.htpasswd username</code>
Cela vous invitera à saisir un mot de passe pour l'utilisateur spécifié. Des utilisateurs supplémentaires peuvent être ajoutés sans l'indicateur -c
.
Configurez Nginx: modifiez votre fichier de configuration Nginx pour inclure les détails d'authentification. Ajoutez ce qui suit à votre serveur ou votre bloc d'emplacement:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Cela nécessitera une authentification pour accéder au répertoire /protected/
.
Redémarrez Nginx: Après avoir apporté des modifications, redémarrez Nginx pour appliquer la nouvelle configuration:
<code>sudo systemctl restart nginx</code>
Authentification digérée:
Créez un fichier de mot de passe: similaire à l'authentification de base, vous aurez besoin d'un fichier de mot de passe. Vous pouvez utiliser des outils comme htdigest
pour le créer:
<code>sudo htdigest -c /etc/nginx/.htdigest "Realm Name" username</code>
Remplacez le "nom du royaume" par le nom du royaume souhaité.
Configurer nginx: Digest Auth nécessite le ngx_http_auth_digest_module
, qui pourrait ne pas être inclus dans la version par défaut de Nginx. Si vous l'avez, configurez Nginx comme suit:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; auth_digest_user_file /etc/nginx/.htdigest; }</code>
L'authentification de base et de digestion a leurs propres implications de sécurité:
Authentification de base:
Authentification digérée:
Comparaison:
Les domaines d'authentification dans Nginx sont utilisés pour regrouper les ressources qui nécessitent une authentification sous un nom commun. Cela peut aider à une meilleure gestion des utilisateurs et fournir un contexte clair aux utilisateurs sur ce à quoi ils accèdent. Voici comment configurer Nginx pour utiliser des royaumes d'authentification:
Authentification de base avec le royaume:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; # This is the realm name auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Le texte en guillemets est le nom du royaume qui sera affiché à l'utilisateur lors de l'invite d'authentification.
Authentification digérée avec le royaume:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; # This is the realm name auth_digest_user_file /etc/nginx/.htdigest; }</code>
Semblable à Auth Basic, le texte en citations est le nom du royaume.
Plusieurs royaumes:
Vous pouvez configurer différents domaines pour différents emplacements afin de gérer l'accès à différentes parties de votre serveur.
<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>
Cet exemple utilise différents domaines et différents fichiers de mot de passe pour les zones d'administration et d'utilisateurs, améliorant la gestion des utilisateurs.
Bien que Nginx ne prend pas en charge nativement la combinaison de l'authentification de base et de digestion dans le même bloc de localisation, vous pouvez obtenir une forme de sécurité améliorée en configurant des emplacements distincts avec différentes méthodes d'authentification. Voici comment vous pouvez le configurer:
Auth de base pour les zones moins sensibles:
<code class="nginx">location /less_sensitive/ { auth_basic "Less Sensitive Area"; auth_basic_user_file /etc/nginx/.htpasswd_less_sensitive; }</code>
DIGEST AUTH pour les zones plus sensibles:
<code class="nginx">location /more_sensitive/ { auth_digest "More Sensitive Area"; auth_digest_user_file /etc/nginx/.htdigest_more_sensitive; }</code>
Authentification de secours:
Si vous souhaitez que les utilisateurs aient une méthode de secours pour accéder au contenu, vous pouvez configurer un emplacement distinct avec une autre méthode d'authentification:
<code class="nginx">location /fallback/ { auth_basic "Fallback Area"; auth_basic_user_file /etc/nginx/.htpasswd_fallback; }</code>
Bien que cette configuration ne combine pas techniquement les deux méthodes dans le même endroit, elle vous permet de tirer parti des forces de l'authentification de base et de digestion pour différents domaines de votre serveur, en améliorant la sécurité en fournissant des mécanismes d'authentification appropriés en fonction de la sensibilité des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!