]> granicus.if.org Git - apache/blob - docs/manual/howto/auth.html.fr
update xforms
[apache] / docs / manual / howto / auth.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Authentification, autorisation et contrôle d'accès - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
15 <p class="apache">Serveur Apache HTTP Version 2.3</p>
16 <img alt="" src="../images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Authentification, autorisation et contrôle d'accès</h1>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="../fr/howto/auth.html" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
24 <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
25 <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
26 </div>
27
28     <p>L'authentification est un processus qui vous permet de vérifier
29     qu'une personne est bien celle qu'elle prétend être. L'autorisation
30     est un processus qui permet à une personne d'aller là où elle veut
31     aller, ou d'obtenir les informations qu'elle désire.</p>
32
33     <p>Pour le contrôle d'accès en général, voir le How-To <a href="access.html">Contrôle d'accès</a>.</p>
34 </div>
35 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Modules et directives concernés</a></li>
36 <li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
37 <li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">Les prérequis</a></li>
38 <li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Mise en oeuvre</a></li>
39 <li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Autorisation d'accès à
40 plusieurs personnes</a></li>
41 <li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Problèmes possibles</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Autre méthode de stockage des mots de
43 passe</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Utilisation de plusieurs fournisseurs
45 d'authentification</a></li>
46 <li><img alt="" src="../images/down.gif" /> <a href="#beyond">Pour aller plus loin qu'une simple
47 autorisation</a></li>
48 <li><img alt="" src="../images/down.gif" /> <a href="#socache">Mise en cache de l'authentification</a></li>
49 <li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">Pour aller plus loin . . .</a></li>
50 </ul></div>
51 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
52 <div class="section">
53 <h2><a name="related" id="related">Modules et directives concernés</a></h2>
54
55 <p>Trois groupes de modules sont concernés par le processus
56 d'authentification et d'autorisation. Vous devrez utiliser au moins un
57 module de chaque groupe.</p>
58
59 <ul>
60   <li>Type d'authentification (voir la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>)
61     <ul>
62       <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
63       <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li>
64     </ul>
65   </li>
66   <li>Fournisseur d'authentification (voir les directives <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> et <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>)
67
68     <ul>
69       <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li>
70       <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li>
71       <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li>
72       <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li>
73       <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
74       <li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li>
75     </ul>
76   </li>
77   <li>Autorisation (voir la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>)
78     <ul>
79       <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
80       <li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li>
81       <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li>
82      <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
83       <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
84       <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li>
85       <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
86     </ul>
87   </li>
88 </ul>
89
90   <p>On peut aussi ajouter <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et
91   <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>. Ces modules implémentent des
92   directives générales qui opèrent au dessus de tous les modules
93   d'authentification.</p>
94
95   <p>Le module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> est un fournisseur
96   d'authentification et d'autorisation. Le module
97   <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> fournit une autorisation et un
98   contrôle d'accès basés sur le nom du serveur, l'adresse IP ou
99   certaines caractéristiques de la requête, mais ne fait pas partie du
100   système fournisseur d'authentification. Le module
101   <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> a été créé à des fins de
102   compatibilité ascendante avec mod_access.</p>
103
104   <p>Vous devriez aussi jeter un coup d'oeil au manuel de recettes de <a href="access.html">Contrôle d'accès</a>, qui décrit les différentes
105   méthodes de contrôle d'accès à votre serveur.</p>
106
107 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
108 <div class="section">
109 <h2><a name="introduction" id="introduction">Introduction</a></h2>
110     <p>Si votre site web contient des informations sensibles ou
111     destinées seulement à un groupe de personnes restreint, les
112     techniques exposées dans cet article vont vous aider à vous assurer
113     que les personnes qui ont accès à ces pages sont bien celles
114     auxquelles vous avez donné l'autorisation d'accès.</p>
115
116     <p>Cet article décrit les méthodes "standards" de protection de
117     parties de votre site web que la plupart d'entre vous sont appelés à
118     utiliser.</p>
119
120     <div class="note"><h3>Note :</h3>
121     <p>Si vos données ont un réel besoin de sécurisation, prévoyez
122     l'utilisation de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en plus de toute méthode
123     d'authentification.</p>
124     </div>
125 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
126 <div class="section">
127 <h2><a name="theprerequisites" id="theprerequisites">Les prérequis</a></h2>
128     <p>Les directives décrites dans cet article devront être insérées
129     soit au niveau de la configuration de votre serveur principal (en
130     général dans une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>), soit au niveau de la
131     configuration des répertoires (fichiers <code>.htaccess</code>)</p>
132
133     <p>Si vous envisagez l'utilisation de fichiers
134     <code>.htaccess</code>, la configuration de votre serveur devra
135     permettre l'ajout de directives d'authentification dans ces
136     fichiers. Pour ce faire, on utilise la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, qui spécifie quelles
137     directives pourront éventuellement contenir les fichiers de
138     configuration de niveau répertoire.</p>
139
140     <p>Comme il est ici question d'authentification, vous aurez besoin
141     d'une directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
142     du style :</p>
143
144     <div class="example"><p><code>
145       AllowOverride AuthConfig
146     </code></p></div>
147
148     <p>Si vous avez l'intention d'ajouter les directives directement
149     dans le fichier de configuration principal, vous devrez bien entendu
150     posséder les droits en écriture sur ce fichier.</p>
151
152     <p>Vous devrez aussi connaître un tant soit peu la structure des
153     répertoires de votre serveur, ne serait-ce que pour savoir où se
154     trouvent certains fichiers. Cela ne devrait pas présenter de grandes
155     difficultés, et nous essaierons de clarifier tout ça lorsque le besoin
156     s'en fera sentir.</p>
157
158     <p>Enfin, vous devrez vous assurer que les modules
159     <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
160     ont été soit compilés avec le binaire httpd, soit chargés par le
161     fichier de configuration httpd.conf. Ces deux modules fournissent
162     des directives générales et des fonctionnalités qui sont critiques
163     quant à la configuration et l'utilisation de l'authentification et
164     de l'autorisation au sein du serveur web.</p>
165 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
166 <div class="section">
167 <h2><a name="gettingitworking" id="gettingitworking">Mise en oeuvre</a></h2>
168     <p>Nous décrivons ici les bases de la protection par mot de passe
169     d'un répertoire de votre serveur.</p>
170
171     <p>Vous devez en premier lieu créer un fichier de mots de passe. La
172     méthode exacte selon laquelle vous allez créer ce fichier va varier
173     en fonction du fournisseur d'authentification choisi. Mais nous
174     entrerons dans les détails plus loin, et pour le moment, nous nous
175     contenterons d'un fichier de mots de passe en mode texte.</p>
176
177     <p>Ce fichier doit être enregistré à un endroit non accessible
178     depuis le web, de façon à ce que les clients ne puissent pas le
179     télécharger. Par exemple, si vos documents sont servis à partir de
180     <code>/usr/local/apache/htdocs</code>, vous pouvez enregistrer le
181     fichier des mots de passe dans
182     <code>/usr/local/apache/passwd</code>.</p>
183
184     <p>L'utilitaire <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> fourni avec Apache
185     permet de créer ce fichier. Vous le trouverez dans le répertoire
186     <code>bin</code> de votre installation d'Apache. Si vous avez
187     installé Apache à partir d'un paquetage tiers, il sera probablement
188     dans le chemin par défaut de vos exécutables.</p>
189
190     <p>Pour créer le fichier, tapez :</p>
191
192     <div class="example"><p><code>
193       htpasswd -c /usr/local/apache/passwd/passwords rbowen
194     </code></p></div>
195
196     <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> vous demandera d'entrer le mot de
197     passe, et de le retaper pour confirmation :</p>
198
199     <div class="example"><p><code>
200       # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br />
201       New password: mot-de-passe<br />
202       Re-type new password: mot-de-passe<br />
203       Adding password for user rbowen
204     </code></p></div>
205
206     <p>Si <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> n'est pas dans le chemin par
207     défaut de vos exécutables, vous devrez bien entendu entrer le chemin
208     complet du fichier. Dans le cas d'une installation par défaut, il se
209     trouve à <code>/usr/local/apache2/bin/htpasswd</code>.</p>
210
211     <p>Ensuite, vous allez devoir configurer le serveur de façon à ce
212     qu'il demande un mot de passe et lui préciser quels utilisateurs ont
213     l'autorisation d'accès. Pour ce faire, vous pouvez soit éditer le
214     fichier <code>httpd.conf</code>, soit utiliser un fichier
215     <code>.htaccess</code>. Par exemple, si vous voulez protéger le
216     répertoire <code>/usr/local/apache/htdocs/secret</code>, vous pouvez
217     utiliser les directives suivantes, soit dans le fichier
218     <code>/usr/local/apache/htdocs/secret/.htaccess</code>, soit dans le
219     fichier <code>httpd.conf</code> à l'intérieur d'une section &lt;Directory
220     /usr/local/apache/htdocs/secret&gt; :</p>
221
222     <div class="example"><p><code>
223       AuthType Basic<br />
224       AuthName "Fichiers réservés"<br />
225       # (La ligne suivante est facultative)<br />
226       AuthBasicProvider file<br />
227       AuthUserFile /usr/local/apache/passwd/passwords<br />
228       Require user rbowen
229     </code></p></div>
230
231     <p>Examinons ces directives une à une. La directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> définit la méthode
232     utilisée pour authentifier l'utilisateur. La méthode la plus
233     courante est <code>Basic</code>, et elle est implémentée par
234     <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. Il faut cependant garder à l'esprit
235     que l'authentification Basic transmet le mot de passe depuis le
236     client vers le serveur en clair. Cette méthode ne devra donc pas
237     être utilisée pour la transmission de données hautement sensibles si
238     elle n'est pas associée au module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. Apache
239     supporte une autre méthode d'authentification : <code>AuthType
240     Digest</code>. Cette méthode est implémentée par le module <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> et est beaucoup plus sécurisée. La plupart
241     des navigateurs récents supportent l'authentification Digest.</p>
242
243     <p>La directive <code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> définit
244     l'<dfn>Identificateur</dfn> (Realm) à utiliser avec
245     l'authentification. L'identificateur possède deux fonctions. Tout
246     d'abord, le client présente en général cette information à
247     l'utilisateur dans le cadre de la boîte de dialogue de mot de passe.
248     Ensuite, le client l'utilise pour déterminer quel mot de passe
249     envoyer pour une zone authentifiée donnée.</p>
250
251     <p>Ainsi par exemple, une fois un client authentifié dans la zone
252     <code>"Fichiers réservés"</code>, il soumettra à nouveau
253     automatiquement le même mot de passe pour toute zone du même serveur
254     marquée de l'identificateur <code>"Fichiers réservés"</code>. De
255     cette façon, vous pouvez éviter à un utilisateur d'avoir à saisir
256     plusieurs fois le même mot de passe en faisant partager le même
257     identificateur entre plusieurs zones réservées. Bien entendu et pour
258     des raisons de sécurité, le client devra redemander le mot
259     de passe chaque fois que le nom d'hôte du serveur sera modifié.</p>
260
261     <p>La directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> est, dans ce
262     cas, facultative, car <code>file</code> est la valeur par défaut
263     pour cette directive. Par contre, cette directive sera obligatoire
264     si vous utilisez une autre source d'authentification comme
265     <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou
266     <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
267
268     <p>La directive <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> définit le chemin
269     du fichier de mots de passe que nous venons de créer avec
270     <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. Si vous possédez un grand nombre
271     d'utilisateurs, la durée de la recherche dans un fichier texte pour
272     authentifier un utilisateur à chaque requête va augmenter
273     rapidement, et pour pallier cet inconvénient, Apache peut aussi
274     stocker les données relatives aux
275     utilisateurs dans des bases de données rapides. Le module
276     <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> fournit la directive <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>. Le programme <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> permet de créer et manipuler ces fichiers. Vous
277     trouverez de nombreuses options d'autres types d'authentification
278     fournies par des modules tiers dans la <a href="http://modules.apache.org/">Base de données des modules
279     d'Apache</a>.</p>
280
281     <p>Enfin, la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> implémente la partie
282     autorisation du processus en définissant l'utilisateur autorisé à
283     accéder à cette zone du serveur. Dans la section suivante, nous
284     décrirons les différentes méthodes d'utilisation de la directive
285     <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</p>
286 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
287 <div class="section">
288 <h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Autorisation d'accès à
289 plusieurs personnes</a></h2>
290     <p>Les directives ci-dessus n'autorisent qu'une personne (quelqu'un
291     possédant le nom d'utilisateur <code>rbowen</code>) à accéder au
292     répertoire. Dans la plupart des cas, vous devrez autoriser
293     l'accès à plusieurs personnes. C'est ici
294     qu'intervient la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>.</p>
295
296     <p>Si vous voulez autoriser l'accès à plusieurs personnes, vous
297     devez créer un fichier de groupes qui associe des noms de groupes
298     avec une liste d'utilisateurs de ce groupe. Le format de ce fichier
299     est très simple, et vous pouvez le créer avec votre éditeur favori.
300     Son contenu se présente comme suit :</p>
301
302    <div class="example"><p><code>
303      Nom-de-groupe: rbowen dpitts sungo rshersey
304    </code></p></div>
305
306     <p>Il s'agit simplement une liste des membres du groupe sous la
307     forme d'une ligne séparée par des espaces.</p>
308
309     <p>Pour ajouter un utilisateur à votre fichier de mots de passe
310     préexistant, entrez :</p>
311
312     <div class="example"><p><code>
313       htpasswd /usr/local/apache/passwd/passwords dpitts
314     </code></p></div>
315
316     <p>Vous obtiendrez le même effet qu'auparavant, mais le mot de passe
317     sera ajouté au fichier, plutôt que d'en créer un nouveau (C'est le
318     drapeau <code>-c</code> qui permet de créer un nouveau fichier de
319     mots de passe)..</p>
320
321     <p>Maintenant, vous devez modifier votre fichier
322     <code>.htaccess</code> comme suit :</p>
323
324     <div class="example"><p><code>
325       AuthType Basic<br />
326       AuthName "By Invitation Only"<br />
327       # Ligne facultative :<br />
328       AuthBasicProvider file<br />
329       AuthUserFile /usr/local/apache/passwd/passwords<br />
330       AuthGroupFile /usr/local/apache/passwd/groups<br />
331       Require group Nom-de-groupe
332     </code></p></div>
333
334     <p>Maintenant, quiconque appartient au groupe
335     <code>Nom-de-groupe</code>, et possède une entrée dans le fichier
336     <code>password</code> pourra accéder au répertoire s'il tape le bon
337     mot de passe.</p>
338
339     <p>Il existe une autre méthode moins contraignante pour autoriser
340     l'accès à plusieurs personnes. Plutôt que de créer un fichier de
341     groupes, il vous suffit d'ajouter la directive suivante :</p>
342
343     <div class="example"><p><code>
344       Require valid-user
345     </code></p></div>
346
347     <p>Le remplacement de la ligne <code>Require user rbowen</code> par
348     la ligne <code>Require valid-user</code> autorisera l'accès à
349     quiconque possédant une entrée dans le fichier password, et ayant
350     tapé le bon mot de passe. Vous pouvez même simuler le comportement
351     des groupes en associant un fichier de mots de passe différent pour
352     chaque groupe. L'avantage de cette approche réside dans le fait
353     qu'Apache ne doit consulter qu'un fichier au lieu de deux. Par
354     contre, vous devez maintenir un nombre plus ou moins important de
355     fichiers de mots de passe, et vous assurer de faire référence au bon
356     fichier dans la directive <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>.</p>
357 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
358 <div class="section">
359 <h2><a name="possibleproblems" id="possibleproblems">Problèmes possibles</a></h2>
360     <p>L'authentification Basic est spécifiée d'une telle manière que
361     vos nom d'utilisateur et mot de passe doivent être vérifiés chaque
362     fois que vous demandez un document au serveur, et ceci même si vous
363     rechargez la même page, et pour chaque image contenue dans la page
364     (si elles sont situées dans un répertoire protégé). Comme vous
365     pouvez l'imaginer, ceci ralentit un peu le fonctionnement. La mesure
366     dans laquelle le fonctionnement est ralenti est proportionnelle à la
367     taille du fichier des mots de passe, car ce dernier doit être ouvert
368     et la liste des utilisateurs parcourue jusqu'à ce que votre nom soit
369     trouvé, et ceci chaque fois qu'une page est chargée.</p>
370
371     <p>En conséquence, ce ralentissement impose une limite pratique au
372     nombre d'utilisateurs que vous pouvez enregistrer dans un fichier de
373     mots de passe. Cette limite va varier en fonction des performances
374     de votre serveur, mais vous commencerez à remarquer un
375     ralentissement lorsque vous atteindrez quelques centaines
376     d'utilisateurs, et serez alors appelés à utiliser une méthode
377     d'authentification différente.</p>
378 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
379 <div class="section">
380 <h2><a name="dbmdbd" id="dbmdbd">Autre méthode de stockage des mots de
381 passe</a></h2>
382
383     <p>Suite au problème évoqué précédemment et induit par le stockage
384     des mots de passe dans un fichier texte, vous pouvez être appelé à
385     stocker vos mots de passe d'une autre manière, par exemple dans une
386     base de données.</p>
387
388     <p>Pour y parvenir, on peut utiliser les modules
389     <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
390     Vous pouvez choisir comme format de stockage <code>dbm</code> ou
391     <code>dbd</code> à la place de <code>file</code> pour la directive
392     <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
393
394     <p>Par exemple, pour sélectionner un fichier dbm à la place d'un
395     fichier texte :</p>
396
397     <div class="example"><p><code>
398     &lt;Directory /www/docs/private&gt;<br />
399     <span class="indent">
400     AuthName "Private"<br />
401     AuthType Basic<br />
402     AuthBasicProvider dbm<br />
403     AuthDBMUserFile /www/passwords/passwd.dbm<br />
404     Require valid-user<br />
405     </span>
406     &lt;/Directory&gt;
407     </code></p></div>
408
409     <p>D'autres options sont disponibles. Consultez la documentation de
410     <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> pour plus de détails.</p>
411 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
412 <div class="section">
413 <h2><a name="multprovider" id="multprovider">Utilisation de plusieurs fournisseurs
414 d'authentification</a></h2>
415
416     <p>Depuis l'arrivée des nouvelles architecture d'autorisation et
417     d'authentification basées sur les fournisseurs, vous n'êtes plus
418     limité à une méthode d'authentification et d'autorisation
419     unique. En fait, on peut panacher autant de fournisseurs que l'on
420     veut, ce qui vous permet d'élaborer l'architecture qui correspond
421     exactement à vos besoins. Dans l'exemple suivant, on utilise
422     conjointement les fournisseurs d'authentification
423     file et LDAP :</p>
424
425     <div class="example"><p><code>
426     &lt;Directory /www/docs/private&gt;<br />
427     <span class="indent">
428     AuthName "Private"<br />
429     AuthType Basic<br />
430     AuthBasicProvider file ldap<br />
431     AuthUserFile /usr/local/apache/passwd/passwords<br />
432     AuthLDAPURL ldap://ldaphost/o=yourorg<br />
433     Require valid-user<br />
434     </span>
435     &lt;/Directory&gt;
436     </code></p></div>
437
438     <p>Dans cet exemple, le fournisseur file va tenter d'authentifier
439     l'utilisateur en premier. S'il n'y parvient pas, le fournisseur LDAP
440     sera sollicité. Ceci permet l'élargissement des possibilités
441     d'authentification si votre organisation implémente plusieurs types
442     de bases d'authentification. D'autres scénarios d'authentification
443     et d'autorisation peuvent associer un type d'authentification avec
444     un autre type d'autorisation. Par exemple, une authentification
445     basée sur un fichier de mots de passe peut permettre l'attribution
446     d'autorisations basée sur un annuaire LDAP.</p>
447
448     <p>Tout comme plusieurs fournisseurs d'authentification peuvent être
449     implémentés, on peut aussi utiliser plusieurs méthodes
450     d'autorisation. Dans l'exemple suivant, on utilise à la fois une
451     autorisation à base de fichier de groupes et une autorisation à base
452     de groupes LDAP.</p>
453
454     <div class="example"><p><code>
455     &lt;Directory /www/docs/private&gt;<br />
456     <span class="indent">
457     AuthName "Private"<br />
458     AuthType Basic<br />
459     AuthBasicProvider file<br />
460     AuthUserFile /usr/local/apache/passwd/passwords<br />
461     AuthLDAPURL ldap://ldaphost/o=yourorg
462     AuthGroupFile /usr/local/apache/passwd/groups<br />
463     Require group GroupName<br />
464     Require ldap-group cn=mygroup,o=yourorg<br />
465     </span>
466     &lt;/Directory&gt;
467     </code></p></div>
468
469     <p>Pour un scénario d'autorisation un peu plus avancé, des
470     directives de conteneur d'autorisation comme <code class="directive"><a href="../mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code> et
471     <code class="directive"><a href="../mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code> permettent d'appliquer une
472     logique telle que l'ordre dans lequel les autorisations sont
473     appliquées peut être entièrement contrôlé au niveau de la
474     configuration. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs
475     d'autorisations</a> pour un exemple de ce contrôle.</p>
476
477 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
478 <div class="section">
479 <h2><a name="beyond" id="beyond">Pour aller plus loin qu'une simple
480 autorisation</a></h2>
481
482     <p>La manière dont les autorisations sont accordées est désormais
483     beaucoup plus souple qu'une simple vérification auprès d'une seule
484     base de données. Il est maintenant possible de choisir l'ordre, la
485     logique et la manière selon lesquels une autorisation est
486     accordée.</p>
487
488     <h3><a name="authandororder" id="authandororder">Appliquer logique et
489     ordonnancement</a></h3>
490         <p>Le contrôle de la manière et de l'ordre selon lesquels le
491         processus d'autorisation était appliqué
492         constituait une sorte de mystère par
493         le passé. Dans Apache 2.2, un mécanisme d'authentification basé
494         sur les fournisseurs a été développé afin de séparer le
495         véritable processus d'authentification de l'autorisation et ses
496         différentes fonctionnalités. Un des avantages colatéraux
497         résidait dans le fait que les fournisseurs d'authentification
498         pouvaient être configurés et appelés selon un ordre particulier
499         indépendant de l'ordre de chargement du module auth proprement
500         dit. Ce mécanisme basé sur les fournisseurs a été étendu au
501         processus d'autorisation. Ceci signifie que la directive
502         <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> définit
503         non seulement quelles méthodes d'autorisation doivent être
504         utilisées, mais aussi l'ordre dans lequel elles sont appelées.
505         Les méthodes d'autorisation sont appelées selon l'ordre dans
506         lequel les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> apparaissent dans la
507         configuration.</p>
508
509         <p>Avec l'introduction des directives de conteneur
510         d'autorisations <code class="directive"><a href="../mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code>
511         et <code class="directive"><a href="../mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code>, la
512         configuration contrôle aussi le moment où les méthodes
513         d'autorisation sont appelées, et quels critères déterminent
514         l'autorisation d'accès. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs
515         d'autorisations</a> pour un exemple de la manière de les
516         utiliser pour exprimer des logiques d'autorisation
517         complexes.</p>
518
519         <p>Par défaut, toutes les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> sont
520         traitées comme si elles étaient contenues dans une directive
521         <code class="directive"><a href="../mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code>. En d'autres termes, il
522         suffit
523         qu'une méthode d'autorisation s'applique avec succès pour que
524         l'autorisation soit accordée.</p>
525
526     
527
528     <h3><a name="reqaccessctrl" id="reqaccessctrl">Utilisation de fournisseurs
529     d'autorisation pour le contrôle d'accès</a></h3>
530         <p>La vérification du nom d'utilisateur et du mot de passe ne
531         constituent qu'un aspect des méthodes d'authentification.
532         Souvent, le contrôle d'accès à certaines personnes n'est pas
533         basé sur leur identité ; il peut dépendre, par exemple de leur
534         provenance.</p>
535
536         <p>Les fournisseurs d'autorisation <code class="directive"><a href="../mod/mod_authz_host.html#&#10;        all">
537         all</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#&#10;        env">
538         env</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html#&#10;        host">
539         host</a></code> et <code class="directive"><a href="../mod/mod_authz_host.html#&#10;        ip">
540         ip</a></code> vous permettent d'accorder ou refuser l'accès en
541         fonction de critères tels que le nom d'hôte ou l'adresse
542         IP de la machine qui effectue la requête.</p>
543
544         <p>L'utilisation de ces fournisseurs est spécifiée à l'aide de
545         la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>. Cette directive
546         permet d'enregistrer quels fournisseurs d'autorisation
547         seront appelés dans le processus d'autorisation au cours du
548         traitement de la requête. Par exemple :</p>
549
550         <div class="example"><p><code>
551           Require ip <var>adresse</var>
552         </code></p></div>
553
554         <p>où <var>adresse</var> est une adresse IP (ou une adresse IP
555         partielle) ou :</p>
556
557         <div class="example"><p><code>
558           Require host <var>nom_domaine</var>
559         </code></p></div>
560
561         <p>où <var>nom_domaine</var> est un nom de domaine entièrement
562         qualifé (ou un nom de domaine partiel) ; vous pouvez indiquer
563         plusieurs adresses ou noms de domaines, si vous le désirez.</p>
564
565         <p>Par exemple, si vous voulez rejeter les spams dont une
566         machine vous inonde, vous pouvez utiliser ceci :</p>
567
568         <div class="example"><p><code>
569           &lt;RequireAll&gt;
570           <span class="indent">
571             Require all granted<br />
572             Require not ip 10.252.46.165
573           </span>
574           &lt;/RequireAll&gt;
575         </code></p></div>
576
577         <p>Ainsi, les visiteurs en provenance de cette adresse ne
578         pourront pas voir le contenu concerné par cette directive. Si,
579         par contre, vous connaissez le nom de la machine, vous pouvez
580         utiliser ceci :</p>
581
582         <div class="example"><p><code>
583            &lt;RequireAll&gt;
584           <span class="indent">
585             Require all granted<br />
586             Require not host <var>serveur.example.com</var>
587           </span>
588           &lt;/RequireAll&gt;
589         </code></p></div>
590
591         <p>Et si vous voulez interdire l'accès à toutes les machines
592         d'un domaine, vous pouvez spécifier une partie seulement de
593         l'adresse ou du nom de domaine :</p>
594
595         <div class="example"><p><code>
596          &lt;RequireAll&gt;
597           <span class="indent">
598              Require all granted<br />
599             &lt;RequireNone&gt;
600             <span class="indent">
601               Require ip 192.168.205<br />
602               Require host phishers.example.com autres-idiots.exemple<br />
603               Require host ke
604             </span>
605             &lt;/RequireNone&gt;
606           </span>
607           &lt;/RequireAll&gt;
608         </code></p></div>
609
610         <p>Dans l'exemple ci-dessus, on utilise la directive du
611         conteneur <code class="directive"><a href="../mod/mod_authz_core.html#requirenone">&lt;RequireNone&gt;</a></code> afin de s'assurer
612         qu'aucune des directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> qu'il contient ne
613         fasse correspondre ses paramètres avant d'accorder
614         l'autorisation.</p>
615
616     
617
618     <h3><a name="filesystem" id="filesystem">Compatibilité ascendante du contrôle
619     d'accès</a></h3>
620         <p>L'adoption d'un mécanisme à base de fournisseurs pour
621         l'authentification, a pour effet colatéral de rendre inutiles
622         les directives <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> et <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code>. Cependant, et à
623         des fins de compatibilité ascendante vers les anciennes
624         configurations, ces directives ont été déplacées vers le module
625         <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>.</p>
626
627     
628
629 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
630 <div class="section">
631 <h2><a name="socache" id="socache">Mise en cache de l'authentification</a></h2>
632     <p>Dans certains cas, l'authentification constitue une charge
633     inacceptable pour un fournisseur d'authentification ou votre réseau.
634     Ceci est susceptible d'affecter les utilisateurs du module
635     <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> (ou les fournisseurs
636     tiers/personnalisés). Pour résoudre ce problème, HTTPD 2.3/2.4
637     propose un nouveau fournisseur de mise en cache,
638     <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>, qui permet de mettre en cache
639     les données d'authentification, et ainsi réduire la charge du/des
640     fournisseurs(s) originels.</p>
641     <p>Cette mise en cache apportera un gain en performance substantiel
642     à certains utilisateurs.</p>
643 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
644 <div class="section">
645 <h2><a name="moreinformation" id="moreinformation">Pour aller plus loin . . .</a></h2>
646     <p>Vous pouvez aussi lire la documentation de
647     <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> et <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>
648     qui contient des informations supplémentaires à propos du
649     fonctionnement de tout ceci.
650     Certaines configurations d'authentification peuvent aussi être
651     simplifiées à l'aide de la directive <code class="directive"><a href="../mod/mod_authn_core.html#&lt;authnprovideralias&gt;">&lt;AuthnProviderAlias&gt;</a></code>.</p>
652
653     <p>Les différents algorithmes de chiffrement supportés par Apache
654     pour authentifier les données sont expliqués dans <a href="../misc/password_encryptions.html">PasswordEncryptions</a>.</p>
655
656     <p>Enfin vous pouvez consulter la recette <a href="access.html">Contrôle
657     d'accès</a>, qui décrit un certain nombre de situations en relation
658     avec le sujet.</p>
659
660 </div></div>
661 <div class="bottomlang">
662 <p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
663 <a href="../fr/howto/auth.html" title="Français">&nbsp;fr&nbsp;</a> |
664 <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
665 <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
666 <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
667 </div><div id="footer">
668 <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
669 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
670 </body></html>