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
|
-
Domaine_Partage est un nom qui apparaîtra
dans la boite de dialogue (pas d'espaces !).
- AuthUserFile est le chemin d'accès complet a votre
fichier mesMotsPasse
- AuthGroupFile on verra dans la section suivante que l'on
peut regrouper les utilisateurs.
- AuthType ...pas d'info pour le moment ?
- les lignes avec require déclarent la liste des
utilisateurs autorises, (ou des groupes d'utilisateurs). La commande
require valid-user donne une autorisation a toutes les
personnes ayant un mot de passe.
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.