]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_authnz_ldap.xml.fr
XML updates.
[apache] / docs / manual / mod / mod_authnz_ldap.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1675455 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
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
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
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.
23 -->
24
25 <modulesynopsis metafile="mod_authnz_ldap.xml.meta">
26
27 <name>mod_authnz_ldap</name>
28 <description>Permet d'utiliser un annuaire LDAP pour l'authentification
29 HTTP de base.</description>
30 <status>Extension</status>
31 <sourcefile>mod_authnz_ldap.c</sourcefile>
32 <identifier>authnz_ldap_module</identifier>
33
34 <summary>
35     <p>Ce module permet aux frontaux d'authentification comme
36     <module>mod_auth_basic</module> d'authentifier les utilisateurs via
37     un annuaire ldap.</p>
38
39     <p><module>mod_authnz_ldap</module> supporte les fonctionnalit&eacute;s
40     suivantes :</p>
41
42     <ul>
43       <li>Support v&eacute;rifi&eacute; du <a
44       href="http://www.openldap.org/">OpenLDAP SDK</a> (versions 1.x et
45       2.x), du <a href="http://developer.novell.com/ndk/cldap.htm">
46       Novell LDAP SDK</a> et du SDK <a
47       href="http://www.iplanet.com/downloads/developer/">iPlanet
48       (Netscape)</a>.</li>
49
50       <li>Impl&eacute;mentation de politiques d'autorisation complexes en les
51       d&eacute;finissant via des filtres LDAP.</li>
52
53       <li>Mise en oeuvre d'une mise en cache des op&eacute;rations LDAP
54       &eacute;labor&eacute;e via <a href="mod_ldap.html">mod_ldap</a>.</li>
55
56       <li>Support de LDAP via SSL (n&eacute;cessite le SDK Netscape) ou TLS
57       (n&eacute;cessite le SDK OpenLDAP 2.x ou le SDK LDAP Novell).</li>
58     </ul>
59
60     <p>Lorsqu'on utilise <module>mod_auth_basic</module>, ce module est
61     invoqu&eacute; en affectant la valeur <code>ldap</code> &agrave; la directive
62     <directive module="mod_auth_basic">AuthBasicProvider</directive>.</p>
63 </summary>
64
65 <seealso><module>mod_ldap</module></seealso>
66 <seealso><module>mod_auth_basic</module></seealso>
67 <seealso><module>mod_authz_user</module></seealso>
68 <seealso><module>mod_authz_groupfile</module></seealso>
69
70 <section id="contents"><title>Sommaire</title>
71
72     <ul>
73       <li> <a href="#gcaveats">Mises en garde &agrave; caract&egrave;re g&eacute;n&eacute;ral</a> </li>
74       <li> <a href="#operation">Mode op&eacute;ratoire</a>
75
76         <ul>
77           <li><a href="#authenphase">La phase
78           d'authentification</a></li>
79
80           <li><a href="#authorphase">La phase d'autorisation</a></li>
81         </ul>
82       </li>
83
84       <li>
85         <a href="#requiredirectives">Les directives requises</a>
86
87         <ul>
88           <li><a href="#requser">Require ldap-user</a></li>
89           <li><a href="#reqgroup">Require ldap-group</a></li>
90           <li><a href="#reqdn">Require ldap-dn</a></li>
91           <li><a href="#reqattribute">Require ldap-attribute</a></li>
92           <li><a href="#reqfilter">Require ldap-filter</a></li>
93           <li><a href="#reqsearch">Require ldap-search</a></li>
94         </ul>
95       </li>
96
97       <li><a href="#examples">Exemples</a></li>
98       <li><a href="#usingtls">Utilisation de TLS</a></li>
99       <li><a href="#usingssl">Utilisation de SSL</a></li>
100       <li><a href="#exposed">Mise &agrave; disposition des informations de
101       connexion</a></li>
102       <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
103       <li>
104         <a href="#frontpage">Utilisation de Microsoft FrontPage avec
105         <module>mod_authnz_ldap</module></a>
106
107         <ul>
108           <li><a href="#howitworks">Comment &ccedil;a marche</a></li>
109           <li><a href="#fpcaveats">Mises en garde</a></li>
110         </ul>
111       </li>
112     </ul>
113 </section>
114
115 <section id="gcaveats"><title>Mises en garde &agrave; caract&egrave;re g&eacute;n&eacute;ral</title>
116 <p>Ce module effectue une mise en cache des r&eacute;sultats du processus
117 d'authentification et d'autorisation en fonction de la configuration du
118 module <module>mod_ldap</module>. Les modifications effectu&eacute;es au niveau
119 du serveur LDAP d'arri&egrave;re-plan comme les
120 verrouillages ou r&eacute;vocations d'utilisateurs, les changements de mot de
121 passe, ou les changements d'appartenance &agrave; un groupe (et cette liste
122 n'est pas exhaustive), ne seront pas imm&eacute;diatement propag&eacute;es jusqu'au
123 serveur HTTP. Consultez les directives du module
124 <module>mod_ldap</module> pour plus de d&eacute;tails &agrave; propos de la
125 configuration de la mise en cache.
126 </p>
127 </section>
128
129 <section id="operation"><title>Mode op&eacute;ratoire</title>
130
131     <p>L'utilisateur se voit accorder l'acc&egrave;s selon un processus en deux
132     phases. La premi&egrave;re phase est l'authentification, au cours de
133     laquelle le fournisseur d'authentification
134     <module>mod_authnz_ldap</module> v&eacute;rifie que les informations de
135     connexion de l'utilisateur sont valides. Elle est aussi connue sous
136     le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
137     dans le code source : <em>search/bind</em>). La deuxi&egrave;me
138     phase est l'autorisation, au cours de laquelle
139     <module>mod_authnz_ldap</module> d&eacute;termine si l'utilisateur
140     authentifi&eacute; a la permission d'acc&eacute;der &agrave; la ressource consid&eacute;r&eacute;e.
141     Elle est aussi connue sous le nom de phase de
142     <em>comparaison</em> (<em>compare</em>).</p>
143
144     <p><module>mod_authnz_ldap</module> comporte un fournisseur
145     d'authentification authn_ldap et un gestionnaire d'autorisation
146     authz_ldap. Le fournisseur d'authentification authn_ldap peut &ecirc;tre
147     invoqu&eacute; en affectant la valeur <code>ldap</code> &agrave; la directive
148     <directive module="mod_auth_basic">AuthBasicProvider</directive>. Le
149     gestionnaire d'autorisation authz_ldap enrichit la liste des types
150     d'autorisations de la directive <directive
151     module="mod_authz_core">Require</directive> en y ajoutant les
152     valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
153     <code>ldap-group</code>.</p>
154
155 <section id="authenphase"><title>La phase d'authentification</title>
156
157     <p>Au cours de la phase d'authentification,
158     <module>mod_authnz_ldap</module> recherche une entr&eacute;e de l'annuaire
159     LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
160     Si une correspondance unique est trouv&eacute;e,
161     <module>mod_authnz_ldap</module> tente de se connecter au serveur
162     h&eacute;bergeant l'annuaire LDAP en utilisant le DN de l'entr&eacute;e et le mot
163     de passe fourni par le client HTTP. Comme ce processus effectue tout
164     d'abord une recherche, puis une connexion, il est aussi connu sous
165     le nom de phase de recherche/connexion. Voici le d&eacute;tail des &eacute;tapes
166     constituant la phase de recherche/connexion :</p>
167
168     <ol>
169       <li>Confection d'un filtre de recherche en combinant les attribut
170       et filtre d&eacute;finis par la directive <directive module="mod_authnz_ldap"
171       >AuthLDAPURL</directive> avec le nom d'utilisateur et le mot de
172       passe fournis par le client HTTP.</li>
173
174       <li>Recherche dans l'annuaire LDAP en utilisant le filtre
175       confectionn&eacute; pr&eacute;c&eacute;demment. Si le r&eacute;sultat de la recherche est
176       n&eacute;gatif ou comporte plusieurs entr&eacute;es, refus ou restriction de
177       l'acc&egrave;s.</li>
178
179       <li>Extraction du DN (distinguished name) de l'entr&eacute;e issue du
180       r&eacute;sultat de la recherche, et tentative de connexion au serveur
181       LDAP en utilisant ce DN et le mot de passe fournis par le client
182       HTTP. Si la connexion &eacute;choue, refus ou restriction de
183       l'acc&egrave;s.</li>
184     </ol>
185
186     <p>Les directives utilis&eacute;es durant la phase de recherche/connexion
187     sont les suivantes :</p>
188
189     <table>
190       <columnspec><column width=".3"/><column width=".7"/></columnspec>
191       <tr>
192         <td><directive
193         module="mod_authnz_ldap">AuthLDAPURL</directive></td>
194
195         <td>Sp&eacute;cifie le serveur LDAP, le DN de base, l'attribut &agrave;
196         utiliser pour la recherche, ainsi que les filtres de recherche
197         suppl&eacute;mentaires.</td>
198       </tr>
199
200       <tr>
201         <td><directive
202         module="mod_authnz_ldap">AuthLDAPBindDN</directive></td>
203
204         <td>Un DN optionnel pour se connecter durant la phase de
205         recherche.</td>
206       </tr>
207
208       <tr>
209         <td><directive
210         module="mod_authnz_ldap">AuthLDAPBindPassword</directive></td>
211
212         <td>Un mot de passe optionnel pour se connecter durant la phase
213         de recherche.</td>
214       </tr>
215     </table>
216 </section>
217
218 <section id="authorphase"><title>La phase d'autorisation</title>
219
220     <p>Au cours de la phase d'autorisation,
221     <module>mod_authnz_ldap</module> tente de d&eacute;terminer si
222     l'utilisateur est autoris&eacute; &agrave; acc&eacute;der &agrave; la ressource consid&eacute;r&eacute;e. Une
223     grande partie de cette v&eacute;rification consiste pour
224     <module>mod_authnz_ldap</module> en des op&eacute;rations de comparaison au
225     niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
226     sous le nom de phase de comparaison.
227     <module>mod_authnz_ldap</module> accepte les directives <directive
228     module="mod_authz_core">Require</directive> suivantes pour
229     d&eacute;terminer si les informations de connexion permettent d'accorder
230     l'acc&egrave;s &agrave; l'utilisateur :</p>
231
232     <ul>
233       <li>Avec la directive <a
234       href="#reqgroup"><code>Require ldap-user</code></a>,
235       l'autorisation d'acc&egrave;s est accord&eacute;e si le nom d'utilisateur
236       sp&eacute;cifi&eacute; par la directive correspond au nom d'utilisateur fourni
237       par le client.</li>
238
239       <li>Avec la directive <a href="#reqdn"><code>Require
240       ldap-dn</code></a>, l'autorisation d'acc&egrave;s est accord&eacute;e si le DN
241       sp&eacute;cifi&eacute; par la directive correspond au DN extrait du r&eacute;sultat de
242       la recherche dans l'annuaire LDAP.</li>
243
244       <li>Avec la directive <a
245       href="#reqgroup"><code>Require ldap-group</code></a>,
246       l'autorisation d'acc&egrave;s est accord&eacute;e si le DN extrait du r&eacute;sultat de
247       la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
248       par le client) appartient au groupe LDAP sp&eacute;cifi&eacute; par la
249       directive, ou &eacute;ventuellement &agrave; un de ses sous-groupes.</li>
250
251       <li>Avec la directive <a href="#reqattribute">
252       <code>Require ldap-attribute</code></a>, l'autorisation d'acc&egrave;s
253       est accord&eacute;e si la valeur de l'attribut extraite de la recherche
254       dans l'annuaire LDAP correspond &agrave; la valeur sp&eacute;cifi&eacute;e par la
255       directive.</li>
256
257       <li>Avec la directive <a href="#reqfilter">
258       <code>Require ldap-filter</code></a>, l'autorisation d'acc&egrave;s
259       est accord&eacute;e si le filtre de recherche renvoie un objet
260       utilisateur unique qui corresponde au DN de l'utilisateur
261       authentifi&eacute;.</li>
262
263       <li>Avec la directive <a href="#reqsearch">
264       <code>Require ldap-search</code></a>, l'autorisation d'acc&egrave;s
265       est accord&eacute;e si le filtre de recherche renvoie avec succ&egrave;s
266       un seul objet correspondant aux crit&egrave;res avec tout nom distinctif
267       (DN).</li>
268
269       <li>dans tous les autres cas, refus ou restriction de
270       l'acc&egrave;s.</li>
271     </ul>
272
273     <p>Sous r&eacute;serve du chargement de modules d'autorisation
274     suppl&eacute;mentaires, d'autres valeurs de la directive <directive
275     module="mod_authz_core">Require</directive> peuvent &ecirc;tre
276     sp&eacute;cifi&eacute;es.</p>
277
278     <ul>
279         <li>L'acc&egrave;s est accord&eacute; &agrave; tous les utilisateurs authentifi&eacute;s si
280         une directive <a href="#requser"><code>Require
281         valid-user</code></a> est pr&eacute;sente (n&eacute;cessite le module
282         <module>mod_authz_user</module>).</li>
283
284         <li>Avec la directive <a
285         href="#reqgroup"><code>Require group</code></a>, l'autorisation
286         d'acc&egrave;s est accord&eacute;e si le module
287         <module>mod_authz_groupfile</module> a &eacute;t&eacute; charg&eacute; et si la
288         directive <directive
289         module="mod_authz_groupfile">AuthGroupFile</directive> a &eacute;t&eacute;
290         d&eacute;finie.</li>
291
292         <li>etc...</li>
293      </ul>
294
295
296     <p>Durant la phase de comparaison, <module>mod_authnz_ldap</module>
297     utilise les directives suivantes :</p>
298
299     <table>
300       <columnspec><column width=".4"/><column width=".6"/></columnspec>
301       <tr>
302         <td><directive module="mod_authnz_ldap">AuthLDAPURL</directive>
303         </td>
304
305         <td>On utilise l'attribut sp&eacute;cifi&eacute; dans l'URL pour les
306         op&eacute;rations de comparaison initi&eacute;es par la directive
307         <code>Require ldap-user</code>.</td>
308       </tr>
309
310       <tr>
311         <td><directive
312         module="mod_authnz_ldap">AuthLDAPCompareDNOnServer</directive></td>
313
314         <td>D&eacute;termine le comportement de la directive <code>Require
315         ldap-dn</code>.</td>
316       </tr>
317
318       <tr>
319         <td><directive
320         module="mod_authnz_ldap">AuthLDAPGroupAttribute</directive></td>
321
322         <td>D&eacute;termine l'attribut utilis&eacute; pour les op&eacute;rations de
323         comparaison initi&eacute;es par la directive <code>Require
324         ldap-group</code>.</td>
325       </tr>
326
327       <tr>
328         <td><directive
329         module="mod_authnz_ldap">AuthLDAPGroupAttributeIsDN</directive></td>
330
331         <td>Sp&eacute;cifie si l'on doit utiliser le DN ou le nom de
332         l'utilisateur lors des op&eacute;rations de comparaison initi&eacute;es par la
333         directive <code>Require ldap-group</code>.</td>
334       </tr>
335
336       <tr>
337         <td><directive
338         module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive></td>
339
340         <td>D&eacute;termine la profondeur maximale de l'arborescence des
341         sous-groupes qui seront &eacute;valu&eacute;s au cours des op&eacute;rations de
342         comparaisons initi&eacute;es par la directive <code>Require
343         ldap-group</code>.</td>
344       </tr>
345
346       <tr>
347         <td><directive
348         module="mod_authnz_ldap">AuthLDAPSubGroupAttribute</directive></td>
349
350         <td>D&eacute;termine l'attribut &agrave; utiliser lors de l'extraction de
351         membres de sous-groupes du groupe courant au cours des
352         op&eacute;rations de comparaison initi&eacute;es par la directive
353         <code>Require ldap-group</code>.</td>
354       </tr>
355
356       <tr>
357         <td><directive
358         module="mod_authnz_ldap">AuthLDAPSubGroupClass</directive></td>
359
360         <td>Sp&eacute;cifie les valeurs de classe d'objet LDAP &agrave; utiliser pour
361         d&eacute;terminer si les objets extraits de l'annuaire sont bien des
362         objets de type groupe (et non des objets de type utilisateur),
363         au cours du traitement des sous-groupes initi&eacute; par la directive
364         <code>Require ldap-group</code>.</td>
365       </tr>
366     </table>
367 </section>
368 </section>
369
370 <section id="requiredirectives"><title>Les directives requises</title>
371
372     <p>Les directives <directive
373     module="mod_authz_core">Require</directive> d'Apache sont utilis&eacute;es
374     au cours de la phase d'autorisation afin de s'assurer que
375     l'utilisateur est autoris&eacute; &agrave; acc&eacute;der &agrave; une ressource.
376     mod_authnz_ldap enrichit la liste des types d'autorisations avec les
377     valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
378     <code>ldap-group</code>, <code>ldap-attribute</code> et
379     <code>ldap-filter</code>. D'autres types d'autorisations sont
380     disponibles, sous r&eacute;serve du chargement de modules d'autorisation
381     suppl&eacute;mentaires.</p>
382
383     <p>A partir de la version 2.4.8, les directives require LDAP
384     supportent les <a href="../expr.html">expressions</a>.</p>
385
386 <section id="requser"><title>Require ldap-user</title>
387
388     <p>La directive <code>Require ldap-user</code> permet de sp&eacute;cifier
389     les noms des utilisateurs autoris&eacute;s &agrave; acc&eacute;der &agrave; la ressource.
390     Lorsque <module>mod_authnz_ldap</module> a extrait un DN unique de
391     l'annuaire LDAP, il effectue une op&eacute;ration de comparaison LDAP en
392     utilisant le nom d'utilisateur sp&eacute;cifi&eacute; par la directive
393     <code>Require ldap-user</code>, pour v&eacute;rifier si ce nom
394     d'utilisateur correspond &agrave; l'entr&eacute;e LDAP extraite. On peut accorder
395     l'acc&egrave;s &agrave; plusieurs utilisateurs en pla&ccedil;ant plusieurs nom
396     d'utilisateurs sur la m&ecirc;me ligne s&eacute;par&eacute;s par des espaces. Si un nom
397     d'utilisateur contient des espaces, il doit &ecirc;tre entour&eacute; de
398     guillemets. On peut aussi accorder l'acc&egrave;s &agrave; plusieurs utilisateurs
399     en utilisant une directive <code>Require ldap-user</code> par
400     utilisateur. Par exemple, avec la directive <directive
401     module="mod_authnz_ldap">AuthLDAPURL</directive> d&eacute;finie &agrave;
402     <code>ldap://ldap/o=Example?cn</code> (sp&eacute;cifiant donc que l'attribut
403     <code>cn</code> sera utilis&eacute; pour les recherches), on pourra
404     utiliser les directives Require suivantes pour restreindre l'acc&egrave;s
405     :</p>
406 <highlight language="config">
407 Require ldap-user "Barbara Jenson"
408 Require ldap-user "Fred User"
409 Require ldap-user "Joe Manager"
410 </highlight>
411
412     <p>De par la mani&egrave;re dont <module>mod_authnz_ldap</module> traite
413     cette directive, Barbara Jenson peut s'authentifier comme
414     <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
415     <code>cn</code> sous lequel elle est enregistr&eacute;e dans l'annuaire
416     LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
417     toutes les valeurs de l'attribut dans l'entr&eacute;e LDAP de
418     l'utilisateur.</p>
419
420     <p>Si l'attribut <code>uid</code> avait &eacute;t&eacute; sp&eacute;cifi&eacute; &agrave; la place de
421     l'attribut <code>cn</code> dans l'URL pr&eacute;c&eacute;dente, les trois lignes
422     ci-dessus auraient p&ucirc; &ecirc;tre condens&eacute;es en une seule ligne :</p>
423 <highlight language="config">Require ldap-user bjenson fuser jmanager</highlight>
424 </section>
425
426 <section id="reqgroup"><title>Require ldap-group</title>
427
428     <p>Cette directive permet de sp&eacute;cifier un groupe LDAP dont les
429     membres auront l'autorisation d'acc&egrave;s. Elle prend comme argument le
430     DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
431     guillemets. Par exemple, supposons que l'entr&eacute;e suivante existe dans
432     l'annuaire LDAP :</p>
433 <example><pre>
434 dn: cn=Administrators, o=Example
435 objectClass: groupOfUniqueNames
436 uniqueMember: cn=Barbara Jenson, o=Example
437 uniqueMember: cn=Fred User, o=Example
438 </pre></example>
439
440     <p>La directive suivante autoriserait alors l'acc&egrave;s &agrave; Fred et
441     Barbara :</p>
442 <highlight language="config">Require ldap-group cn=Administrators, o=Example</highlight>
443
444     <p>Les membres peuvent aussi se trouver dans les sous-groupes du
445     groupe LDAP sp&eacute;cifi&eacute; si la directive <directive
446     module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive> a &eacute;t&eacute;
447     d&eacute;finie &agrave; une valeur sup&eacute;rieure &agrave; 0. Par exemple, supposons que les
448     entr&eacute;es suivantes existent dans l'annuaire LDAP :</p>
449 <example><pre>
450 dn: cn=Employees, o=Example
451 objectClass: groupOfUniqueNames
452 uniqueMember: cn=Managers, o=Example
453 uniqueMember: cn=Administrators, o=Example
454 uniqueMember: cn=Users, o=Example
455
456 dn: cn=Managers, o=Example
457 objectClass: groupOfUniqueNames
458 uniqueMember: cn=Bob Ellis, o=Example
459 uniqueMember: cn=Tom Jackson, o=Example
460
461 dn: cn=Administrators, o=Example
462 objectClass: groupOfUniqueNames
463 uniqueMember: cn=Barbara Jenson, o=Example
464 uniqueMember: cn=Fred User, o=Example
465
466 dn: cn=Users, o=Example
467 objectClass: groupOfUniqueNames
468 uniqueMember: cn=Allan Jefferson, o=Example
469 uniqueMember: cn=Paul Tilley, o=Example
470 uniqueMember: cn=Temporary Employees, o=Example
471
472 dn: cn=Temporary Employees, o=Example
473 objectClass: groupOfUniqueNames
474 uniqueMember: cn=Jim Swenson, o=Example
475 uniqueMember: cn=Elliot Rhodes, o=Example
476 </pre></example>
477
478     <p>Les directives suivantes autoriseraient alors l'acc&egrave;s &agrave; Bob
479     Ellis, Tom Jackson, Barbara Jenson, Fred User, Allan Jefferson, et
480     Paul Tilley, mais l'interdiraient &agrave; Jim Swenson, ou Elliot Rhodes
481     (car ils sont situ&eacute;s dans un sous-groupe de niveau de profondeur 2)
482     :</p>
483 <highlight language="config">
484 Require ldap-group cn=Employees, o=Example
485 AuthLDAPMaxSubGroupDepth 1
486 </highlight>
487
488     <p>Le comportement de cette directive est modifi&eacute; par les directives
489     <directive
490     module="mod_authnz_ldap">AuthLDAPGroupAttribute</directive>,
491     <directive
492     module="mod_authnz_ldap">AuthLDAPGroupAttributeIsDN</directive>,
493     <directive
494     module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive>,
495     <directive
496     module="mod_authnz_ldap">AuthLDAPSubGroupAttribute</directive>, et
497     <directive
498     module="mod_authnz_ldap">AuthLDAPSubGroupClass</directive>.</p>
499 </section>
500
501 <section id="reqdn"><title>Require ldap-dn</title>
502
503     <p>La directive <code>Require ldap-dn</code> permet &agrave;
504     l'administrateur d'accorder l'utorisation d'acc&egrave;s en fonction du DN.
505     Elle permet de sp&eacute;cifier un DN pour lequel l'acc&egrave;s est autoris&eacute;. Si
506     le DN extrait de
507     l'annuaire correspond au DN sp&eacute;cifi&eacute; par la directive <code>Require
508     ldap-dn</code>, l'autorisation d'acc&egrave;s est accord&eacute;e. Note :
509     n'entourez pas Le DN de guillemets.</p>
510
511     <p>La directive suivante accorderait l'acc&egrave;s &agrave; un DN sp&eacute;cifique
512     :</p>
513 <highlight language="config">Require ldap-dn cn=Barbara Jenson, o=Example</highlight>
514
515     <p>Le comportement ce cette directive est modifi&eacute; par la directive
516     <directive
517     module="mod_authnz_ldap">AuthLDAPCompareDNOnServer</directive>.</p>
518 </section>
519
520 <section id="reqattribute"><title>Require ldap-attribute</title>
521
522     <p>La directive <code>Require ldap-attribute</code> permet &agrave;
523     l'administrateur d'accorder l'autorisation d'acc&egrave;s en fonction des
524     attributs de l'utilisateur authentifi&eacute; dans l'annuaire LDAP. Si la
525     valeur de l'attribut dans l'annuaire correspond &agrave; la valeur
526     sp&eacute;cifi&eacute;e par la directive, l'autorisation d'acc&egrave;s est accord&eacute;e.</p>
527
528     <p>La directive suivante accorderait l'autorisation d'acc&egrave;s &agrave; tout
529     utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
530
531     <highlight language="config">Require ldap-attribute
532     "employeeType=active"</highlight>
533
534     <p>Plusieurs paires attribut/valeur peuvent &ecirc;tre sp&eacute;cifi&eacute;es par une
535     m&ecirc;me directive en les s&eacute;parant par des espaces, ou en d&eacute;finissant
536     plusieurs directives <code>Require ldap-attribute</code>. La logique
537     sous-jacente &agrave; une liste de paires attribut/valeur est une op&eacute;ration
538     OU. L'autorisation d'acc&egrave;s sera accord&eacute;e si au moins une paire
539     attribut/valeur de la liste sp&eacute;cifi&eacute;e correspond &agrave; la paire
540     attribut/valeur de l'utilisateur authentifi&eacute;. Si elle contient des
541     espaces, la valeur, et seulement la valeur, doit &ecirc;tre entour&eacute;e de
542     guillemets.</p>
543
544     <p>La directive suivante accorderait l'autorisation d'acc&egrave;s &agrave; tout
545     utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
546     donc l'attribut status aurait pour valeur "actif" :</p>
547
548     <highlight language="config">Require ldap-attribute city="San Jose"
549     "status=active"</highlight>
550
551 </section>
552
553 <section id="reqfilter"><title>Require ldap-filter</title>
554
555     <p>La directive <code>Require ldap-filter</code> permet &agrave;
556     l'administrateur d'accorder l'autorisation d'acc&egrave;s en fonction d'un
557     filtre de recherche LDAP complexe. L'autorisation d'acc&egrave;s est
558     accord&eacute;e si le DN renvoy&eacute; par le filtre de recherche correspond au
559     DN de l'utilisateur authentifi&eacute;.</p>
560
561     <p>La directive suivante accorderait l'autorisation d'acc&egrave;s &agrave; tout
562     utilisateur poss&eacute;dant un t&eacute;l&eacute;phone cellulaire et faisant partie du
563     d&eacute;partement "marketing" :</p>
564
565     <highlight language="config">Require ldap-filter
566     "&amp;(cell=*)(department=marketing)"</highlight>
567
568     <p>Alors que la directive <code>Require ldap-attribute</code> se
569     contente d'une simple comparaison d'attributs, la directive
570     <code>Require ldap-filter</code> effectue une op&eacute;ration de recherche
571     dans l'annuaire LDAP en utilisant le filtre de recherche sp&eacute;cifi&eacute;.
572     Si une simple comparaison d'attributs suffit, l'op&eacute;ration de
573     comparaison effectu&eacute;e par <code>ldap-attribute</code> sera plus
574     rapide que l'op&eacute;ration de recherche effectu&eacute;e par
575     <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
576     LDAP de grande taille.</p>
577
578     <p>Lorsqu'on utilise une <a href="../expr.html">expression
579     rationnelle</a> au sein d'un filtre, il faut bien s'assurer que les
580     filtres LDAP sont correctement &eacute;chapp&eacute;s afin de se pr&eacute;munir contre
581     toute injection LDAP. A cet effet, il est possible d'utiliser la
582     fonction ldap.</p>
583
584 <highlight language="config">
585 &lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
586   Require ldap-filter
587   "(memberOf=cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}},ou=Websites,o=Example)"
588 &lt;/LocationMatch&gt;
589 </highlight>
590
591 </section>
592
593 <section id="reqsearch"><title>Require ldap-search</title>
594
595     <p>La directive <code>Require ldap-search</code> permet &agrave;
596     l'administrateur d'autoriser l'acc&egrave;s en fonction d'un filtre de
597     recherche LDAP g&eacute;n&eacute;rique contenant une <a
598     href="../expr.html">expression rationnelle</a>. Si le filtre de
599     recherche renvoie une et une seule correspondance, l'acc&egrave;s est
600     accord&eacute; sans tenir compte du DN.</p>
601
602     <p>La directive suivante accorderait l'acc&egrave;s aux URLs correspondant
603     aux objets sp&eacute;cifi&eacute;s dans le serveur LDAP :</p>
604
605 <highlight language="config">
606 &lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
607 Require ldap-search "(cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}}
608 Website)"
609 &lt;/LocationMatch&gt;
610 </highlight>
611
612     <p>Note : il faut bien s'assurer que les
613     expressions sont correctement &eacute;chapp&eacute;s afin de se pr&eacute;munir contre
614     toute injection LDAP. A cet effet, il est possible d'utiliser la
615     fonction <strong>ldap</strong> comme dans l'exemple ci-dessus.</p>
616
617 </section>
618
619 </section>
620
621 <section id="examples"><title>Exemples</title>
622
623     <ul>
624       <li>
625         Accorde l'autorisation d'acc&egrave;s &agrave; tout utilisateur pr&eacute;sent dans
626         l'annuaire LDAP, en utilisant son UID pour effectuer la
627         recherche :
628 <highlight language="config">
629 AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
630 Require valid-user
631 </highlight>
632       </li>
633
634       <li>
635         L'exemple suivant est similaire au pr&eacute;c&eacute;dent, mais les champs
636         dont les valeurs par d&eacute;faut conviennent sont omis. Notez aussi
637         la pr&eacute;sence d'un annuaire LDAP redondant :
638 <highlight language="config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
639 Require valid-user
640 </highlight>
641       </li>
642
643       <li>
644         Encore un exemple similaire aux pr&eacute;c&eacute;dents, mais cette fois,
645         c'est l'attribut cn qui est utilis&eacute; pour la recherche &agrave; la place
646         de l'UID. Notez que ceci peut poser probl&egrave;me si plusieurs
647         utilisateurs de l'annuaire partagent le m&ecirc;me <code>cn</code>,
648         car une recherche sur le <code>cn</code> <strong>doit</strong>
649         retourner une entr&eacute;e et une seule. C'est pourquoi cette
650         approche n'est pas recommand&eacute;e : il est pr&eacute;f&eacute;rable de choisir un
651         attribut de votre annuaire dont l'unicit&eacute; soit garantie, comme
652         <code>uid</code>.
653 <highlight language="config">
654 AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
655 Require valid-user
656 </highlight>
657       </li>
658
659       <li>
660         Accorde l'autorisation d'acc&egrave;s &agrave; tout utilisateur appartenant au
661         groupe Administrateurs. Les utilisateurs doivent s'authentifier
662         en utilisant leur UID :
663 <highlight language="config">
664 AuthLDAPURL ldap://ldap.example.com/o=Example?uid
665 Require ldap-group cn=Administrators, o=Example
666 </highlight>
667       </li>
668
669       <li>
670       Accorde l'acc&egrave;s &agrave; tout utilisateur appartenant au groupe dont le
671       nom correspond au nom d'h&ocirc;te du serveur virtuel. Dans cet exemple,
672       on utilise une <a href="../expr.html">expression</a> pour
673       construire le filtre.
674 <highlight language="config">
675 AuthLDAPURL ldap://ldap.example.com/o=Example?uid
676 Require ldap-group cn=%{SERVER_NAME}, o=Example
677 </highlight>
678       </li>
679
680       <li>
681         Pour l'exemple suivant, on suppose que tout utilisateur de chez
682         Example qui dispose d'un bippeur alphanum&eacute;rique poss&egrave;dera un
683         attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
684         (authentifi&eacute;s via leur UID) se verront accorder l'autorisation
685         d'acc&egrave;s :
686 <highlight language="config">
687 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
688 Require valid-user
689 </highlight>
690       </li>
691
692       <li>
693         <p>L'exemple suivant illustre la puissance des filtres pour
694         effectuer des requ&ecirc;tes complexes. Sans les filtres, il aurait
695         &eacute;t&eacute; n&eacute;cessaire de cr&eacute;er un nouveau groupe LDAP et de s'assurer
696         de la synchronisation des membres du groupe avec les
697         utilisateurs poss&eacute;dant un bippeur. Tout devient limpide avec les
698         filtres. Nous avons pour but d'accorder l'autorisation d'acc&egrave;s &agrave;
699         tout utilisateur disposant d'un bippeur ainsi qu'&agrave; Joe Manager
700         qui ne poss&egrave;de pas de bippeur, mais doit tout de m&ecirc;me pouvoir
701         acc&eacute;der &agrave; la ressource :</p>
702 <highlight language="config">
703 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
704 Require valid-user
705 </highlight>
706
707         <p>Ce dernier exemple peut sembler confus au premier abord ; en
708         fait, il permet de mieux comprendre &agrave; quoi doit ressembler le
709         filtre en fonction de l'utilisateur qui se connecte. Si Fred
710         User se connecte en tant que <code>fuser</code>, le filtre devra
711         ressembler &agrave; :</p>
712
713         <example>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</example>
714
715         <p>Un recherche avec le filtre ci-dessus ne retournera un
716         r&eacute;sultat positif que si <em>fuser</em> dispose d'un bippeur. Si
717         Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
718         devra ressembler &agrave; :</p>
719
720         <example>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</example>
721
722         <p>Un recherche avec le filtre ci-dessus retournera un
723         r&eacute;sultat positif que <em>jmanager</em> dispose d'un
724         bippeur ou non</p>
725       </li>
726     </ul>
727 </section>
728
729 <section id="usingtls"><title>Utilisation de TLS</title>
730
731     <p>Pour l'utilisation de TLS, voir les directives du module
732     <module>mod_ldap</module> <directive
733     module="mod_ldap">LDAPTrustedClientCert</directive>, <directive
734     module="mod_ldap">LDAPTrustedGlobalCert</directive> et <directive
735     module="mod_ldap">LDAPTrustedMode</directive>.</p>
736
737     <p>Un second param&egrave;tre optionnel peut &ecirc;tre ajout&eacute; &agrave; la directive
738     <directive module="mod_authnz_ldap">AuthLDAPURL</directive> pour
739     remplacer le type de connexion par d&eacute;faut d&eacute;fini par la directive
740     <directive module="mod_ldap">LDAPTrustedMode</directive>. Ceci
741     permettra de promouvoir la connexion &eacute;tablie via une URL du type
742     <em>ldap://</em> au statut de connection s&eacute;curis&eacute;e sur le m&ecirc;me
743     port.</p>
744 </section>
745
746 <section id="usingssl"><title>Utilisation de SSL</title>
747
748     <p>Pour l'utilisation de SSL, voir les directives du module
749     <module>mod_ldap</module> <directive
750     module="mod_ldap">LDAPTrustedClientCert</directive>, <directive
751     module="mod_ldap">LDAPTrustedGlobalCert</directive> et <directive
752     module="mod_ldap">LDAPTrustedMode</directive>.</p>
753
754     <p>Pour sp&eacute;cifier un serveur LDAP s&eacute;curis&eacute;, utilisez
755     <em>ldaps://</em> au lieu de
756     <em>ldap://</em> dans la directive <directive
757     module="mod_authnz_ldap">AuthLDAPURL</directive>.</p>
758 </section>
759
760 <section id="exposed"><title>Mise &agrave; disposition des informations de
761 connexion</title>
762
763     <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
764     sp&eacute;cifi&eacute;s par la directive <directive
765     module="mod_authnz_ldap">authldapurl</directive> sont enregistr&eacute;s
766     dans des variables d'environnement pr&eacute;fix&eacute;es par la cha&icirc;ne
767     "AUTHENTICATE_".</p>
768
769     <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
770     sp&eacute;cifi&eacute;s par la directive <directive
771     module="mod_authnz_ldap">authldapurl</directive> sont enregistr&eacute;s
772     dans des variables d'environnement pr&eacute;fix&eacute;es par la cha&icirc;ne
773     "AUTHORIZE_".</p>
774
775     <p>Si les champs attribut contiennent le nom, le CN et le num&eacute;ro de
776     t&eacute;l&eacute;phone d'un utilisateur, un programme CGI pourra acc&eacute;der &agrave; ces
777     informations sans devoir effectuer une autre requ&ecirc;te LDAP pour
778     les extraire de l'annuaire.</p>
779
780     <p>Ceci a pour effet de simplifier consid&eacute;rablement le code et la
781     configuration n&eacute;cessaire de certaines applications web.</p>
782
783 </section>
784
785 <section id="activedirectory"><title>Utilisation d'Active
786 Directory</title>
787
788     <p>Active Directory peut supporter plusieurs domaines &agrave; la fois.
789     Pour faire la distinction entre les utilisateurs de plusieurs
790     domaines, on peut ajouter &agrave; l'entr&eacute;e de l'utilisateur dans
791     l'annuaire un identifiant appel&eacute; Nom
792     Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
793     compose en g&eacute;n&eacute;ral du nom de compte de l'utilisateur, suivi du nom
794     du domaine consid&eacute;r&eacute;, par exemple <em>untel@nz.example.com</em>.</p>
795
796     <p>Vous voudrez probablement configurer le module
797     <module>mod_authnz_ldap</module> afin de pouvoir authentifier les
798     utilisateurs de n'importe quel domaine de la for&ecirc;t Active Directory.
799     Ainsi, <em>untel@nz.example.com</em> et
800     <em>untel@au.example.com</em> pourront &ecirc;tre authentifi&eacute;s en une
801     seule fois par la m&ecirc;me requ&ecirc;te.</p>
802
803     <p>Pour y parvenir, on utilise le concept de Catalogue Global
804     d'Active Directory. Ce Catalogue Global est une copie en lecture
805     seule des attributs s&eacute;lectionn&eacute;s de tous les serveurs de la for&ecirc;t
806     Active Directory. Une requ&ecirc;te vers le
807     Catalogue Global permet donc d'atteindre tous les domaines en une
808     seule fois, sans avoir &agrave; se connecter aux diff&eacute;rents serveurs, via
809     des liaisons dont certaines peuvent &ecirc;tre lentes.</p>
810
811     <p>Lorsqu'il est activ&eacute;, la Catalogue Global est un serveur
812     d'annuaire ind&eacute;pendant accessible sur le port 3268 (3269 pour SSL).
813     Pour rechercher un utilisateur, effectuez une recherche sur
814     l'attribut <em>userPrincipalName</em>, avec une base de recherche
815     vide, comme suit :</p>
816
817 <highlight language="config">
818 AuthLDAPBindDN apache@example.com
819 AuthLDAPBindPassword password
820 AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
821 </highlight>
822
823     <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
824     la forme<em>untel@nz.example.com</em>.</p>
825
826 </section>
827
828 <section id="frontpage"><title>Utilisation de Microsoft
829     FrontPage avec mod_authnz_ldap</title>
830
831     <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
832     sp&eacute;cifiques &agrave; FrontPage-web (c'est &agrave; dire les modules
833     <module>mod_authn_file</module> et
834     <module>mod_authz_groupfile</module>) pour effectuer toute
835     l'authentification. Malheureusement, il ne suffit pas de modifier
836     l'authentification LDAP en ajoutant les directives appropri&eacute;es, car
837     ceci corromprait les formulaires de <em>Permissions</em> dans le
838     client FrontPage, qui sont cens&eacute;s modifier les fichiers
839     d'autorisation standards au format texte.</p>
840
841     <p>Lorsqu'un site web FrontPage a &eacute;t&eacute; cr&eacute;&eacute;, lui adjoindre
842     l'authentification LDAP consiste &agrave; ajouter les directives suivantes
843     &agrave; <em>chaque</em> fichier <code>.htaccess</code> qui sera cr&eacute;&eacute; dans
844     le site web :</p>
845 <highlight language="config">
846 AuthLDAPURL       "the url"
847 AuthGroupFile     mygroupfile
848 Require group     mygroupfile
849 </highlight>
850
851 <section id="howitworks"><title>Comment &ccedil;a marche</title>
852
853     <p>FrontPage restreint l'acc&egrave;s &agrave; un site web en ajoutant la
854     directive <code>Require valid-user</code> aux fichiers
855     <code>.htaccess</code>. La directive <code>Require valid-user</code>
856     permettra l'acc&egrave;s &agrave; tout utilisateur valide <em>du point de vue
857     LDAP</em>. Cela signifie que tout utilisateur poss&eacute;dant une entr&eacute;e
858     dans l'annuaire LDAP sera consid&eacute;r&eacute; comme valide, alors que
859     FrontPage ne consid&egrave;re comme valides que les utilisateurs
860     enregistr&eacute;s dans le fichier des utilisateurs local. En rempla&ccedil;ant
861     l'autorisation par groupe LDAP par une autorisation par fichier de
862     groupe, Apache sera en mesure de consulter le fichier des
863     utilisateurs local (g&eacute;r&eacute; par FrontPage) - au lieu de l'annuaire LDAP
864     - lors du processus d'autorisation des utilisateurs.</p>
865
866     <p>Une fois les directives ajout&eacute;es selon ce qui pr&eacute;c&egrave;de, les
867     utilisateurs FrontPage pourront effectuer toutes les op&eacute;rations de
868     gestion &agrave; partir du client FrontPage.</p>
869 </section>
870
871 <section id="fpcaveats"><title>Avertissements</title>
872
873     <ul>
874       <li>Lors du choix de l'URL LDAP, l'attribut &agrave; utiliser pour
875       l'authentification doit aussi &ecirc;tre valide pour le fichier des
876       utilisateurs de <module>mod_authn_file</module>. A cette fin,
877       l'UID est id&eacute;al.</li>
878
879       <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
880       administrateurs de FrontPage doivent choisir des noms
881       d'utilisateurs qui existent d&eacute;j&agrave; dans l'annuaire LDAP (pour des
882       raisons &eacute;videntes). De m&ecirc;me, le mot de passe que l'administrateur
883       entre dans le formulaire est ignor&eacute;, car pour l'authentification,
884       Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
885       de passe enregistr&eacute; dans le fichier des utilisateurs, ce qui peut
886       semer la confusion parmi les administrateurs web.</li>
887
888       <!-- XXX is that true? was mod_auth before the aaa change -->
889       <li>Pour supporter FrontPage, Apache doit &ecirc;tre compil&eacute; avec
890       <module>mod_auth_basic</module>, <module>mod_authn_file</module>
891       et <module>mod_authz_groupfile</module>. Ceci est d&ucirc; au fait
892       qu'Apache doit utiliser le fichier de groupes de
893       <module>mod_authz_groupfile</module> pour d&eacute;terminer le niveau
894       d'acc&egrave;s d'un utilisateur au site web FrontPage.</li>
895
896       <li>Les directives doivent &ecirc;tre plac&eacute;es dans les fichiers
897       <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
898       placez dans une section <directive module="core"
899       type="section">Location</directive> ou <directive module="core"
900       type="section">Directory</directive>. Ceci est d&ucirc; au fait que pour savoir
901       o&ugrave; se trouve la liste des utilisateurs valides,
902       <module>mod_authnz_ldap</module> doit &ecirc;tre en mesure d'atteindre
903       la directive <directive
904       module="mod_authz_groupfile">AuthGroupFile</directive> qui se trouve
905       dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
906       de <module>mod_authnz_ldap</module> ne sont pas situ&eacute;es dans le
907       m&ecirc;me fichier <code>.htaccess</code> que les directives FrontPage,
908       la configuration ne fonctionnera pas, car
909       <module>mod_authnz_ldap</module> ne sera jamais en mesure de
910       traiter le fichier <code>.htaccess</code>, et par cons&eacute;quent ne
911       pourra jamais trouver le fichier des utilisateurs g&eacute;r&eacute; par
912       FrontPage.</li>
913     </ul>
914 </section>
915 </section>
916
917 <directivesynopsis>
918 <name>AuthLDAPAuthorizePrefix</name>
919 <description>Sp&eacute;cifie le pr&eacute;fixe ajout&eacute; aux variables d'environnement
920 durant la phase d'autorisation</description>
921 <syntax>AuthLDAPAuthorizePrefix <em>pr&eacute;fixe</em></syntax>
922 <default>AuthLDAPAuthorizePrefix AUTHORIZE_</default>
923 <contextlist><context>directory</context><context>.htaccess</context>
924 </contextlist>
925 <override>AuthConfig</override>
926 <compatibility>Disponible depuis la version 2.3.6</compatibility>
927 <usage>
928     <p>Cette directive permet de sp&eacute;cifier le pr&eacute;fixe ajout&eacute; aux
929     variables d'environnement durant la phase d'autorisation. Si la
930     valeur sp&eacute;cifi&eacute;e est <em>AUTHENTICATE_</em>, les utilisateurs de ces
931     variables d'environnement verront les m&ecirc;mes informations, que le
932     serveur effectue une authentification, une autorisation, ou les
933     deux.</p>
934
935     <note><title>Note</title>
936     Aucune variable d'autorisation n'est d&eacute;finie lorsqu'un utilisateur
937     s'est vu autoriser l'acc&egrave;s via la directive <code>Require
938     valid-user</code>.
939     </note>
940 </usage>
941 </directivesynopsis>
942
943 <directivesynopsis>
944 <name>AuthLDAPBindAuthoritative</name>
945 <description>D&eacute;termine si l'on doit utiliser d'autres fournisseurs
946 d'authentification lorsque le serveur ne peut pas valider les donn&eacute;es
947 d'authentification de l'utilisateur, alors que ce dernier poss&egrave;de un
948 DN.</description>
949 <syntax>AuthLDAPBindAuthoritative<em>off|on</em></syntax>
950 <default>AuthLDAPBindAuthoritative on</default>
951 <contextlist><context>directory</context><context>.htaccess</context>
952 </contextlist>
953 <override>AuthConfig</override>
954 <usage>
955     <p>Par d&eacute;faut, des fournisseurs d'authentification sont appel&eacute;s
956     si un utilisateur ne poss&egrave;de pas de DN, mais ne le sont pas si
957     l'utilisateur poss&egrave;de un DN et si son mot de passe ne peut pas &ecirc;tre
958     v&eacute;rifi&eacute; lors d'une connexion au serveur LDAP. Si la directive
959     <directive
960     module="mod_authnz_ldap">AuthLDAPBindAuthoritative</directive> est
961     d&eacute;finie &agrave; <em>off</em>, d'autres modules d'authentification
962     configur&eacute;s auront une chance de valider le mot de passe de
963     l'utilisateur si la tentative de connexion au serveur LDAP &eacute;choue
964     pour une raison quelconque (avec les donn&eacute;es d'authentification
965     fournies).</p>
966     <p>Ceci permet aux utilisateurs pr&eacute;sent &agrave; la fois dans l'annuaire
967     LDAP et dans un fichier <directive
968     module="mod_authn_file">AuthUserFile</directive> de s'authentifier
969     lorsque le serveur LDAP est disponible, alors que le compte de
970     l'utilisateur est verrouill&eacute; ou que son mot de passe est
971     inutilisable pour une raison quelconque.</p>
972 </usage>
973 <seealso><directive module="mod_authn_file">AuthUserFile</directive></seealso>
974 <seealso><directive module="mod_auth_basic">AuthBasicProvider</directive></seealso>
975 </directivesynopsis>
976
977 <directivesynopsis>
978 <name>AuthLDAPInitialBindAsUser</name>
979 <description>D&eacute;termine si le serveur effectue la recherche initiale du
980 DN en utilisant le nom propre de l'utilisateur pour l'authentification
981 de base
982 et non de mani&egrave;re anonyme, ou en utilisant des donn&eacute;es d'authentification
983 cod&eacute;es en dur pour le serveur</description>
984 <syntax>AuthLDAPInitialBindAsUser <em>off|on</em></syntax>
985 <default>AuthLDAPInitialBindAsUser off</default>
986 <contextlist><context>directory</context><context>.htaccess</context>
987 </contextlist>
988 <override>AuthConfig</override>
989 <compatibility>Disponible depuis la version 2.3.6</compatibility>
990 <usage>
991     <p>Par d&eacute;faut, le serveur convertit le nom d'utilisateur pour
992     l'authentification de base en nom distinctif LDAP (DN) soit de
993     mani&egrave;re anonyme, soit avec un couple nom/mot de passe d&eacute;di&eacute;. Cette
994     directive permet de forcer le serveur &agrave; utiliser les v&eacute;ritables nom
995     d'utilisateur et mot de passe fournis par l'utilisateur pour
996     effectuer la recherche initiale du DN.</p>
997
998      <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
999      et n&eacute;cessite de l&eacute;g&egrave;res modifications, voir la directive <directive
1000      module="mod_authnz_ldap">AuthLDAPInitialBindPattern</directive>.</p>
1001
1002      <p>Cette directive ne doit &ecirc;tre utilis&eacute;e que si votre serveur LDAP
1003      n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1004      utiliser de nom d'utilisateur d&eacute;di&eacute; via la directive <directive
1005      module="mod_authnz_ldap">AuthLDAPBindDN</directive>.
1006      </p>
1007
1008      <note><title>Non disponible dans la cas d'une autorisation seule</title>
1009          On ne peut utiliser cette directive que si ce module
1010          effectue une authentification, et n'a aucun effet si ce module
1011          n'est utilis&eacute; que pour les processus d'autorisation.
1012      </note>
1013 </usage>
1014 <seealso><directive module="mod_authnz_ldap">AuthLDAPInitialBindPattern</directive></seealso>
1015 <seealso><directive module="mod_authnz_ldap">AuthLDAPBindDN</directive></seealso>
1016 <seealso><directive module="mod_authnz_ldap">AuthLDAPCompareAsUser</directive></seealso>
1017 <seealso><directive module="mod_authnz_ldap">AuthLDAPSearchAsUser</directive></seealso>
1018 </directivesynopsis>
1019
1020 <directivesynopsis>
1021 <name>AuthLDAPInitialBindPattern</name>
1022 <description>Sp&eacute;cifie la modification a apporter au nom d'utilisateur
1023 pour l'authentification de base lors de l'authentification aupr&egrave;s du
1024 serveur LDAP pour effectuer une recherche de DN</description>
1025 <syntax>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></syntax>
1026 <default>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
1027 distant utilis&eacute; tel quel)</default>
1028 <contextlist><context>directory</context><context>.htaccess</context>
1029 </contextlist>
1030 <override>AuthConfig</override>
1031 <compatibility>Disponible depuis la version 2.3.6</compatibility>
1032 <usage>
1033     <p>Si la directive <directive
1034     module="mod_authnz_ldap">AuthLDAPInitialBindAsUser</directive> est
1035     d&eacute;finie &agrave; <em>ON</em>, le nom utilisateur pour l'authentification de
1036     base sera transform&eacute; selon l'expression rationnelle
1037     <var>regex</var> et l'argument <var>substitution</var> sp&eacute;cifi&eacute;s.</p>
1038
1039     <p>L'expression rationnelle est compar&eacute;e au nom d'utilisateur pour
1040     l'authentification de base courant. L'argument
1041     <var>substitution</var> peut contenir des r&eacute;f&eacute;rences arri&egrave;res, mais
1042     n'effectue aucune autre interpolation de variable.</p>
1043
1044     <p>Cette directive ne doit &ecirc;tre utilis&eacute;e que si votre serveur LDAP
1045      n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1046      utiliser de nom d'utilisateur d&eacute;di&eacute; via la directive <directive
1047      module="mod_authnz_ldap">AuthLDAPBindDN</directive>.
1048      </p>
1049
1050     <highlight language="config"> AuthLDAPInitialBindPattern (.+) $1@example.com </highlight>
1051     <highlight language="config"> AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</highlight>
1052
1053     <note><title>Non disponible dans la cas d'une autorisation seule</title>
1054          On ne peut utiliser cette directive que si ce module
1055          effectue une authentification, et n'a aucun effet si ce module
1056          n'est utilis&eacute; que pour les processus d'autorisation.
1057      </note>
1058     <note><title>D&eacute;bogage</title>
1059         Le DN de substitution est enregistr&eacute; dans la variable
1060         d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
1061         rationnelle ne convient pas, le nom d'utilisateur est utilis&eacute;
1062         tel quel.
1063     </note>
1064 </usage>
1065 <seealso><directive module="mod_authnnz_ldap">AuthLDAPInitialBindAsUser</directive></seealso>
1066 <seealso><directive module="mod_authnnz_ldap">AuthLDAPBindDN</directive></seealso>
1067 </directivesynopsis>
1068
1069 <directivesynopsis>
1070 <name>AuthLDAPBindDN</name>
1071 <description>Un DN optionnel pour se connecter au serveur
1072 LDAP</description>
1073 <syntax>AuthLDAPBindDN <em>dn</em></syntax>
1074 <contextlist><context>directory</context><context>.htaccess</context>
1075 </contextlist>
1076 <override>AuthConfig</override>
1077
1078 <usage>
1079     <p>Cette directive permet de d&eacute;finir un DN optionnel pour se
1080     connecter au serveur afin d'y rechercher des entr&eacute;es. Si aucun DN
1081     n'est sp&eacute;cifi&eacute;, <module>mod_authnz_ldap</module> tentera une
1082     connexion anonyme.</p>
1083 </usage>
1084 </directivesynopsis>
1085
1086 <directivesynopsis>
1087 <name>AuthLDAPBindPassword</name>
1088 <description>Mot de passe &agrave; utiliser en conjonction avec le DN de
1089 connexion</description>
1090 <syntax>AuthLDAPBindPassword <em>mot-de-passe</em></syntax>
1091 <contextlist><context>directory</context><context>.htaccess</context>
1092 </contextlist>
1093 <override>AuthConfig</override>
1094 <compatibility><em>exec:</em> est disponible depuis la version 2.4.5 du
1095 serveur HTTP Apache.</compatibility>
1096
1097 <usage>
1098     <p>Cette directive permet de sp&eacute;cifier un mot de passe &agrave; utiliser en
1099     conjonction avec le DN de connexion. Notez que ce mot de passe
1100     constitue en g&eacute;n&eacute;ral une donn&eacute;e sensible, et doit donc &ecirc;tre prot&eacute;g&eacute;
1101     de mani&egrave;re appropri&eacute;e. Vous ne devez utiliser les directives
1102     <directive
1103     module="mod_authnz_ldap">AuthLDAPBindDN</directive> et <directive
1104     module="mod_authnz_ldap">AuthLDAPBindPassword</directive> que si
1105     vous en avez vraiment besoin pour effectuer une recherche dans
1106     l'annuaire.</p>
1107
1108     <p>Si la valeur commence par exec:, la commande r&eacute;sultante sera
1109     ex&eacute;cut&eacute;e, et la premi&egrave;re ligne renvoy&eacute;e sur la sortie standard sera
1110     utilis&eacute;e comme mot de passe.</p>
1111 <highlight language="config">
1112 #Mot de passe utilis&eacute; tel quel
1113 AuthLDAPBindPassword secret
1114
1115 #Ex&eacute;cute /path/to/program pour obtenir le mot de passe
1116 AuthLDAPBindPassword exec:/path/to/program
1117
1118 #Ex&eacute;cute /path/to/otherProgram avec un argument pour obtenir le mot de passe
1119 AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"
1120 </highlight>
1121
1122 </usage>
1123 </directivesynopsis>
1124
1125 <directivesynopsis>
1126 <name>AuthLDAPCharsetConfig</name>
1127 <description>Chemin du fichier de configuration de la correspondance
1128 langage/jeu de caract&egrave;res</description>
1129 <syntax>AuthLDAPCharsetConfig <em>chemin-fichier</em></syntax>
1130 <contextlist><context>server config</context>
1131 </contextlist>
1132
1133 <usage>
1134     <p>La directive <directive>AuthLDAPCharsetConfig</directive> permet
1135     de d&eacute;finir le chemin du fichier de configuration de la
1136     correspondance langage/jeu de caract&egrave;res. <var>chemin-fichier</var>
1137     est un chemin relatif au r&eacute;pertoire d&eacute;fini par la directive
1138     <directive
1139     module="core">ServerRoot</directive>. Ce fichier contient une liste
1140     de correspondances extension de langage/jeu de caract&egrave;res. La
1141     plupart des administrateurs utilisent le fichier
1142     <code>charset.conv</code> fourni qui associe les extensions de
1143     langage courantes &agrave; leurs jeux de caract&egrave;res.</p>
1144
1145     <p>Le fichier contient des lignes au format suivant :</p>
1146
1147     <example>
1148       <var>extension de langage</var> <var>jeu de caract&egrave;res</var>
1149       [<var>Nom du langage</var>] ...
1150     </example>
1151
1152     <p>L'extension est insensible &agrave; la casse. Les lignes vides et les
1153     lignes commen&ccedil;ant par un di&egrave;se (<code>#</code>) sont ignor&eacute;es.</p>
1154 </usage>
1155 </directivesynopsis>
1156
1157 <directivesynopsis>
1158 <name>AuthLDAPCompareAsUser</name>
1159 <description>Utilisation des donn&eacute;es d'authentification de l'utilisateur
1160 pour effectuer les comparaisons pour l'attribution des autorisations</description>
1161 <syntax>AuthLDAPCompareAsUser on|off</syntax>
1162 <default>AuthLDAPCompareAsUser off</default>
1163 <contextlist><context>directory</context><context>.htaccess</context>
1164 </contextlist>
1165 <override>AuthConfig</override>
1166 <compatibility>Disponible depuis la version version 2.3.6</compatibility>
1167
1168 <usage>
1169     <p>Lorsque cette directive est d&eacute;finie, et si
1170     <module>mod_authnz_ldap</module> a authentifi&eacute; l'utilisateur, les
1171     recherches LDAP pour les autorisations utilisent le nom distinctif
1172     trouv&eacute; (DN) et le mot de passe d'authentification basique HTTP de
1173     l'utilisateur authentifi&eacute; au lieu des donn&eacute;es d'authentification
1174     configur&eacute;es au niveau du serveur.</p>
1175
1176     <p>Les v&eacute;rifications d'autorisation <em>ldap-attribute</em>,
1177     <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
1178     utilisent des comparaisons.</p>
1179
1180     <p>Cette directive n'a d'effet sur les comparaisons effectu&eacute;es au
1181     cours des traitements de groupe imbriqu&eacute;s, et lorsque la directive
1182     <directive module="mod_authnz_ldap">AuthLDAPSearchAsUser</directive>
1183     est aussi activ&eacute;e.</p>
1184
1185     <p>Cette directive ne doit &ecirc;tre utilis&eacute;e que si votre serveur LDAP
1186      n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1187      utiliser de nom d'utilisateur d&eacute;di&eacute; via la directive <directive
1188      module="mod_authnz_ldap">AuthLDAPBindDN</directive>.
1189      </p>
1190 </usage>
1191 <seealso><directive module="mod_authnz_ldap">AuthLDAPInitialBindAsUser</directive></seealso>
1192 <seealso><directive module="mod_authnz_ldap">AuthLDAPSearchAsUser</directive></seealso>
1193 </directivesynopsis>
1194
1195 <directivesynopsis>
1196 <name>AuthLDAPCompareDNOnServer</name>
1197 <description>Utilise le serveur LDAP pour comparer les DNs</description>
1198 <syntax>AuthLDAPCompareDNOnServer on|off</syntax>
1199 <default>AuthLDAPCompareDNOnServer on</default>
1200 <contextlist><context>directory</context><context>.htaccess</context>
1201 </contextlist>
1202 <override>AuthConfig</override>
1203
1204 <usage>
1205     <p>Lorsque cette directive est d&eacute;finie &agrave; on,
1206     <module>mod_authnz_ldap</module> utilise le serveur LDAP pour
1207     comparer les DNs. Il s'agit de la seule m&eacute;thode infaillible pour
1208     comparer les DNs. <module>mod_authnz_ldap</module> va rechercher
1209     dans l'annuaire le DN sp&eacute;cifi&eacute; par la directive <a
1210     href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
1211     comparer avec le DN extrait de l'entr&eacute;e de l'utilisateur. Si cette
1212     directive est &agrave; off, <module>mod_authnz_ldap</module> effectue une
1213     simple comparaison de cha&icirc;nes. Cette derni&egrave;re approche peut produire
1214     des faux n&eacute;gatifs, mais elle est beaucoup plus rapide. Notez
1215     cependant que le cache de <module>mod_ldap</module> peut acc&eacute;l&eacute;rer
1216     la comparaison de DNs dans la plupart des situations.</p>
1217 </usage>
1218 </directivesynopsis>
1219
1220 <directivesynopsis>
1221 <name>AuthLDAPDereferenceAliases</name>
1222 <description>&Agrave; quel moment le module va d&eacute;r&eacute;f&eacute;rencer les
1223 alias</description>
1224 <syntax>AuthLDAPDereferenceAliases never|searching|finding|always</syntax>
1225 <default>AuthLDAPDereferenceAliases always</default>
1226 <contextlist><context>directory</context><context>.htaccess</context>
1227 </contextlist>
1228 <override>AuthConfig</override>
1229
1230 <usage>
1231     <p>Cette directive permet de sp&eacute;cifier &agrave; quel moment
1232     <module>mod_authnz_ldap</module> va d&eacute;r&eacute;f&eacute;rencer les alias au cours
1233     des op&eacute;rations li&eacute;es &agrave; LDAP. La valeur par d&eacute;faut est
1234     <code>always</code>.</p>
1235 </usage>
1236 </directivesynopsis>
1237
1238 <directivesynopsis>
1239 <name>AuthLDAPGroupAttribute</name>
1240 <description>L'attribut LDAP utilis&eacute; pour v&eacute;rifier l'appartenance d'un
1241 utilisateur &agrave; un groupe.</description>
1242 <syntax>AuthLDAPGroupAttribute <em>attribut</em></syntax>
1243 <default>AuthLDAPGroupAttribute member uniquemember</default>
1244 <contextlist><context>directory</context><context>.htaccess</context>
1245 </contextlist>
1246 <override>AuthConfig</override>
1247
1248 <usage>
1249     <p>Cette directive permet de sp&eacute;cifier quel attribut LDAP est
1250     utilis&eacute; pour v&eacute;rifier l'appartenance d'un utilisateur &agrave; un
1251     groupe. On peut sp&eacute;cifier plusieurs attributs en r&eacute;p&eacute;tant cette
1252     directive plusieurs fois. Si la directive n'est pas d&eacute;finie,
1253     <module>mod_authnz_ldap</module> utilise les attributs
1254     <code>member</code> et <code>uniquemember</code>.</p>
1255 </usage>
1256 </directivesynopsis>
1257
1258 <directivesynopsis>
1259 <name>AuthLDAPGroupAttributeIsDN</name>
1260 <description>Utilise le DN de l'utilisateur pour v&eacute;rifier son
1261 appartenance &agrave; un groupe</description>
1262 <syntax>AuthLDAPGroupAttributeIsDN on|off</syntax>
1263 <default>AuthLDAPGroupAttributeIsDN on</default>
1264 <contextlist><context>directory</context><context>.htaccess</context>
1265 </contextlist>
1266 <override>AuthConfig</override>
1267
1268 <usage>
1269     <p>Lorsqu'elle est d&eacute;finie &agrave; <code>on</code>, cette directive
1270     indique que c'est le DN de l'utilisateur qui doit &ecirc;tre utilis&eacute; pour
1271     v&eacute;rifier son appartenance &agrave; un groupe. Dans le cas contraire, c'est
1272     le nom de l'utilisateur qui sera utilis&eacute;. Par exemple, supposons que
1273     le client envoie le nom d'utilisateur <code>bjenson</code>, qui
1274     correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
1275     directive est &agrave; <code>on</code>, <module>mod_authnz_ldap</module> va
1276     v&eacute;rifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
1277     groupe. Dans le cas contraire, <module>mod_authnz_ldap</module>
1278     v&eacute;rifiera si <code>bjenson</code> est un membre du groupe.</p>
1279 </usage>
1280 </directivesynopsis>
1281
1282 <directivesynopsis>
1283 <name>AuthLDAPMaxSubGroupDepth</name>
1284 <description>Sp&eacute;cifie la profondeur d'imbrication des sous-groupes
1285 maximale prise en compte avant l'abandon de la recherche de
1286 l'utilisateur.</description>
1287 <syntax>AuthLDAPMaxSubGroupDepth <var>Nombre</var></syntax>
1288 <default>AuthLDAPMaxSubGroupDepth 0</default>
1289 <contextlist><context>directory</context><context>.htaccess</context>
1290 </contextlist>
1291 <override>AuthConfig</override>
1292 <compatibility>Disponible &agrave; partir de la version 2.3.0 du serveur HTTP
1293 Apache ; la valeur par d&eacute;faut &eacute;tait 10 dans les versions 2.4.x et les
1294 premi&egrave;res versions 2.5</compatibility>
1295
1296 <usage>
1297    <p>Lorsque cette directive est d&eacute;finie &agrave; une valeur <code>X</code>
1298    non nulle, en combinaison avec l'utilisation de la directive
1299    <code>Require ldap-group DN-groupe</code>, les donn&eacute;es de connexion
1300    fournies seront utilis&eacute;es pour v&eacute;rifier l'appartenance de
1301    l'utilisateur &agrave; l'objet de l'annuaire <code>DN-groupe</code> ou &agrave;
1302    tout sous-groupe du groupe courant en tenant compte de la profondeur
1303    d'imbrication maximale <code>X</code> sp&eacute;cifi&eacute;e par la directive.</p>
1304    <p>Se r&eacute;f&eacute;rer &agrave; la section <a href="#reqgroup"><code>Require
1305    ldap-group</code></a> pour un exemple plus d&eacute;taill&eacute;.</p>
1306
1307    <note><title>Performances dans le cas des groupes imbriqu&eacute;s</title>
1308    <p>Lorsque les directives
1309    <directive>AuthLDAPSubGroupAttribute</directive> et
1310    <directive>AuthLDAPGroupAttribute</directive> se recouvrent (comme
1311    c'est le cas par d&eacute;faut et requis par les sch&eacute;mas LDAP courants), la
1312    recherche de sous-groupes au sein de grands groupes peut &ecirc;tre tr&egrave;s
1313    longue. Si vos groupes sont tr&egrave;s grands et non imbriqu&eacute;s, d&eacute;finissez
1314    la directive <directive>AuthLDAPMaxSubGroupDepth</directive> &agrave; 0.</p>
1315    </note>
1316
1317 </usage>
1318 </directivesynopsis>
1319
1320 <directivesynopsis>
1321 <name>AuthLDAPRemoteUserAttribute</name>
1322 <description>Sp&eacute;cifie l'attribut dont la valeur renvoy&eacute;e au cours de la
1323 requ&ecirc;te de l'utilisateur sera utilis&eacute;e pour d&eacute;finir la variable
1324 d'environnement REMOTE_USER</description>
1325 <syntax>AuthLDAPRemoteUserAttribute uid</syntax>
1326 <default>none</default>
1327 <contextlist><context>directory</context><context>.htaccess</context>
1328 </contextlist>
1329 <override>AuthConfig</override>
1330
1331 <usage>
1332     <p>Lorsque cette directive est d&eacute;finie, la variable d'environnement
1333     <code>REMOTE_USER</code> sera d&eacute;finie &agrave; la valeur de l'attribut
1334     sp&eacute;cifi&eacute;. Assurez-vous que cet attribut soit bien inclus dans la
1335     liste d'attributs sp&eacute;cifi&eacute;s dans la d&eacute;finition de AuthLDAPUrl ; dans
1336     le cas contraire, cette directive n'aurait aucun effet. Si elle est
1337     pr&eacute;sente, cette directive l'emporte sur <directive
1338     module="mod_authnz_ldap">AuthLDAPRemoteUserIsDN</directive>. Elle
1339     peut s'av&eacute;rer utile par exemple, si vous souhaitez que les
1340     utilisateurs se connectent &agrave; un site web en utilisant leur adresse
1341     email, alors qu'une application sous-jacente n&eacute;cessite un nom
1342     d'utilisateur comme identifiant.</p>
1343     <p>Cette directive n'a d'effet que si l'on utilise ce module pour
1344     l'authentification.</p>
1345 </usage>
1346 </directivesynopsis>
1347
1348 <directivesynopsis>
1349 <name>AuthLDAPRemoteUserIsDN</name>
1350 <description>Utilise le DN de l'utilisateur pour d&eacute;finir la variable
1351 d'environnement REMOTE_USER</description>
1352 <syntax>AuthLDAPRemoteUserIsDN on|off</syntax>
1353 <default>AuthLDAPRemoteUserIsDN off</default>
1354 <contextlist><context>directory</context><context>.htaccess</context>
1355 </contextlist>
1356 <override>AuthConfig</override>
1357
1358 <usage>
1359     <p>Lorsque cette directive est &agrave; on, la variable d'environnement
1360     <code>REMOTE_USER</code> sera d&eacute;finie avec la valeur du DN complet
1361     de l'utilisateur authentifi&eacute;, et non plus avec simplement le nom
1362     d'utilisateur fourni par le client. Elle est d&eacute;finie &agrave; off par
1363     d&eacute;faut.</p>
1364     <p>Cette directive n'a d'effet que si l'on utilise ce module pour
1365     l'authentification.</p>
1366 </usage>
1367 </directivesynopsis>
1368
1369 <directivesynopsis>
1370 <name>AuthLDAPSearchAsUser</name>
1371 <description>Utilise les donn&eacute;es d'authentification de l'utilisateur
1372 pour la recherche des autorisations</description>
1373 <syntax>AuthLDAPSearchAsUser on|off</syntax>
1374 <default>AuthLDAPSearchAsUser off</default>
1375 <contextlist><context>directory</context><context>.htaccess</context>
1376 </contextlist>
1377 <override>AuthConfig</override>
1378 <compatibility>Disponible depuis la version 2.3.6</compatibility>
1379
1380 <usage>
1381     <p>Lorsque cette directive est d&eacute;finie, et si
1382     <module>mod_authnz_ldap</module> a authentifi&eacute; l'utilisateur, les
1383     recherches LDAP pour d&eacute;finir les autorisations utilisent le nom
1384     distinctif (DN) trouv&eacute; et le mot de passe pour l'authentification de
1385     base HTTP de l'utilisateur authentifi&eacute;, au lieu des donn&eacute;es
1386     d'authentification configur&eacute;es au niveau du serveur.</p>
1387
1388     <p>Les v&eacute;rifications d'autorisation <em>ldap-filter</em> et
1389     <em>ldap-dn</em> utilisent des recherches.</p>
1390
1391     <p>Cette directive n'a d'effet sur les comparaisons effectu&eacute;es au
1392     cours des traitements de groupe imbriqu&eacute;s, et lorsque la directive
1393     <directive
1394     module="mod_authnz_ldap">AuthLDAPCompareAsUser</directive>
1395     est aussi activ&eacute;e.</p>
1396
1397      <p>Cette directive ne doit &ecirc;tre utilis&eacute;e que si votre serveur LDAP
1398      n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1399      utiliser de nom d'utilisateur d&eacute;di&eacute; via la directive <directive
1400      module="mod_authnz_ldap">AuthLDAPBindDN</directive>.
1401      </p>
1402
1403 </usage>
1404 <seealso><directive module="mod_authnz_ldap">AuthLDAPInitialBindAsUser</directive></seealso>
1405 <seealso><directive module="mod_authnz_ldap">AuthLDAPCompareAsUser</directive></seealso>
1406 </directivesynopsis>
1407
1408 <directivesynopsis>
1409 <name>AuthLDAPSubGroupAttribute</name>
1410 <description>Sp&eacute;cifie les noms d'attribut, un par directive, utilis&eacute;s
1411 pour diff&eacute;rencier les membres du groupe courant qui sont eux-m&ecirc;mes des
1412 groupes.</description>
1413 <syntax>AuthLDAPSubGroupAttribute <em>attribut</em></syntax>
1414 <default>AuthLDAPSubgroupAttribute member uniquemember</default>
1415 <contextlist><context>directory</context><context>.htaccess</context>
1416 </contextlist>
1417 <override>AuthConfig</override>
1418 <compatibility>Disponible &agrave; partir de la version 2.3.0 du serveur HTTP
1419 Apache</compatibility>
1420
1421 <usage>
1422     <p>Un objet groupe LDAP peut contenir des membres qui sont des
1423     utilisateurs et des membres qui sont eux-m&ecirc;mes des groupes (appel&eacute;s
1424     sous-groupes ou groupes imbriqu&eacute;s). La directive
1425     <code>AuthLDAPSubGroupAttribute</code> sp&eacute;cifie l'attribut utilis&eacute;
1426     pour identifier les groupes, alors que la directive
1427     <code>AuthLDAPGroupAttribute</code> sp&eacute;cifie l'attribut utilis&eacute;
1428     pour identifier les utilisateurs. On peut sp&eacute;cifier plusieurs
1429     attributs en r&eacute;p&eacute;tant la directive plusieurs fois. Si elle n'est pas
1430     d&eacute;finie, <module>mod_authnz_ldap</module> utilise les attributs
1431     <code>member</code> et <code>uniqueMember</code>.</p>
1432 </usage>
1433 </directivesynopsis>
1434
1435 <directivesynopsis>
1436 <name>AuthLDAPSubGroupClass</name>
1437 <description>Sp&eacute;cifie quelles valeurs d'objectClass LDAP identifient les
1438 objets de l'annuaire qui sont des groupes au cours du traitement des
1439 sous-groupes.</description>
1440 <syntax>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></syntax>
1441 <default>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</default>
1442 <contextlist><context>directory</context><context>.htaccess</context>
1443 </contextlist>
1444 <override>AuthConfig</override>
1445 <compatibility>Disponible &agrave; partir de la version 2.3.0 du serveur HTTP
1446 Apache</compatibility>
1447
1448 <usage>
1449     <p>Un objet groupe LDAP peut contenir des membres qui sont des
1450     utilisateurs et des membres qui sont eux-m&ecirc;mes des groupes (appel&eacute;s
1451     sous-groupes ou groupes imbriqu&eacute;s). La directive
1452     <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
1453     membres qui sont des sous-groupes du groupe courant (&agrave; l'oppos&eacute; des
1454     membres utilisateurs). La directive
1455     <code>AuthLDAPSubGroupClass</code> permet de sp&eacute;cifier les valeurs
1456     d'objectClass LDAP utilis&eacute;es pour v&eacute;rifier que certains membres sont
1457     en fait des objets groupe. Les sous-groupes ainsi identifi&eacute;s peuvent
1458     alors faire l'objet d'une recherche d'autres membres utilisateurs ou
1459     sous-groupes. On peut sp&eacute;cifier plusieurs attributs en r&eacute;p&eacute;tant
1460     cette directive plusieurs fois. Si cette directive n'est pas
1461     d&eacute;finie, <module>mod_authnz_ldap</module> utilise les attributs
1462     <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
1463 </usage>
1464 </directivesynopsis>
1465
1466 <directivesynopsis>
1467 <name>AuthLDAPUrl</name>
1468 <description>L'URL permettant de sp&eacute;cifier les param&egrave;tres de la
1469 recherche LDAP</description>
1470 <syntax>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></syntax>
1471 <contextlist><context>directory</context><context>.htaccess</context>
1472 </contextlist>
1473 <override>AuthConfig</override>
1474
1475 <usage>
1476     <p>Une URL conforme &agrave; la RFC 2255 qui permet de sp&eacute;cifier les
1477     param&egrave;tres &agrave; utiliser pour la recherche dans l'annuaire LDAP. La
1478     syntaxe de l'URL est :</p>
1479 <example>ldap://h&ocirc;te:port/DN-de-base?attribut?port&eacute;e?filtre</example>
1480     <p>Si vous souhaitez mettre &agrave; la disposition d'Apache plusieurs URLs
1481     LDAP, la syntaxe sera :</p>
1482 <highlight language="config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</highlight>
1483 <p><em><strong>Mise en garde : </strong>Si vous sp&eacute;cifiez plusieurs
1484 serveurs, vous devez en entourer la liste avec des guillemets ; dans le
1485 cas contraire, vous g&eacute;n&eacute;rerez une erreur : "AuthLDAPURL takes one
1486 argument, URL to define LDAP connection..".</em> Vous pouvez bien
1487 entendu ajouter des param&egrave;tres de recherche &agrave; chacun des serveurs
1488 sp&eacute;cifi&eacute;s.</p>
1489
1490 <dl>
1491 <dt>ldap</dt>
1492
1493         <dd>Pour ldap non s&eacute;curis&eacute;, utilisez la cha&icirc;ne
1494         <code>ldap</code>. Pour ldap s&eacute;curis&eacute;, utilisez &agrave; la place la
1495         cha&icirc;ne <code>ldaps</code>. LDAP s&eacute;curis&eacute; n'est disponible que si
1496         Apache a &eacute;t&eacute; li&eacute; avec une biblioth&egrave;que LDAP supportant SSL.</dd>
1497
1498 <dt>h&ocirc;te:port</dt>
1499
1500         <dd>
1501           <p>Il s'agit du nom/port du serveur ldap
1502           (dont la valeur par d&eacute;faut est
1503           <code>localhost:389</code> pour <code>ldap</code>, et
1504           <code>localhost:636</code> pour <code>ldaps</code>). Pour
1505           sp&eacute;cifier plusieurs serveurs LDAP redondants, indiquez
1506           simplement leur liste en les s&eacute;parant par des espaces.
1507           <module>mod_authnz_ldap</module> tentera alors de se connecter
1508           &agrave; chacun des serveurs jusqu'&agrave; ce qu'il parvienne &agrave; se
1509           connecter avec succ&egrave;s. Notez qu'en cas de multiples serveurs
1510           LDAP, l'ensemble de l'URL LDAP doit &ecirc;tre entour&eacute;e de
1511           guillemets.</p>
1512
1513           <p>lorsqu'une connection a &eacute;t&eacute; &eacute;tablie avec un serveur, elle
1514           reste active pendant toute la dur&eacute;e de vie du processus
1515           <program>httpd</program>, ou jusqu'&agrave; ce que le serveur LDAP
1516           cesse de fonctionner.</p>
1517
1518           <p>Si le serveur LDAP cesse de fonctionner, et ainsi
1519           interrompt une
1520           connexion existante, <module>mod_authnz_ldap</module> tentera
1521           de se reconnecter en commen&ccedil;ant par le premier serveur de la
1522           liste, et ainsi de suite avec les serveurs redondants
1523           suivants. Notez que ce processus n'a rien &agrave; voir avec une
1524           v&eacute;ritable recherche de type round-robin.</p>
1525         </dd>
1526
1527 <dt>DN-de-base</dt>
1528         <dd>Le DN de la branche de l'annuaire &agrave; partir de laquelle
1529         toutes les recherches seront lanc&eacute;es. Il doit au moins
1530         correspondre &agrave; la racine de votre annuaire, mais vous pouvez
1531         aussi indiquer une branche plus sp&eacute;cifique.</dd>
1532
1533 <dt>attribut</dt>
1534
1535         <dd>Il s'agit de l'attribut &agrave; utiliser pour la recherche.
1536         Bien que la RFC
1537         2255 autorise une liste d'attributs s&eacute;par&eacute;s par des virgules,
1538         seul le premier sera retenu, sans tenir compte des autres
1539         attributs fournis. Si aucun attribut n'est fourni, l'attribut
1540         par d&eacute;faut est <code>uid</code>. Il est judicieux de choisir un
1541         attribut dont la valeur sera unique parmi toutes les entr&eacute;es de
1542         la branche de l'annuaire que vous aurez d&eacute;finie. Tous les
1543         attributs sp&eacute;cifi&eacute;s seront enregistr&eacute;s dans des variables
1544         d'environnement avec le pr&eacute;fixe AUTHENTICATE_, afin de pouvoir
1545         &ecirc;tre utilis&eacute;s par d'autres modules.</dd>
1546
1547 <dt>port&eacute;e</dt>
1548
1549         <dd>Il s'agit de la port&eacute;e de la recherche. Elle peut prendre
1550         les valeurs <code>one</code> ou <code>sub</code>. Notez que la
1551         RFC 2255 supporte aussi une port&eacute;e de valeur <code>base</code>,
1552         mais cette derni&egrave;re n'est pas support&eacute;e par le module. Si la
1553         port&eacute;e n'est pas d&eacute;finie, ou si elle est d&eacute;finie &agrave;
1554         <code>base</code>, c'est la valeur de port&eacute;e par d&eacute;faut
1555         <code>sub</code> qui sera utilis&eacute;e.</dd>
1556
1557 <dt>filtre</dt>
1558
1559         <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
1560         filtre n'est sp&eacute;cifi&eacute;, le filtre par d&eacute;faut
1561         <code>(objectClass=*)</code> sera utilis&eacute;, ce qui corrspond &agrave;
1562         une recherche de tous les types d'objets de l'arborescence. La
1563         taille des filtres est limit&eacute;e &agrave; environ 8000 caract&egrave;res (valeur
1564         de la macro <code>MAX_STRING_LEN</code> dans le code source
1565         d'Apache), ce qui s'av&egrave;re plus que suffisant pour la plupart des
1566         applications. Le mot-cl&eacute; <code>none</code> permet de d&eacute;sactiver
1567         l'utilisation des filtres, ce qui peut s'av&eacute;rer n&eacute;cessaire avec
1568         certains serveurs LDAP primitifs.</dd>
1569 </dl>
1570
1571     <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
1572     fournis par le client HTTP sont combin&eacute;s pour cr&eacute;er un filtre de
1573     recherche du style :
1574     <code>(&amp;(<em>filtre</em>)(<em>attribut</em>
1575     =<em>nom-utilisateur</em>))</code>.</p>
1576
1577     <p>Par exemple, consid&eacute;rons l'URL
1578     <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
1579     Lorsqu'un client tentera de se connecter en utilisant le nom
1580     d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
1581     : <code>(&amp;(posixid=*)(cn=Babs Jenson))</code>.</p>
1582
1583     <p>On peut encore ajouter un param&egrave;tre optionnel pour permettre &agrave;
1584     l'URL LDAP de surcharger le type de connexion. Ce param&egrave;tre peut
1585     prendre l'une des valeurs suivantes :</p>
1586
1587 <dl>
1588     <dt>NONE</dt>
1589         <dd>&Eacute;tablit une connexion non s&eacute;curis&eacute;e sur le port LDAP par
1590         d&eacute;faut, ce qui est &eacute;quivalent &agrave; <code>ldap://</code> sur le port
1591         389.</dd>
1592     <dt>SSL</dt>
1593         <dd>&Eacute;tablit une connexion s&eacute;curis&eacute;e sur le port LDAP s&eacute;curis&eacute;
1594         par d&eacute;faut, ce qui est &eacute;quivalent &agrave; <code>ldaps://</code>.</dd>
1595     <dt>TLS | STARTTLS</dt>
1596         <dd>&Eacute;tablit une connexion s&eacute;curis&eacute;e par &eacute;l&eacute;vation de niveau sur
1597         le port LDAP par d&eacute;faut. Cette connexion sera initialis&eacute;e sur le
1598         port 389 par d&eacute;faut, puis &eacute;lev&eacute;e &agrave; un niveau de connexion
1599         s&eacute;curis&eacute;e sur le m&ecirc;me port.</dd>
1600 </dl>
1601
1602     <p>Voir plus haut pour des exemples d'URLs d&eacute;finies par la directive
1603     <directive module="mod_authnz_ldap">AuthLDAPURL</directive>.</p>
1604 </usage>
1605 </directivesynopsis>
1606
1607 </modulesynopsis>