Apache 2 mod_auth_mysql

Installation du paquet

aptitude install libapache2-mod-auth-mysql

Activation du module

a2enmod auth_mysql

Fichier de configuration pour la connexion à MySQL :
/etc/apache2/conf.d/auth_mysql.conf 1)

<IfModule mod_auth_mysql.c>
  auth_mysql_info 127.0.0.1 MySQL_User MySQL_User_pass
  auth_mysql_general_db MySQL_DB
</IfModule>

Exemple pour un vhost donné:

...
 
<Directory /home/bob/protected>
  Options FollowSymLinks
  AllowOverride None
 
  AuthType Basic
  AuthName "nothing"
  AuthBasicAuthoritative off           # Permet à une autre autorité de prendre la relève en cas de défaillance de mysql. 
  AuthUserFile /dev/null               # ''
  Auth_MySQL_Authoritative on
  Auth_Mysql_Encryption_Types SHA1Sum  # Type de cryptage des mots de passe en bdd. 
  Require valid-user                   # user, group, valid-user
</Directory>
 
...

Note au sujet du “AuthType Basic”:

Le module ne peut fonctionner qu'avec un authtype “Basic”, donc les mots de passe bien que chiffrés seront transmit en clair sur le réseau. Il est fortement conseillé d'utiliser une connexion chiffrée pour toute utilisation de ce module.

création de la table mysql:

CREATE TABLE IF NOT EXISTS `mysql_auth` (
  `username` char(25) NOT NULL,
  `passwd` char(40) DEFAULT NULL,
  `groups` char(25) DEFAULT NULL,
  PRIMARY KEY (`username`)
)
 
-- Attention à la taille du champ pour les mots de passe, suivant l'algo choisis. MD5 -> 32, SHA1 -> 40


information Debian: http://packages.debian.org/fr/stable/libapache2-mod-auth-mysql

1)
note: Ceci pour une configuration général. Chaque 'Directory' d'un VirtualHost peut posséder ses propres informations de connexion.