Serveur Apache HTTP Version 2.4

| Description: | Autorisation en groupe et reconnaissance d'identit� avec base SQL |
|---|---|
| Statut: | Extension |
| Identificateur�de�Module: | authz_dbd_module |
| Fichier�Source: | mod_authz_dbd.c |
| Compatibilit�: | Disponible dans les versions 2.4 et sup�rieures d'Apache |
Ce module fournit des fonctionnalit�s d'autorisation permettant
d'accorder ou de refuser aux utilisateurs authentifi�s l'acc�s �
certaines zones du site web en fonction de leur appartenance � tel
ou tel groupe. Les modules mod_authz_groupfile et
mod_authz_dbm fournissent une fonctionnalit�
similaire, mais ici le module interroge une base de donn�es SQL pour
d�terminer si un utilisateur appartient ou non � tel ou tel groupe.
Ce module propose �galement des fonctionnalit�s de connexion
utilisateur s'appuyant sur une base de donn�es, ce qui peut se r�v�ler
particuli�rement utile lorsque le module est utilis� conjointement avec
mod_authn_dbd.
Ce module s'appuie sur mod_dbd pour sp�cifier le
pilote de la base de donn�es sous-jacente et les param�tres de
connexion, et g�rer les connexions � la base de donn�es.
Reconnaissance d'identit� s'appuyant sur une base de donn�es
Reconnaissance d'identit� c�t� client
Exemple de configurationOutre sa fonction d'autorisation standard consistant � v�rifier l'appartenance � des groupes, ce module permet aussi de g�rer des sessions utilisateur c�t� serveur gr�ce � sa fonctionnalit� de connexion utilisateur en s'appuyant sur une base de donn�es. En particulier, il peut mettre � jour le statut de session de l'utilisateur dans la base de donn�es chaque fois que celui-ci visite certaines URLs (sous r�serve bien entendu que l'utilisateur fournissent les informations de connexion n�cessaires).
Pour cela, il faut definir deux directives Require sp�ciales : Require
dbd-login et Require dbd-logout. Pour les d�tails de
leur utilisation, voir l'exemple de configuration ci-dessous.
Certains administrateurs peuvent vouloir impl�menter une gestion de
session c�t� client fonctionnant de concert avec les fonctionnalit�s de
connexion/d�connexion des utilisateurs c�t� serveur offertes par ce module, en
d�finissant ou en annulant par exemple un cookie HTTP ou un jeton
similaire lorsqu'un utilisateur se connecte ou se d�connecte. Pour
supporter une telle int�gration, mod_authz_dbd exporte
un programme � d�clenchement optionnel (hook) qui sera lanc� chaque fois
que le statut d'un utilisateur sera mis � jour dans la base de donn�es.
D'autres modules de gestion de session pourront alors utiliser ce
programme pour impl�menter des fonctions permettant d'ouvrir et de
fermer des sessions c�t� client.
# configuration de mod_dbd
DBDriver pgsql
DBDParams "dbname=apacheauth user=apache pass=xxxxxx"
DBDMin 4
DBDKeep 8
DBDMax 20
DBDExptime 300
<Directory /usr/www/mon.site/team-private/>
# configuration de mod_authn_core et mod_auth_basic
# pour mod_authn_dbd
AuthType Basic
AuthName Team
AuthBasicProvider dbd
# requ�te SQL de mod_authn_dbd pour authentifier un utilisateur qui se
# connecte
AuthDBDUserPWQuery \
"SELECT password FROM authn WHERE user = %s AND login = 'true'"
# configuration de mod_authz_core pour mod_authz_dbd
Require dbd-group team
# configuration de mod_authz_dbd
AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
# lorsqu'un utilisateur �choue dans sa tentative d'authentification ou
# d'autorisation, on l'invite � se connecter ; cette page doit
# contenir un lien vers /team-private/login.html
ErrorDocument 401 /login-info.html
<Files login.html>
# il n'est pas n�cessaire que l'utilisateur soit d�j� connect� !
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
# le processus de connexion dbd ex�cute une requ�te pour enregistrer
# la connexion de l'utilisateur
Require dbd-login
AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
# redirige l'utilisateur vers la page d'origine (si elle existe)
# apr�s une connexion r�ussie
AuthzDBDLoginToReferer On
</Files>
<Files logout.html>
# le processus de d�connexion dbd ex�cute une requ�te pour
# enregistrer la d�connexion de l'utilisateur
Require dbd-logout
AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
</Files>
</Directory>
| Description: | D�finit si le client doit �tre redirig� vers la page
d'origine en cas de connexion ou de d�connexion r�ussie si un en-t�te
de requ�te Referer est pr�sent |
|---|---|
| Syntaxe: | AuthzDBDLoginToReferer On|Off |
| D�faut: | AuthzDBDLoginToReferer Off |
| Contexte: | r�pertoire |
| Statut: | Extension |
| Module: | mod_authz_dbd |
Utilis�e en conjonction avec Require dbd-login ou
Require dbd-logout, cette directive permet de rediriger
le client vers la page d'origine (l'URL contenue dans l'en-t�te
de requ�te HTTP Referer, s'il est pr�sent). En
l'absence d'en-t�te Referer, la d�finition
AuthzDBDLoginToReferer On sera ignor�e.
| Description: | D�finit la requ�te SQL pour l'op�ration requise |
|---|---|
| Syntaxe: | AuthzDBDQuery requ�te |
| Contexte: | r�pertoire |
| Statut: | Extension |
| Module: | mod_authz_dbd |
La directive AuthzDBDQuery permet de
sp�cifier une requ�te SQL � ex�cuter. Le but de cette requ�te d�pend
de la directive Require en cours de
traitement.
Require dbd-group, elle sp�cifie
une requ�te permettant de rechercher les groupes d'appartenance de
l'utilisateur courant. Ceci correspond � la fonctionnalit� standard
d'autres modules d'autorisation comme
mod_authz_groupfile et
mod_authz_dbm.
La premi�re colonne de chaque enregistrement renvoy� par la requ�te
doit contenir une cha�ne de caract�res correspondant � un nom de
groupe. La requ�te peut renvoyer z�ro, un ou plusieurs
enregistrements.
Require dbd-group AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"
Require dbd-login ou
Require dbd-logout, elle ne refusera jamais l'acc�s,
mais au contraire ex�cutera une requ�te SQL permettant d'enregistrer
la connexion ou la d�connexion de l'utilisateur. Ce dernier doit
�tre d�j� authentifi� avec mod_authn_dbd.
Require dbd-login AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
Dans tous les cas, l'identifiant utilisateur sera transmis comme
param�tre sous la forme d'une simple cha�ne lorsque la requ�te SQL
sera ex�cut�e. Il y sera fait r�f�rence dans la requ�te en utilisant
le sp�cificateur de format %s.
| Description: | D�finit une requ�te pour rechercher une page vers laquelle rediriger l'utilisateur apr�s une connexion r�ussie |
|---|---|
| Syntaxe: | AuthzDBDRedirectQuery requ�te |
| Contexte: | r�pertoire |
| Statut: | Extension |
| Module: | mod_authz_dbd |
Sp�cifie une requ�te SQL optionnelle � utiliser apr�s une
connexion (ou une d�connexion) r�ussie pour rediriger l'utilisateur
vers une URL, qui peut �tre sp�cifique � l'utilisateur.
L'identifiant utilisateur sera transmis comme param�tre sous la
forme d'une simple cha�ne lorsque la requ�te SQL sera ex�cut�e. Il y
sera fait r�f�rence dans la requ�te en utilisant le sp�cificateur de
format %s.
AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"
La premi�re colonne du premier enregistrement renvoy� par la requ�te doit contenir une cha�ne de caract�res correspondant � une URL vers laquelle rediriger le client. Les enregistrements suivants sont ignor�s. Si aucun enregistrement n'est renvoy�, le client ne sera pas redirig�.
Notez que AuthzDBDLoginToReferer l'emporte
sur cette directive si les deux sont d�finies.