Restriction d'accès aux pages web

Principe

Par cette méthode tout les fichiers d'un même répertoire seront traites de la même façon, (et par défaut lorsque l'on a accès a un répertoire, on a accès a ses fils). Si le répertoire contient un fichier .htaccess alors un mot de passe sera demande. C'est lui qui contient la description des ayant droits. Les mots de passe sont eux regroupes et stockes a part. Certaines docs que j'ai lues sont réservées sur la qualité du cryptage du mot de passe.

Au début

Créez un répertoire nomme par exemple filtre_accès disons dans votre home directory avec tout les droits en lecture. Dans ce répertoire vous pouvez lancer la commande htpasswd -c -b mesMotsPasse moi monMot qui créera (option -c) le fichier mesMotsPasse contenant les mots de passe, avec un utilisateur moi dont le mot de passe est monMot .
(On pourra se passer de l'option -b si on ne veut pas donner le mot de passe en clair sur la ligne de commande, et par exemple le retrouver dans le .bash_history ).
(Il faut que ce fichier soit accessible en lecture pour le serveur, mais il faut éviter de le mettre dans son public_html ).

Maintenance des mots de passe

On peut directement éditer le fichier .htpasswd pour supprimer des autorisations d'accès. Pour en ajouter de nouvelles, on n'a plus besoin de l'option -c sur la ligne de commande. La même commande sert a modifier un mot de passe.
Bref on tape htpasswd -b mesMotsPasse toi tonMot

Déclaration des autorisations

Dans le répertoire a protéger, on crée a la main un fichier .htaccess dont l'exemple type est :

AuthName Domaine_Partage
AuthUserFile /home/verif/monNom/filtre_acces/mesMotsPasse
AuthGroupFile /dev/null
AuthType Basic

require user moi toi
require user lui

Cas des groupes

On peut créer un fichier qui permet agglomérer plusieurs utilisateur au sein d'un groupe. Ce fichier peut être vu comme une suite de définition de macros. Un exemple est :

deug: moi toi
licence: lui moi

Le mieux est de nommer ce fichier mesGroupes dans le même répertoire que mesMotsPasse. On utilise ces informations en remplaçant les lignes du premier exemple par :

AuthGroupFile /home/verif/monNom/filtre_acces/ mesGroupes

require group deug licence

Restreindre selon le domaine de l'utilisateur

L'exemple typique est d'autoriser l'acces au sein du labo et de l'interdire de l'exterieur. Dans ce cas on peut remplacer le require par une sequence de deny et de allow dans le .htaccess :

order deny,allow
deny from all
allow from liafa.jussieu.fr

Tentative d'accès non autorisée

Si quelqu'un n'a pas le bon mot de passe, on peut rediriger le navigateur sur une page appropriée, en ajoutant au fichier .htaccess :

ErrorDocument 401 /~monNom/Erreur/index.html
ErrorDocument 405 /~monNom/Erreur/index.html

Pour en savoir plus

Tout ce qui est sur cette page vient de la

Mon essai a moi

essaye de rentrer ici .
Le username est "toi" ainsi que le mot de passe.