<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_authn_socache

Langues Disponibles:  en  |  fr 

Description:G�re un cache des donn�es d'authentification pour diminuer la charge des serveurs d'arri�re-plan
Statut:Base
Identificateur�de�Module:authn_socache_module
Fichier�Source:mod_authn_socache.c
Compatibilit�:Versions 2.3 et ult�rieures

Sommaire

Maintient un cache des donn�es d'authentification afin que la recherche d'un nouveau serveur d'arri�re-plan pour chaque requ�te authentifi�e ne soit plus n�cessaire.

Directives

Sujets

top

Mise en cache des donn�es d'authentification

Certains utilisateurs qui mettent oeuvre une authentification lourde s'appuyant par exemple sur des requ�tes SQL (mod_authn_dbd) ont signal� une charge induite inacceptable sur leur fournisseur d'authentification. Cela se produit typiquement dans le cas o� une page HTML contient des centaines d'objets (images, scripts, pages de styles, media, etc...), et o� une requ�te pour cette page g�n�re des centaines de sous-requ�tes � effet imm�diat pour des contenus suppl�mentaires authentifi�s.

Pour r�soudre ce probl�me, mod_authn_socache fournit une solution qui permet de maintenir un cache des donn�es d'authentification.

top

Utilisation

Le cache d'authentification doit �tre utilis� lorsque les requ�tes d'authentification induisent une charge significative sur le serveur, le serveur d'arri�re-plan ou le r�seau. Cette mise en cache n'apportera probablement aucune am�lioration dans le cas d'une authentification � base de fichier (mod_authn_file) ou de base de donn�es dbm (mod_authn_dbm) car ces m�thodes sont de par leur conception rapides et l�g�res (la mise en cache peut cependant s'av�rer utile dans le cas o� le fichier est situ� sur un montage r�seau). Les fournisseurs d'authentification bas�s sur SQL ou LDAP ont plus de chances de tirer parti de cette mise en cache, en particulier lorsqu'un probl�me de performances est d�tect�. mod_authnz_ldap g�rant son propre cache, seul mod_authn_dbd est concern� par notre sujet.

Les principales r�gles � appliquer pour la mise en cache sont :

  1. Inclure le fournisseur pour lequel vous voulez effectuer une mise en cache dans une directive AuthnCacheProvideFor.
  2. Mettre socache avant le fournisseur pour lequel vous voulez effectuer une mise en cache dans votre directive AuthBasicProvider ou AuthDigestProvider.

Voici un exemple simple permettant d'acc�l�rer mod_authn_dbd et utilisant dbm comme moteur de la mise en cache :

<Directory /usr/www/myhost/private>
    AuthType Basic
    AuthName "Cached Authentication Example"
    AuthBasicProvider socache dbd
    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
    AuthnCacheProvideFor dbd
    AuthnCacheContext dbd-authn-example
    AuthnCacheSOCache dbm
    Require valid-user
</Directory>
    
top

La mise en cache avec les modules tiers

Les d�veloppeurs de modules doivent savoir que la mise en cache avec mod_authn_socache doit �tre activ�e dans leurs modules. La fonction simple de l'API ap_authn_cache_store permet de mettre en cache les donn�es d'authentification qu'un fournisseur vient de rechercher ou de g�n�rer. Vous trouverez des exemples d'utilisation � r957072, o� trois fournisseurs authn sont activ�s pour la mise en cache.

top

AuthnCacheContext Directive

Description:Sp�cifie une cha�ne de contexte � utiliser dans la cl� du cache
Syntaxe:AuthnCacheContext directory|server|cha�ne-personnalis�e
D�faut:directory
Contexte:r�pertoire
Statut:Base
Module:mod_authn_socache

Cette directive permet de sp�cifier une cha�ne � utiliser avec le nom d'utilisateur fourni (et le domaine d'authentification - realm - dans le cas d'une authentification � base de condens�s) lors de la construction d'une cl� de cache. Ceci permet de lever l'ambigu�t� entre plusieurs noms d'utilisateurs identiques servant diff�rentes zones d'authentification sur le serveur.

Il y a deux valeurs sp�ciales pour le param�tre : directory, qui utilise le contexte de r�pertoire de la requ�te comme cha�ne, et server, qui utilise le nom du serveur virtuel.

La valeur par d�faut est directory, qui est aussi la d�finition la plus courante. Ceci est cependant loin d'�tre optimal, car par exemple, $app-base, $app-base/images, $app-base/scripts et $app-base/media poss�deront chacun leur propre cl� de cache. Il est pr�f�rable d'utiliser le fournisseur de mot de passe : par exemple un fichier htpasswd ou une table de base de donn�es.

Les contextes peuvent �tre partag�s entre diff�rentes zones du serveur, o� les donn�es d'authentification sont partag�es. Ceci est cependant susceptible de cr�er des trous de s�curit� de type cross-site ou cross-application, et cette directive n'est donc pas disponible dans les contextes .htaccess.

top

AuthnCacheEnable Directive

Description:Active la mise en cache de l'authentification en tout endroit
Syntaxe:AuthnCacheEnable
Contexte:configuration du serveur
AllowOverride:None
Statut:Base
Module:mod_authn_socache

Normalement, cette directive n'est pas n�cessaire : l'activation est implicite si la mise en cache de l'authentification a �t� activ�e en tout autre endroit du fichier apache2.conf. Par contre, si cette mise en cache n'a pas �t� activ�e, par d�faut, elle ne sera pas initialis�e, et ne sera donc pas disponible dans un contexte de fichier .htaccess. Cette directive permet d'�tre s�r que la mise en cache a bien �t� activ�e et pourra donc �tre utilis�e dans les fichiers .htaccess.

top

AuthnCacheProvideFor Directive

Description:Sp�cifie le fournisseur pour lequel on veut effectuer une mise en cache
Syntaxe:AuthnCacheProvideFor fournisseur-authn [...]
D�faut:None
Contexte:r�pertoire, .htaccess
AllowOverride:AuthConfig
Statut:Base
Module:mod_authn_socache

Cette directive permet de sp�cifier un ou plusieurs fournisseurs pour le(s)quel(s) on veut effectuer une mise en cache. Les donn�es d'authentification trouv�es par un fournisseur non sp�cifi� dans une directive AuthnCacheProvideFor ne seront pas mises en cache.

Par exemple, pour mettre en cache les donn�es d'authentification trouv�es par mod_authn_dbd ou par un fournisseur personnalis� mon-fournisseur, et ne pas mettre en cache celles trouv�es par les fournisseurs l�gers comme file ou dbm :

AuthnCacheProvideFor dbd mon-fournisseur
    
top

AuthnCacheSOCache Directive

Description:S�lectionne le fournisseur socache d'arri�re-plan � utiliser
Syntaxe:AuthnCacheSOCache nom-fournisseur[:arguments-fournisseur]
Contexte:configuration du serveur
AllowOverride:None
Statut:Base
Module:mod_authn_socache
Compatibilit�:Les param�tres optionnels du fournisseur sont disponibles depuis la version 2.4.7 du serveur HTTP Apache

Cette d�finition s'applique � l'ensemble du serveur et permet de s�lectionner un fournisseur pour le cache d'objets partag�s, ainsi que des arguments �ventuels pour ce fournisseur. Les fournisseurs disponibles sont, entre autres, "dbm", "dc", "memcache", ou "shmcb", chacun d'entre eux n�cessitant le chargement du module appropri�. Si elle est absente, c'est la valeur par d�faut pour votre plate-forme qui sera utilis�e.

top

AuthnCacheTimeout Directive

Description:D�finit une dur�e de vie pour les entr�es du cache
Syntaxe:AuthnCacheTimeout dur�e-de-vie (secondes)
D�faut:300 (5 minutes)
Contexte:r�pertoire, .htaccess
AllowOverride:AuthConfig
Statut:Base
Module:mod_authn_socache

La mise en cache des donn�es d'authentification peut constituer un trou de s�curit�, bien qu'un mise en cache de courte dur�e ne posera probablement pas de probl�me. En g�n�ral, il est conseill� de conserver les entr�es du cache de fa�on � ce que la charge du serveur d'arri�re-plan reste normale, mais pas plus longtemps, bien qu'une dur�e de vie plus longue puisse �tre n�cessaire si les changements d'utilisateurs et de mots de passe sont peu fr�quents. La dur�e de vie par d�faut de 300 secondes (5 minutes) est � la fois raisonnable et suffisamment importante pour r�duire la charge d'un serveur d'arri�re-plan comme dbd (requ�tes SQL).

Cette dur�e de vie ne doit pas �tre confondue avec la dur�e de vie de session qui est un tout autre sujet. Cependant, vous devez utiliser votre logiciel de gestion de session pour v�rifier si les donn�es d'authentification mises en cache peuvent allonger accidentellement une session, et en tenir compte lorsque vous d�finissez la dur�e de vie.

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.