5-Les directives d'authentification
5-1 le fichier .htaccess
Il permet de surcharger en partie les directives d'Apache et d'affiner les directives
d'authentification du fichier httpd.conf
le fichier .htaccess doit être placé dans le dossier du serveur qui doit être impacté
par les directives. Les dossier enfants héritent des configurations.
Avant d'utiliser un fichier .htaccess, il faut s'assurer :
-que le fichier httpd.conf nomme ainsi ces fichiers de configuration :
AccessFileName .htaccess
-que le dossier conteneur autorise ce type de configuration par la directive :
<Directory "/dossier_conteneur">
AllowOverride All
</Directory>
ou
<Directory "/dossier_conteneur">
AllowOverride Authconfig
</Directory>
5-2-Directives de protections simple
les directives de protection ou d'autorisation sont Allow et Deny.
Elles peuvent être placée dans le fichier de configuration httpd.conf ou dans un
.htaccess
leur ordre de citation dans la directive Order est importante puisqu'elle défini leur
ordre de prise en compte par le serveur
Order allow,deny
la directive deny surcharge la directive allow
Order deny,allow
la directive allow surcharge la directive deny
ex:
Order allow,deny
Allow from 127.0.0.1
Deny from all
5-3-Directives de protection par login/mot de passe
Le fichier .htaccess peut s'appuyer sur un fichier contenant des couples login:
password pour permettre un accès authentifié.
Ce fichier nommé habituellement .htpasswd peut être crée sous Unix avec
l'exécutable htpasswd (ou sous Win32 avec l'exécutable htpasswd.exe)
ex:
C:\>htpasswd -c C:/.htpasswd login
Le -c permet de créer le fichier .htpasswd
L'éxécutable demandera alors le mot de passe associé au login et créera le fichier.
Pour rajouter ou modifier un user, il suffit de retaper cette commande sans le -c
ex:
C:\>htpasswd C:/.htpasswd new_login
A NOTER : ce fichier doit être placé en amont du dossier racine du serveur et doit
être protégé dans un dossier dont l'accès est interdit (cf chapitre 5-2)
Dans le fichier .htaccess, on placera alors les directives suivantes :
AuthName "zone"
AuthUserFile C:/.htpasswd
AuthGroupfile /dev/null
AuthType Basic
require valid-user
#ou
require login1 login2
AuthName correspond au nom de la zone à protéger
AuthUserFile correspond au chemin d'acces au fichier de configuration des mots
de passe
AuthUserGroup correspond au chemin d'accès au fichier de configuration des
groupes autorisés
AuthType correspond au type d'authentification HTTP
require est la directive stipulant quels utilisateurs sont autorisés à accéder à la
zone
Il est possible de mixer les méthodes d'authentification
ex:
AuthName "zone"
AuthUserFile C:/.htpasswd
AuthGroupfile /dev/null
AuthType Basic
Order deny,allow
Deny from all
Allow from 127.0.0.1
require valid-user
satisfy all
</Limit>
ps: si tu vois des smilies remplace par :