Maison > Opération et maintenance > Nginx > Comment utiliser Nginx pour implémenter un contrôle d'accès basé sur l'authentification des utilisateurs

Comment utiliser Nginx pour implémenter un contrôle d'accès basé sur l'authentification des utilisateurs

PHPz
Libérer: 2023-08-02 16:25:22
original
1308 Les gens l'ont consulté

Comment utiliser Nginx pour implémenter un contrôle d'accès basé sur l'authentification des utilisateurs

Nginx est un serveur HTTP et proxy inverse hautes performances, largement utilisé pour créer des applications et des services Web évolutifs. En plus de ses excellentes performances, Nginx propose également de nombreuses fonctionnalités, dont le contrôle d'accès basé sur l'authentification des utilisateurs. Dans cet article, nous apprendrons comment implémenter ce contrôle d'accès à l'aide de Nginx et fournirons quelques exemples de code.

  1. Installer Nginx

Tout d'abord, nous devons installer Nginx. Vous pouvez trouver les instructions d'installation pour votre système d'exploitation sur le site officiel (https://nginx.org/). Une fois l'installation terminée, assurez-vous que Nginx a démarré avec succès. Vous pouvez vérifier l'état de Nginx à l'aide de la commande suivante :

sudo systemctl status nginx
Copier après la connexion
  1. Créer un fichier de mot de passe utilisateur

Nginx utilise un fichier de mot de passe pour stocker les informations d'identification de l'utilisateur. Nous pouvons utiliser l'outil htpasswd pour créer ce fichier. Si htpasswd n'est pas installé sur votre système, vous pouvez l'installer à l'aide de la commande suivante :

sudo apt-get install apache2-utils
Copier après la connexion

Ensuite, créez un fichier de mot de passe à l'aide de la commande htpasswd et ajoutez des utilisateurs. Par exemple, nous allons créer un fichier de mots de passe appelé .htpasswd et ajouter un utilisateur nommé user. Tapez la commande suivante dans le terminal :

sudo htpasswd -c /etc/nginx/.htpasswd user
Copier après la connexion

La commande vous demandera le mot de passe de votre utilisateur. N'oubliez pas que chaque utilisateur a besoin de son propre mot de passe.

  1. Configurer Nginx

Nous devons maintenant configurer Nginx pour activer le contrôle d'accès basé sur l'authentification des utilisateurs. Nous redirigeons les demandes des utilisateurs non autorisés vers une page 401 non autorisée. Ouvrez le fichier de configuration Nginx et apportez les modifications suivantes.

sudo nano /etc/nginx/sites-available/default
Copier après la connexion

Dans le bloc serveur, ajoutez le code suivant :

location / {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    try_files $uri $uri/ =404;
}
Copier après la connexion

Après avoir enregistré et fermé le fichier, rechargez la configuration Nginx :

sudo systemctl reload nginx
Copier après la connexion
  1. Test du contrôle d'accès

Maintenant, vous avez mis en place un contrôle d'accès basé sur l'authentification des utilisateurs . Vous pouvez tester cela en utilisant n'importe quel navigateur prenant en charge l'authentification HTTP de base. Lorsque vous essayez d'accéder à une page protégée, le navigateur vous demandera vos informations d'identification.

Si vous utilisez le navigateur Chrome, une fenêtre contextuelle s'affichera vous demandant de saisir votre nom d'utilisateur et votre mot de passe.

Si vous utilisez un autre navigateur, il peut afficher le champ de saisie des informations d'identification sous forme de formulaire. Quel que soit le navigateur que vous utilisez, vous devriez pouvoir authentifier l'utilisateur et accéder à la page protégée.

  1. Options de configuration avancées

Nginx fournit également des options de configuration avancées pour un contrôle d'accès plus complexe. Par exemple, vous pouvez activer ou désactiver l'authentification utilisateur sur un chemin d'URL spécifié. Vous pouvez utiliser la directive restreindre l'accès pour y parvenir. Voici un exemple de configuration :

location /admin {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    allow 192.168.1.0/24;
    deny all;
}
Copier après la connexion

Cette configuration permettra uniquement aux adresses IP du sous-réseau 192.168.1.0/24 d'accéder au contenu sous le chemin /admin, tandis que les autres adresses IP se verront refuser l'accès.

En plus d'utiliser l'authentification de base, Nginx prend également en charge l'utilisation d'autres méthodes d'authentification telles que les certificats SSL et OAuth pour mettre en œuvre le contrôle d'accès.

Conclusion

Le contrôle d'accès basé sur l'authentification des utilisateurs peut être facilement mis en œuvre à l'aide de Nginx pour garantir que seuls les utilisateurs autorisés peuvent accéder au contenu protégé dans les applications Web. Avec les étapes ci-dessus, vous pouvez commencer à sécuriser votre application Web et empêcher tout accès non autorisé.

Exemple de code :

server {
    listen       80;
    server_name  example.com;

    location / {
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
        try_files $uri $uri/ =404;
    }
}
Copier après la connexion

Veuillez noter que l'exemple ci-dessus montre uniquement comment configurer Nginx pour le contrôle d'accès de base. Dans des situations réelles, vous devrez peut-être configurer des ajustements de configuration et déboguer en fonction de vos besoins spécifiques.

Ce qui précède est une introduction à la façon d'utiliser Nginx pour implémenter un contrôle d'accès basé sur l'authentification des utilisateurs. J'espère que cet article pourra vous aider à comprendre et à appliquer les puissantes fonctions de Nginx en matière de contrôle d'accès.

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:php.cn
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