Haut gauche
Spacer
Sommaire
Services
Aide
Aide générale
Aide création
Aide CGI
Aide recherche
Références
Spacer
Spacer
English version
Logo Serveurs.Net Haut droit

Utilisation du module d'authentification avec MySQL

Le module d’authentification avec MySQL permet d’obtenir les paramètres d’authentification à partir d’une base MySQL. Pour cela il faut :

  1. Mettre en place le module mod_auth_mysql
  2. Créer les informations nécessaires dans une base MySQL
  3. Spécifier les pages que l’on veut protéger.

Mise en place du module Apache

L'adjonction du module au serveur apache implique d'une part d'avoir le module et d'autre part de dire à apache où ce situe le module.

Nous tenons à votre disposition une version compillée du module pour Apache sur Window$. Vous pouvez aussi télécharger le code source en local ou sur le site d'origine "http://bourbon.netvision.net.il/mod_auth_mysql/" [Le site n'existe plus :-( ].

Ensuite, il faut placer la dll dans le répertoire : "C:\Program Files\Apache Group\Apache\modules\".

Enfin, il faut ajouter quelques informations dans le fichier de configuration de Apache (httpd.conf) :

LoadModule auth_mysql_module modules/ApacheModuleAuthMysql.dll

À ajouter dans la section de chargement des modules. Pour dire à Apache où est situé le module.

#
# MySQL Authentication module :
# Auth_MySQL_Info <host> <user> <password>
Auth_MySQL_Info localhost root secret

À ajouter n'importe où ( section globale) afin de préciser au module sur quel serveur aller chercher les informations.

Attention, l'utilisateur doit avoir au moins un accès en lecture à la base dans laquelle les informations d'authentification sont.

Création des informations nécessaires dans MySQL

Il faut créer une base qui va contenir les information de login, mot de passe et groupe des différents utilisateurs. Il n’est pas nécessaire de créer une base spécifique. Dans l’exemple qui suit nous créons une base spécifique mais il est évidemment possible d’utiliser des bases existantes.

Créer le base http_auth. Dans cette base créer la table mysql_auth avec la structure suivante :

create table mysql_auth (
username char(25),
passwd char(25),
groups char(25),
primary key (username)
);

Remplir ensuite la base avec les informations nécessaires.

Spécification des pages à protéger

1. Si vous voulez utiliser un serveur MySQL localiser ailleur que sur « localhost » et/ou désirez spécifier un utilisateur différent de celui spécifier pour Apache et/ou désirez spécifier un mot de passe pour cette utilisateur, il faut ajouter la ligne suivate dans le fichier httpd.conf :

Auth_MySQL_Info <host> <utilisateurr> <mot de passe>

2.       Si vous utiliser principalement la même base pour toutes les authentifications vous pouvez également ajouter la ligne suivante dans votre fichier httpd.conf :

Auth_MySQL_General_DB <database_name>

3. Créer, ou mettre à jour un fichier «.htaccess» dans le répertoire que l’on veut « protéger ». Voici la liste des paramètres utilisables qui concernent mod_auth_mysql :

Auth_MySQL_DB <nom_de_la_base>

Le nom de la base à utiliser. Si la directive Auth_MySQL_General_DB n’a pas été spécifier avant, dans le fichier httpd.conf, vous devez utiliser cette directive.

Exemple :

Auth_MySQL_DB http_auth

Auth_MySQL_Password_Table <nom_de_la_table_des_mots_de_passe>

Le nom de la table MySQL qui contient le nom d’utilisateur et son mot de passe. Par défaut, c’est « mysql_auth »

Exemple :

Auth_MySQL_Password_Table http_auth

Auth_MySQL_Group_Table <nom_de_la_table_des_groupes>

Le nom de la table MySQL qui contient le nom d’utilisateur et son groupe. Par défaut, c’est « mysql_auth »

Exemple :

Auth_MySQL_Group_Table http_auth

Auth_MySQL_Username_Field <nom_du_champ_utilisateur>

Le nom du champ contenant le nom de l’utilisateur. Par défaut c’est « username ».

Exemple :

Auth_MySQL_Username_Field username

Auth_MySQL_Password_Field <nom_du_champ_mot_de_passe>

Le nom du champ contenant le nom de l’utilisateur. Par défaut c’est « passwd ».

Exemple :

Auth_MySQL_Password_Field passwd

Auth_MySQL_Group_Field <nom_du_champ_groupe>

Le nom du champ contenant le groupe de l’utilisateur. Par défaut c’est « groups ». Attention ne pas utiliser « group » comme nom de champ car c’est un mot réservé de SQL.

Exemple :

Auth_MySQL_Group_Field groups

Auth_MySQL_Empty_Passwords on/off

Permet d’autoriser ou non les mots de passe vide. Si le mot de passe est vide (égale à ‘’) et que cette option est sur « on », les utilisateurs pourrons accéder aux pages en spécifiant uniquement leur nom sans vérification du mot de passe. Si l’option est sur « off », l’accès leur sera refusé. Le défaut est « on ».

Exemple :

Auth_MySQL_Empty_Passwords off

Auth_MySQL_Encryption_Types [Plaintext, Crypt_DES, MySQL]

Cette directive indique au module d’authentification quelles type de chiffrement utiliser. Elle est précédente sur les directives Auth_MySQL_Scrambled_Passwords et Auth_MySQL_Encrypted_Passwords si elle apparaît après celles-ci. Plus d’un type de chiffrement peu-être spécifier afin de dire au module de vérifier les mots de passe avec plusieurs schéma de chiffrement.

Exemple :

Auth_MySQL_Encryption_Types Plaintext Crypt_DE

Auth_MySQL_Encrypted_Passwords on/off

Permet d’utiliser ou non les mots de passe chiffrés UNIX® DES standard. Si cette option est sur « on », le module s’attend à ce que le champ mot de passe contienne des mots de passe chiffrés suivant le schéma UNIX® DES standard ( 2 octets pour le sel puis 11 octets de données chiffrées). Si cette option est sur « off », les mots de passe attendus sont en clair a moins que l’option Auth_MySQL_Scrambled_Passwords ne soit « on ».

L’utilisation de cette directive est déconseillé. Utiliser Auth_MySQL_Encryption_Types à la place. Par défaut, cette directive est active.

Exemple :

Auth_MySQL_Encrypted_Passwords on

Auth_MySQL_Scrambled_Passwords on/off

Permet d’utiliser ou non les mots de passe chiffrés à l’aide de la routine password() de MySQL. Si cette option est sur « on », le module s’attend à ce que le champ mot de passe contienne des mots de passe chiffrés avec la routine password() de MySQL. Si cette option est sur « off », les mots de passe attendus sont en clair a moins que l’option Auth_MySQL_Encrypted_Passwords ne soit « on ».

L’utilisation de cette directive est déconseillé. Utiliser Auth_MySQL_Encryption_Types à la place. Par défaut, cette directive est inactive.

Exemple :

Auth_MySQL_Scrambled_Passwords on

Auth_MySQL_Authoritative on/off

Permet d’utiliser ou non d’autres modules d’authentification après que l’utilisateur ce soit authentifier avec succès avec le module d’authentification MySQL. Par défault cette directive est active. C’est à dire que l’authentification n’est pas soumise aux autres modules.

Exemple :

Auth_MySQL_Authoritative on

Auth_MySQL_Non_Persistent on/off

En activant cette option, on stipule au module de clore la connexion à la base MySQL après chaque requête d’authentification. Il ne semble pas y avoir de raison d’utiliser cette directive à moins que votre plate-forme ne supporte pas un nombre important de connexion à MySQL simultanément (une mauvaise gestion des descripteurs de fichier peut entraîner cela). Vous devriez augmenter le nombre de connexions simultanées autorisées et laisser cette option désactivée. Par défaut l’option est inactive.

Exemple :

Auth_MySQL_Non_Persistent off

Auth_MYSQL on/off

Permet d’activer ou non l’authentification avec MySQL. Si c’est inactif, l’authentification MySQL déléguera l’authentification aux autres modules d’authentification. Si cette option est activée et qu’une base de donnée à été donné, le module d’authentification MySQL sera utilisé pour l’authentification.

Exemple :

Auth_MYSQL on

 

Spacer
Bas
© 1999-2016 Serveurs.Net Un service Serveurs.Net.