1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1826856 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
9 Licensed to the Apache Software Foundation (ASF) under one or more
10 contributor license agreements. See the NOTICE file distributed with
11 this work for additional information regarding copyright ownership.
12 The ASF licenses this file to You under the Apache License, Version 2.0
13 (the "License"); you may not use this file except in compliance with
14 the License. You may obtain a copy of the License at
16 http://www.apache.org/licenses/LICENSE-2.0
18 Unless required by applicable law or agreed to in writing, software
19 distributed under the License is distributed on an "AS IS" BASIS,
20 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 See the License for the specific language governing permissions and
22 limitations under the License.
25 <modulesynopsis metafile="mod_auth_basic.xml.meta">
27 <name>mod_auth_basic</name>
28 <description>Authentification HTTP de base</description>
30 <sourcefile>mod_auth_basic.c</sourcefile>
31 <identifier>auth_basic_module</identifier>
34 <p>Ce module permet d'utiliser l'authentification basique HTTP pour
35 restreindre l'accès en recherchant les utilisateurs dans les
36 fournisseurs d'authentification spécifiés. Il est en général
37 combiné avec au moins un module d'authentification comme
38 <module>mod_authn_file</module> et un module d'autorisation comme
39 <module>mod_authz_user</module>. L'authentification HTTP à
40 base de condensé (digest), quant à elle, est fournie par le module
41 <module>mod_auth_digest</module>. </p>
43 <seealso><directive module="mod_authn_core">AuthName</directive></seealso>
44 <seealso><directive module="mod_authn_core">AuthType</directive></seealso>
45 <seealso><directive module="mod_authz_core">Require</directive></seealso>
46 <seealso><a href="../howto/auth.html">Mode d'emploi de
47 l'authentification</a></seealso>
50 <name>AuthBasicProvider</name>
51 <description>Définit le(les) fournisseur(s) d'authentification pour
52 cette zone du site web</description>
53 <syntax>AuthBasicProvider <var>nom fournisseur</var>
54 [<var>nom fournisseur</var>] ...</syntax>
55 <default>AuthBasicProvider file</default>
56 <contextlist><context>directory</context><context>.htaccess</context>
58 <override>AuthConfig</override>
61 <p>La directive <directive>AuthBasicProvider</directive> permet de
62 définir le fournisseur utilisé pour authentifier les utilisateurs
63 pour la zone du site web concernée. Le fournisseur par défaut
64 <code>file</code> est implémenté par le module
65 <module>mod_authn_file</module>. Assurez-vous que le module
66 implémentant le fournisseur choisi soit bien présent dans le
69 <example><title>Exemple</title>
70 <highlight language="config">
71 <Location "/secure">
73 AuthName "private area"
76 AuthDBMUserFile "/www/etc/dbmpasswd"
81 <p>Les fournisseurs sont sollicités dans l'ordre jusqu'à ce que l'un
82 d'entre eux trouve une correspondance pour le nom d'utilisateur de
83 la requête ; alors, ce dernier fournisseur sera le seul à vérifier
84 le mot de passe. Un échec dans la vérification du mot de passe
85 n'entraîne pas le passage du contrôle au fournisseur suivant.</p>
87 <p>Les différents fournisseurs disponibles sont implémentés par les
88 modules <module>mod_authn_dbm</module>,
89 <module>mod_authn_file</module>, <module>mod_authn_dbd</module>,
90 <module>mod_authnz_ldap</module> et <module>mod_authn_socache</module>.</p>
95 <name>AuthBasicAuthoritative</name>
96 <description>Définit si les processus d'autorisation et
97 d'authentification peuvent être confiés à des modules de plus bas
99 <syntax>AuthBasicAuthoritative On|Off</syntax>
100 <default>AuthBasicAuthoritative On</default>
101 <contextlist><context>directory</context><context>.htaccess</context>
103 <override>AuthConfig</override>
106 <p>Normalement, chaque module d'autorisation énuméré dans la
108 module="mod_auth_basic">AuthBasicProvider</directive> va tenter de
109 vérifier l'utilisateur, et si ce dernier n'est trouvé dans aucun des
110 fournisseurs, l'accès sera refusé. Définir explicitement la
111 directive <directive>AuthBasicAuthoritative</directive> à
112 <code>Off</code> permet de confier l'autorisation et
113 l'authentification à d'autres modules non basés sur les fournisseurs
114 si <strong>aucun identifiant utilisateur</strong> ou aucune
115 <strong>règle</strong> ne correspondent à l'identifiant utilisateur
116 spécifié. Ceci ne peut s'avérer nécessaire que lorsque
117 <module>mod_auth_basic</module> est combiné avec des modules tiers
118 qui n'ont pas été configurés à l'aide de la directive <directive
119 module="mod_auth_basic">AuthBasicProvider</directive>. Lorsqu'on
120 utilise de tels modules, l'ordre dans lequel s'effectue le
121 traitement est défini dans le code source des modules et n'est pas
127 <name>AuthBasicFake</name>
128 <description>Authentification de base simulée à l'aide des nom
129 d'utilisateur et mot de passe fournis</description>
130 <syntax>AuthBasicFake off|<var>username</var> [<var>password</var>]</syntax>
131 <default>none</default>
132 <contextlist><context>directory</context><context>.htaccess</context>
134 <override>AuthConfig</override>
135 <compatibility>Disponible à partir de la version 2.4.5 du serveur HTTP
136 Apache</compatibility>
139 <p>Les nom d'utilisateur et mot de passe spécifiés sont rassemblés
140 dans un en-tête d'autorisation qui est transmis au serveur ou au
141 service sous-jacent au serveur. Ces nom d'utilisateur et mot de
142 passe sont interprétés par l'<a href="../expr.html">interpréteur
143 d'expression</a>, ce qui permet de les définir en fonction de
144 paramètres de la requête.</p>
146 <p>Si aucun mot de passe n'est spécifié, la valeur par défaut
147 "password" sera utilisée. Pour désactiver l'authentification de base
148 simulée pour un espace d'URL, définissez AuthBasicFake à "off".</p>
150 <p>Dans l'exemple suivant, un nom d'utilisateur et un mot de passe
151 prédéfinis sont transmis à un serveur d'arrière-plan :</p>
153 <example><title>Exemple de transmission d'un nom d'utilisateur et
154 d'un mot de passe prédéfinis</title>
155 <highlight language="config">
156 <Location "/demo">
157 AuthBasicFake demo demopass
162 <p>Dans l'exemple suivant, l'adresse email extraite d'un certificat
163 client est transmise au serveur, étendant par là-même la
164 fonctionnalité de l'option FakeBasicAuth de la directive <directive
165 module="mod_ssl">SSLOptions</directive>. Comme avec l'option
166 FakeBasicAuth, le mot de passe se voit attribué le contenu fixe de
167 la chaîne "password".</p>
169 <example><title>Exemple d'utilisation avec un certificat</title>
170 <highlight language="config">
171 <Location "/secure">
172 AuthBasicFake "%{SSL_CLIENT_S_DN_Email}"
177 <p>Pour compléter l'exemple précédent, il est possible de générer la
178 valeur du mot de passe en procédant à un hashage de l'adresse email
179 à partir d'un mot d'une passphrase initial fixée, puis de transmettre le
180 résultat obtenu au serveur d'arrière-plan. Ceci peut s'avérer utile
181 pour donner accès à des serveurs anciens qui ne supportent pas les
182 certificats clients.</p>
184 <example><title>Exemple de génération de mot de passe par hashage de
185 l'adresse email</title>
186 <highlight language="config">
187 <Location "/secure">
188 AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}"
193 <example><title>Désactivation de l'authentification simulée</title>
194 <highlight language="config">
195 <Location "/public">
204 <name>AuthBasicUseDigestAlgorithm</name>
205 <description>Vérifie les mots de passe auprès des fournisseurs
206 d'authentification à la manière de l'authentification de type Digest.
208 <syntax>AuthBasicUseDigestAlgorithm MD5|Off</syntax>
209 <default>AuthBasicUseDigestAlgorithm Off</default>
210 <contextlist><context>directory</context><context>.htaccess</context>
212 <override>AuthConfig</override>
213 <compatibility>Disponible à partir de la version 2.4.7 du serveur HTTP
214 Apache</compatibility>
217 <p>Normalement, lorsqu'on utilise l'authentification basique, les
218 fournisseurs spécifiés via la directive <directive
219 module="mod_auth_basic">AuthBasicProvider</directive> tentent de
220 contrôler l'identité d'un utilisateur en recherchant dans leurs
221 bases de données l'existence d'un couple utilisateur/mot de passe
222 correspondant. Les mots de passe enregistrés sont en général
223 chiffrés, mais ce n'est pas systématique ; chaque fournisseur peut
224 choisir son propre mode de stockage des mots de passe.</p>
226 <p>Lorsqu'on utilise l'authentification de type Digest, les
227 fournisseurs spécifiés par la directive <directive
228 module="mod_auth_digest">AuthDigestProvider</directive> effectuent
229 une recherche similaire dans leurs bases de
230 données pour trouver un couple utilisateur/mot de passe
231 correspondant. Cependant, à la différence de l'authentification
232 basique, les données associées à chaque utilisateur et comportant le
233 nom d'utilisateur, le domaine de protection (realm) et le mot de
234 passe doivent être contenues dans une chaîne chiffrée (Voir le
236 href="http://tools.ietf.org/html/rfc2617#section-3.2.2.2">RFC 2617,
237 Section 3.2.2.2</a> pour plus de détails à propos du type de
238 chiffrement utilisé pour cette chaîne).</p>
240 <p>A cause de la différence entre les méthodes de stockage des
241 données des authentifications de type basique et digest, le passage
242 d'une méthode d'authentification de type digest à une méthode
243 d'authentification de type basique requiert l'attribution de
245 mots de passe à chaque utilisateur, car leur mots de passe existant
246 ne peut pas être extrait à partir du schéma de stockage utilisé
247 par les fournisseurs d'authentification de type digest.</p>
249 <p>Si la directive <directive>AuthBasicUseDigestAlgorithm</directive> est
250 définie à la valeur <code>MD5</code>, le mot de passe d'un
251 utilisateur dans le cas de l'authentification basique sera vérifié
252 en utilisant le même format de chiffrement que dans le cas de
253 l'authentification de type digest. Tout d'abord, une chaîne
254 comportant le nom d'utilisateur, le domaine de protection (realm) et
255 le mot de passe est générée sous forme de condensé (hash) en
256 utilisant l'algorithme MD5 ; puis le nom d'utilisateur et cette
257 chaîne chiffrée sont transmis aux fournisseurs spécifiés via la
259 module="mod_auth_basic">AuthBasicProvider</directive> comme si la
260 directive <directive module="mod_authn_core">AuthType</directive>
261 était définie à <code>Digest</code> et si l'authentification de type
262 Digest était utilisée.
265 <p>Grâce à cette directive, un site peut basculer d'une
266 authentification de type digest à basique sans devoir changer les
267 mots de passe des utilisateurs. </p>
270 Le processus inverse consistant à passer d'une authentification de
271 type basique à digest sans changer les mots de passe n'est en
272 général pas possible. Les mots de passe enregistrés dans le cas
273 d'une authentification de type basique ne pourront être extraits
274 et chiffrés à nouveau selon le schéma de l'authentification de
275 type digest, que s'ils ont été stockés en clair ou selon un schéma de
276 chiffrement réversible.
280 Seuls les fournisseurs qui supportent l'authentification de type
281 digest pourront authentifier les utilisateurs lorsque la directive
282 <directive>AuthBasicUseDigestAlgorithm</directive>
283 est définie à <code>MD5</code>. L'utilisation d'un autre
284 fournisseur provoquera un message d'erreur et le client se verra
285 refuser l'accès.</note>