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.
 Les directives Require
 Les directives Require Reconnaissance d'identit� s'appuyant sur une base de donn�es
 Reconnaissance d'identit� s'appuyant sur une base de donn�es Reconnaissance d'identit� c�t� client
 Reconnaissance d'identit� c�t� client Exemple de configuration
 Exemple de configurationLes directives Require d'Apache permettent,
    au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
    est bien autoris� � acc�der � une ressource. mod_authz_dbd ajoute
    les types d'autorisation dbd-group,
    dbd-login et dbd-logout.
A partir de la version 2.4.8, les directives require DBD supportent les expressions.
Cette directive permet de sp�cifier � quel groupe un utilisateur doit appartenir pour obtenir l'autorisation d'acc�s.
      Require dbd-group team
      AuthzDBDQuery "SELECT group FROM authz WHERE user = %s"
Cette directive permet de sp�cifier une requ�te � ex�cuter pour indiquer que l'utilisateur s'est authentifi�.
      Require dbd-login
      AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"
Cette directive permet de sp�cifier une requ�te � ex�cuter pour indiquer que l'utilisateur s'est d�connect�.
      Require dbd-logout
      AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
Outre 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 fournisse 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 Refererest 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.