2 étapes:
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
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.
|