ESPE Aix-Marseille  Formations et ressources pour les TICE - ESPE Aix-Marseille

subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link | subglobal3 link
subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link | subglobal4 link
subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link | subglobal5 link
subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link
subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

Utiliser un fichier .htaccess pour restreindre l’accès à un répertoire de site web

Imprimer cet article

Principe de fonctionnement

Afin de restreindre l’accès à un répertoire de site web, on peut utiliser une caractéristique propre aux serveurs web Apaches : les fichiers .htaccess. Ces fichiers (de type texte) doivent êtres placés dans les répertoires à protéger : lorsque le serveur apache doit extraire une page HTML du dossier, il constate la présence du fichier .htaccess et génère une boite de dialogue de demande de mot de passe.

La vérification du login + mot de passe se fait à partir d’un fichier .htusers qui stocke la liste des utilisateurs et de leurs mots de passe. On peut compléter cette configuration avec un fichier .htgroups qui permet de constituer des groupes d’utilisateurs et de configurer l’accès pour un groupe (c’est à dire tous les utilisateurs ayant un compte valide dans .htusers et inclus dans le groupe).

De façon complémentaire, il semble évident que les fichiers .htusers et .htgroups doivent êtres stockés dans un dossier centralisé lui-même protégé par un .htaccess (!).

Exemple de fichier .htaccess :

La syntaxe d’un fichier .htaccess est la suivante : exemple pour protéger le répertoire /stocks, accès réservé aux utilisateurs administrateurs admin1 et admin2 ou au groupe des administrateurs :

  1. # fichier .htaccess pour le répertoire www/stocks
  2. AuthType Basic
  3. AuthName "Répertoire réservé aux administrateurs de l'intranet"
  4. AuthUserFile /var/www/tech/.htusers
  5. AuthGroupFile /var/www/tech/.htgroups
  6. require user admin1 admin2
  7. # require group admins # alternative pour l'utilisation d'un groupe

Explications :
# met en commentaire la suite de la ligne
AuthType Basic => type d’authentification utilisée
AuthName "Répertoire réservé aux administrateurs de l’intranet" => message envoyé pour information lorsqu’un utilisateur se connecte
AuthUserFile /var/www/tech/.htusers => chemin du fichier des utilisateurs .htusers. Ce chemin est absolu par rapport à la machine, ici on suppose que l’on utilise le sous-répertoire /tech du répertoire www. [1] Il faudra donc connaitre ce chemin absolu : cf l’aide technique de votre hébergeur et/ou sa FAQ hébergement web ou un simple fichier test.php placé dans le répertoire avec dedans pour récupérer la valeur de DOCUMENT_ROOT :

  1. <?php
  2.     phpinfo();
  3. ?>

AuthGroupFile /var/www/tech/.htgroups => chemin absolu du fichier de définition des groupes .htgroups
require user admin1 admin2 => le nom des utilisateurs autorisés à l’accès, ici admin1 et admin2 (si login + mdp valides...)
require group admins => alternative pour l’utilisation d’un groupe d’utilisateurs, ici le groupe admins.

Exemple de fichier des utilisateurs .htusers

Ce fichier sera placé dans le répertoire défini par la directive AuthUserFile

  1. # Fichier d'utilisateurs pour le site intranet
  2. admin1:secret
  3. admin2:secret
  4. prof1:mdp_prof1
  5. prof2:mdp_prof2
  6. prof3:mdp_prof3

Ce fichier est constitué par les paires login:mot_de_passe de tous les comptes ayant accès à une zone protégée. Il sera donc unique pour l’ensemble de l’intranet. Pour un serveur sous Linux la sécurité est augmentée par le cryptage des mots de passe (alors qu’ils sont en clair sous Windows...), il est donc nécessaire d’utiliser un outils de cryptage pour générer les mots de passe. On peut utiliser l’application en ligne suivante : http://home.golden.net/generator/ pour générer les lignes du fichier .htusers.

Exemple de fichier des groupes .htgroups

Ce fichier sera placé dans le répertoire défini par la directive AuthUserFile :

  1. # Fichier de groupe pour le site intranet
  2. admins: admin1 admin2
  3. profs: prof1 prof2 prof3

Notes

[1] A priori, si votre hébergeur vous autorise l’utilisation de répertoires en dehors du www (typiquement répertoire de publication d’apache) c’est nettement mieux puisque cela évite le risque que le fichier des utilisateurs soit potentiellement accessible depuis internet...

clem – actualisé le dimanche 11 décembre 2011.

©2008 IUFM Aix-Marseille: mentions légales | Plan du site | Contact | Espace privé | Réalisé avec logo SPIP