Maison > Opération et maintenance > Nginx > le corps du texte

Comment configurer la page d'authentification utilisateur Nginx

PHPz
Libérer: 2023-05-12 08:10:11
avant
2403 Les gens l'ont consulté

Avant-propos

Scénario d'application : le site Web interne doit probablement être accessible par des utilisateurs externes, et en même temps, les visiteurs ne peuvent pas recevoir d'autorisations de compte de site Web, des restrictions sont donc imposées au niveau nginx. Par exemple, dans les projets d'externalisation, les employés internes disposent de comptes pour gérer les documents, tandis que les employés externalisés n'ont pas de comptes internes, mais ils doivent pouvoir voir les documents. Par conséquent, définir la vérification des utilisateurs au niveau nginx est l'option la meilleure et la plus simple. Dans la plupart des cas, les employeurs n'ouvriront pas de compte avec des droits d'accès de base pour les employés externalisés.

Prérequis pour l'authentification des utilisateurs au niveau nginx : un programme de création de mot de passe correspondant est requis, tel que apache2-utils (debian, ubuntu) ou httpd-tools (rhel/centos/oracle linux). Différents systèmes d'exploitation sont différents.

Créez un fichier de mot de passe de compte

  • Utilisez la commande sudo htpasswd -c /etc/apache2/.htpasswd user1 pour créer le premier compte, puis appuyez sur la touche Entrée pour saisir le mot de passe, la même commande, il n'y a pas de paramètre -c pour créer un deuxième utilisateur et un deuxième mot de passe, le paramètre -c sert à créer un fichier et il n'est pas nécessaire de créer à nouveau le fichier dans la deuxième commande et les suivantes. sudo htpasswd -c /etc/apache2/.htpasswd user1 创建第一个账户,然后按下 enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。

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

Confirmez que les informations sur le fichier et le compte ont été générées avec succès. Utilisez la commande cat /etc/apache2/.htpasswd pour afficher le contenu du fichier. Il doit s'agir du numéro de compte et du mot de passe crypté, tel que : user1 : $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0 etc.


Configurez nginx pour l'authentification utilisateur de base http

Utilisez la commande auth_basic pour spécifier le nom de la zone protégée. Ce nom sera affiché dans la fenêtre contextuelle du mot de passe du compte. Utilisez la commande auth_basic_user_file pour définir le. .htpasswd avec le chemin des informations du mot de passe du compte. Par exemple, configuration :

location /api {
 auth_basic   "administrator's area";
 auth_basic_user_file /etc/apache2/.htpasswd; 
}
Copier après la connexion
De plus, si un bloc ne veut pas hériter de l'intégralité du système d'authentification, vous pouvez désactiver auth_basic dans le bloc, ce qui signifie que l'authentification des utilisateurs est désactivée. Par exemple de configuration :
server {
 ...
 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;

 location /public/ {
  auth_basic off;
 }
}
Copier après la connexion

Combiner l'authentification avec des restrictions d'accès par adresse IP

  • L'authentification de base http peut être efficacement combinée avec des restrictions d'accès par adresse IP. Vous pouvez implémenter au moins deux scénarios :

  • Les utilisateurs doivent être authentifiés et disposer de droits d'accès IP

Les utilisateurs doivent être authentifiés ou disposer de droits d'accès IP


1 Utilisez les directives d'autorisation et de refus pour autoriser. ou Restreindre l'accès à l'adresse IP spécifiée, par exemple, configurez :

location /api {
 #... deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;
}
Copier après la connexion

2 Pour les réseaux autres que l'adresse 192.168.1.2, seul l'accès à 192.168.1.1/24 est accordé. Remarque : les directives d'autorisation et de refus seront appliquées dans l'ordre défini.

Combinez les restrictions avec la directive satisfont via l'authentification IP et http. Si la directive est définie sur all, l'accès est accordé lorsque le client remplit ces deux conditions. Si la directive est définie sur any, l'accès est accordé si le client remplit au moins une condition. Par exemple, la configuration :

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;
}
Copier après la connexion

Ce qui précède peut être organisé dans un exemple complet :

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; 
  }
 }
}
Copier après la connexion
Comment configurer la page dauthentification utilisateur NginxL'effet final est tel qu'indiqué dans l'exemple ci-dessus. chiffre :

🎜🎜🎜

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!