Maison  >  Article  >  Opération et maintenance  >  Comment configurer la page d'authentification utilisateur Nginx

Comment configurer la page d'authentification utilisateur Nginx

PHPz
PHPzavant
2023-05-12 08:10:112407parcourir

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; 
}
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;
 }
}

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;
}

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;
}

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; 
  }
 }
}
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer