Apache - Accès sécurisé (avec authentification) à des ressources

L'accès au répertoire ou document nécessite une identification du user et une athentification via mot de passe
(User Authentication)

2 étapes:

Création des users / passwords

On peut utiliser un fichier ASCII 'plat' contenant nom des users et mots de passe chiffrés associés ou dans le cas ou l'on a beaucoup d'utilisateurs, utiliser un fichier optimisé de type dbm (fichier structuré standard, avec accès rapide par clé)

L'utilitaire htpasswd permlet de créer et mettre à jour le fichier des mots de passe (appelé coventionnellement '.htpasswd' :
$htpasswd -c /tmp/passwd_apache marco
crée le nouveau fichier de mots de passe dans '/tmp' et y insere un nouvel utilisateur 'marco' avec mot de passe à saisir

$htpasswd -b /tmp/passwd_apache gostan doudou
$htpasswd -b /tmp/passwd_apache laroque loulou

ajoute 'gostan' et 'laroque' dans le fichier avec mot de passe dans la foulée respectivement : 'doudou' et 'loulou'

si on visualise /tmp/passwd_apache on voit désormais :

marco:zedf 77gh
gostan:jhgf6 fVFd
laroque:987JHGrtd

On se sert de l'utilitaire livré avec apache : dbmanage, un peu sur le même principe que htpasswd sauf que le résultat est indexé...

pour creer unen etrée : dbmmanage /usr/local/etc/httpd/usersdbm adduser martin hamster

pour visualiser le contenu : dbmmanage /usr/local/etc/httpd/usersdbm view

Configuration de la restriction d'accès

la restriction peut se faire de 2 façons :

Par défaut ce fichier s'appelle .htaccess
Il est possible d'utiliser un autre nom de fichire d'autorisation avec la directive AccessFileName :
AccessFileName .mes_autorisation

Il faut d'abord préciser la portée du fichier externe des autorisations, ou en d'autres termes préciser si .htaccess est non utilisé, utilisé (et dans ce cas pour quelles directives)
Dans httpd.conf positionner si nécessaire :
AllowOverride All
pour autoriser le fichier .htaccess à positionner TOUTES les restrictions utiles.

AllowOverride None indique à Apache d'ignorer totalement la présence d'un fichier .htaccess

Les directives principalement utiles sont décrites ci-après:

directive valeurs possibles signification
AuthName "ce que vous voulez..." nom de l'espace à sécuriser
AuthType basic
digest
type d'autentifucation simple ou plus sécurisé
AuthUserFile emplacement_du_fichier_users_passwords donne l'emplacement et le nom du fichier .htpassword
require valid-user
user nom_user1 nom_user2...
donne la liste des users autorisées après autentification. valid-user indique tous les users

exemples de contenu du fichier .htaccess :

AuthName "prive_dd"
AuthType Basic
AuthUserFile /tmp/passwd_apache
require valid-user

AuthName "chez_moi"
AuthType Digest
AuthDBMUserFile /tmp/mes_users_dbm
require user laroque gostan

noter qu'on utilise dans ce deuxième exemple, la directive AuthDBMUserFile au lieu de AuthUserFile pour spécifier un fichier indexé dbm.



modifié
le 20/11/2006

Ecrire a DD
ecris
moi


les forums techniques Oracle

mon BLOG Oracle,
en Francais
connaitre DD
l'autre vie
de DD

mon CV

trucs
et astuces

JOBs Oracle
du jour
Homepage "Tout sur Oracle"
Mon site :
Tout sur Oracle (et le web)
Copyright (C) 2002
Utilisation de ces documents