<-
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.