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