J'ai récemment créé une nouvelle instance Amazon EC2 en utilisant Amazon Linux AMI. Quel est le meilleur moyen de forcer un utilisateur accédant au domaine à entrer un nom d'utilisateur/mot de passe avant de permettre l'accès au site?
J'utilise actuellement le serveur HTTP Apache, et certaines ressources indiquent que je dois utiliser un fichier .htaccess, mais je cherchais une explication plus concise.
Si tout ce que vous recherchez, c’est un contrôle d’accès au niveau du serveur (c’est-à-dire, aucune modification de votre application), vous pouvez utiliser l’authentification de base. Ceci est implémenté au niveau du serveur Web Apache et peut être contrôlé répertoire par répertoire si vous le souhaitez à l'aide de fichiers .htaccess.
Voici un lien vers la documentation Apache
http://httpd.Apache.org/docs/2.2/howto/auth.html
Voici un exemple simple de mise en œuvre
Créez un fichier .htaccess avec les éléments suivants dans le dossier à protéger:
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/admin/.htpasswd
Require valid-user
Créez un fichier .htpasswd
dans le même dossier ou, de préférence, dans un dossier situé en dehors de /var/www
.
Pour démonstration, j'ai utilisé un chemin factice ci-dessus. Le fichier .htpasswd doit contenir votre mot de passe salt use this generator pour créer votre fichier .htpasswd
.
En supposant que vous utilisez Ubuntu, vous devez activer le remplacement htaccess via ce fichier: /etc/Apache2/sites-available/default
Remplacez "AllowOverride None" par "AllowOverride All" dans:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
remarque: vous devrez peut-être modifier ssh via la ligne de commande: Sudo nano /etc/Apache2/sites-available/default
Sudo /etc/init.d/Apache2 reload
Vous devez générer un mot de passe nom d'utilisateur + chaîne de mot de passe pour l'authentification et l'écrire dans un fichier.
AuthType Basic AuthName "Require Authentication" AuthUserFile [PATH_TO_FILE]/.htpasswd Require valid-user
Si le mot de passe ne se déclenche pas, vérifiez l'autorisation du fichier .htaccess.
Si l'authentification échoue, vérifiez l'existence du fichier .htpasswd à l'emplacement spécifié. (Assurez-vous que votre compte utilisateur dispose de suffisamment de privilèges sur le fichier .htpasswd pour être lus)
Pour ce faire, vous n'avez pas besoin de redémarrer le serveur.
J'espère que cela t'aides.
générer un mot de passe crypté et l'ajouter au fichier .htpasswd
$ htpasswd -nbm username Password
Entrée du fichier .htaccess
AuthType Basic
AuthName "My Protected Area"
AuthUserFile /absolute/path/to/password/file
Require valid-user
Pour plus de détails, consultez cet article de blog - iCodefy