Snippet : Protéger un dossier avec authentification, sauf pour une IP

Voici un snippet que j’ai eu du mal à trouver au complet, servant à protéger l’accès à un dossier sous Apache avec un fichier .htaccess et un fichier .htpasswd, sauf pour une IP qui sera authentifiée automatiquement.

Pratique pour une preprod de site web, par exemple.

Order deny,allow
Deny from all
# Le chemin complet du fichier htaccess
AuthUserFile /var/www/projet/.htpasswd
# Le nom qui s'affichera pour les visiteurs
AuthName "Preprod Projet Internet" 
AuthType Basic 
Require valid-user 
# Votre IP ici
Allow from 8.8.8.8
Satisfy Any

Si comme moi vous passez derrière un reverse proxy comme Nginx, l’IP n’est pas transmise directement. Il faudra alors tricher en rajoutant quelques lignes :

# Votre IP ici
SetEnvIF X-Forwarded-For "8.8.8.8" AllowIP
Order deny,allow
Deny from all
AuthUserFile /var/www/projet/.htpasswd
AuthName "Preprod Projet Internet" 
AuthType Basic 
Require valid-user 
# La ligne permettant de récuperer l'IP transmise
Allow from env=AllowIP
# Votre IP ici, au cas où vous avez un accès via Apache
Allow from 8.8.8.8
Satisfy Any

Les sources qui m’ont le plus aidé : Ask Apache & freistil Help Center

Partager cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Pas mal pour protéger et autoriser certains user à des admins (genre dans wordpress pour l’accés administrateur) ^^

  • excellente outil pour protéger les dossiers admin. Mais si on se déplace beaucoup il faut penser a configurer plusieurs adresses IP