1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>mod_authnz_ldap - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
14 <div id="page-header">
15 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
16 <p class="apache">Serveur Apache HTTP Version 2.3</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
20 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Module Apache mod_authnz_ldap</h1>
24 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> |
25 <a href="../fr/mod/mod_authnz_ldap.html" title="Français"> fr </a></p>
27 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'utiliser un annuaire LDAP pour l'authentification
28 HTTP de base.</td></tr>
29 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
30 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>authnz_ldap_module</td></tr>
31 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_authnz_ldap.c</td></tr>
32 <tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Dosponible depuis les versions 2.1 et supérieures
33 d'Apache</td></tr></table>
36 <p>Ce module permet aux frontaux d'authentification comme
37 <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> d'authentifier les utilisateurs via
40 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> supporte les fonctionnalités
44 <li>Support vérifié du <a 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 href="http://www.iplanet.com/downloads/developer/">iPlanet
49 <li>Implémentation de politiques d'autorisation complexes en les
50 définissant via des filtres LDAP.</li>
52 <li>Mise en oeuvre d'une mise en cache des opérations LDAP
53 élaborée via <a href="mod_ldap.html">mod_ldap</a>.</li>
55 <li>Support de LDAP via SSL (nécessite le SDK Netscape) ou TLS
56 (nécessite le SDK OpenLDAP 2.x ou le SDK LDAP Novell).</li>
59 <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, ce module est
60 invoqué en affectant la valeur <code>ldap</code> à la directive
61 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
63 <div id="quickview"><h3 class="directives">Directives</h3>
65 <li><img alt="" src="../images/down.gif" /> <a href="#authldapauthorizeprefix">AuthLDAPAuthorizePrefix</a></li>
66 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></li>
67 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbinddn">AuthLDAPBindDN</a></li>
68 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindpassword">AuthLDAPBindPassword</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcharsetconfig">AuthLDAPCharsetConfig</a></li>
70 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></li>
71 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#authldapdereferencealiases">AuthLDAPDereferenceAliases</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></li>
75 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></li>
76 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></li>
78 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserattribute">AuthLDAPRemoteUserAttribute</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#authldapurl">AuthLDAPUrl</a></li>
87 <li><img alt="" src="../images/down.gif" /> <a href="#contents">Sommaire</a></li>
88 <li><img alt="" src="../images/down.gif" /> <a href="#operation">Mode opératoire</a></li>
89 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives requises</a></li>
90 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
91 <li><img alt="" src="../images/down.gif" /> <a href="#usingtls">Utilisation de TLS</a></li>
92 <li><img alt="" src="../images/down.gif" /> <a href="#usingssl">Utilisation de SSL</a></li>
93 <li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de
95 <li><img alt="" src="../images/down.gif" /> <a href="#activedirectory">Utilisation d'Active
97 <li><img alt="" src="../images/down.gif" /> <a href="#frontpage">Utilisation de Microsoft
98 FrontPage avec mod_authnz_ldap</a></li>
99 </ul><h3>Voir aussi</h3>
101 <li><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></li>
102 <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
103 <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
104 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
106 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
107 <div class="section">
108 <h2><a name="contents" id="contents">Sommaire</a></h2>
112 <a href="#operation">Mode opératoire</a>
115 <li><a href="#authenphase">La phase
116 d'authentification</a></li>
118 <li><a href="#authorphase">La phase d'autorisation</a></li>
123 <a href="#requiredirectives">Les directives requises</a>
126 <li><a href="#requser">Require ldap-user</a></li>
127 <li><a href="#reqgroup">Require ldap-group</a></li>
128 <li><a href="#reqdn">Require ldap-dn</a></li>
129 <li><a href="#reqattribute">Require ldap-attribute</a></li>
130 <li><a href="#reqfilter">Require ldap-filter</a></li>
134 <li><a href="#examples">Exemples</a></li>
135 <li><a href="#usingtls">Utilisation de TLS</a></li>
136 <li><a href="#usingssl">Utilisation de SSL</a></li>
137 <li><a href="#exposed">Mise à disposition des informations de
139 <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
141 <a href="#frontpage">Utilisation de Microsoft FrontPage avec
142 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
145 <li><a href="#howitworks">Comment ça marche</a></li>
146 <li><a href="#fpcaveats">Mises en garde</a></li>
150 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
151 <div class="section">
152 <h2><a name="operation" id="operation">Mode opératoire</a></h2>
154 <p>L'utilisateur se voit accorder l'accès selon un processus en deux
155 phases. La première phase est l'authentification, au cours de
156 laquelle le fournisseur d'authentification
157 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> vérifie que les informations de
158 connexion de l'utilisateur sont valides. Elle est aussi connue sous
159 le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
160 dans le code source : <em>search/bind</em>). La deuxième
161 phase est l'autorisation, au cours de laquelle
162 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> détermine si l'utilisateur
163 authentifié a la permission d'accéder à la ressource considérée.
164 Elle est aussi connue sous le nom de phase de
165 <em>comparaison</em> (<em>compare</em>).</p>
167 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> comporte un fournisseur
168 d'authentification authn_ldap et un gestionnaire d'autorisation
169 authz_ldap. Le fournisseur d'authentification authn_ldap peut être
170 invoqué en affectant la valeur <code>ldap</code> à la directive
171 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Le
172 gestionnaire d'autorisation authz_ldap enrichit la liste des types
173 d'autorisations de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en y ajoutant les
174 valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
175 <code>ldap-group</code>.</p>
177 <h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
179 <p>Au cours de la phase d'authentification,
180 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> recherche une entrée de l'annuaire
181 LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
182 Si une correspondance unique est trouvée,
183 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de se connecter au serveur
184 hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
185 de passe fourni par le client HTTP. Comme ce processus effectue tout
186 d'abord une recherche, puis une connexion, il est aussi connu sous
187 le nom de phase de recherche/connexion. Voici le détail des étapes
188 constituant la phase de recherche/connexion :</p>
191 <li>Confection d'un filtre de recherche en combinant les attribut
192 et filtre définis par la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> avec le nom d'utilisateur et le mot de
193 passe fournis par le client HTTP.</li>
195 <li>Recherche dans l'annuaire LDAP en utilisant le filtre
196 confectionné précédemment. Si le résultat de la recherche est
197 négatif ou comporte plusieurs entrées, refus ou restriction de
200 <li>Extraction du DN (distinguished name) de l'entrée issue du
201 résultat de la recherche, et tentative de connexion au serveur
202 LDAP en utilisant ce DN et le mot de passe fournis par le client
203 HTTP. Si la connexion échoue, refus ou restriction de
207 <p>Les directives utilisées durant la phase de recherche/connexion
208 sont les suivantes :</p>
213 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
215 <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
216 utiliser pour la recherche, ainsi que les filtres de recherche
217 supplémentaires.</td>
221 <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
223 <td>Un DN optionnel pour se connecter durant la phase de
228 <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
230 <td>Un mot de passe optionnel pour se connecter durant la phase
236 <h3><a name="authorphase" id="authorphase">La phase d'autorisation</a></h3>
238 <p>Au cours de la phase d'autorisation,
239 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de déterminer si
240 l'utilisateur est autorisé à accéder à la ressource considérée. Une
241 grande partie de cette vérification consiste pour
242 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> en des opérations de comparaison au
243 niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
244 sous le nom de phase de comparaison.
245 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> accepte les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> suivantes pour
246 déterminer si les informations de connexion permettent d'accorder
247 l'accès à l'utilisateur :</p>
250 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-user</code></a>,
251 l'autorisation d'accès est accordée si le nom d'utilisateur
252 spécifié par la directive correspond au nom d'utilisateur fourni
255 <li>Avec la directive <a href="#reqdn"><code>Require
256 ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
257 spécifié par la directive correspond au DN extrait du résultat de
258 la recherche dans l'annuaire LDAP.</li>
260 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-group</code></a>,
261 l'autorisation d'accès est accordée si le DN extrait du résultat de
262 la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
263 par le client) appartient au groupe LDAP spécifié par la
264 directive, ou éventuellement à un de ses sous-groupes.</li>
266 <li>Avec la directive <a href="#reqattribute">
267 <code>Require ldap-attribute</code></a>, l'autorisation d'accès
268 est accordée si la valeur de l'attribut extraite de la recherche
269 dans l'annuaire LDAP correspond à la valeur spécifiée par la
272 <li>Avec la directive <a href="#reqfilter">
273 <code>Require ldap-filter</code></a>, l'autorisation d'accès
274 est accordée si le filtre de recherche renvoie un objet
275 utilisateur unique qui corresponde au DN de l'utilisateur
278 <li>dans tous les autres cas, refus ou restriction de
282 <p>Sous réserve du chargement de modules d'autorisation
283 supplémentaires, d'autres valeurs de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> peuvent être
287 <li>L'accès est accordé à tous les utilisateurs authentifiés si
288 une directive <a href="#requser"><code>Require
289 valid-user</code></a> est présente (nécessite le module
290 <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>).</li>
292 <li>Avec la directive <a href="#reqgroup"><code>Require group</code></a>, l'autorisation
293 d'accès est accordée si le module
294 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> a été chargé et si la
295 directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> a été
302 <p>Durant la phase de comparaison, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
303 utilise les directives suivantes :</p>
308 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
311 <td>On utilise l'attribut spécifié dans l'URL pour les
312 opérations de comparaison initiées par la directive
313 <code>Require ldap-user</code>.</td>
317 <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
319 <td>Détermine le comportement de la directive <code>Require
324 <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
326 <td>Détermine l'attribut utilisé pour les opérations de
327 comparaison initiées par la directive <code>Require
328 ldap-group</code>.</td>
332 <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
334 <td>Spécifie si l'on doit utiliser le DN ou le nom de
335 l'utilisateur lors des opérations de comparaison initiées par la
336 directive <code>Require ldap-group</code>.</td>
340 <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
342 <td>Détermine la profondeur maximale de l'arborescence des
343 sous-groupes qui seront évalués au cours des opérations de
344 comparaisons initiées par la directive <code>Require
345 ldap-group</code>.</td>
349 <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
351 <td>Détermine l'attribut à utiliser lors de l'extraction de
352 membres de sous-groupes du groupe courant au cours des
353 opérations de comparaison initiées par la directive
354 <code>Require ldap-group</code>.</td>
358 <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
360 <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
361 dé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é par la directive
364 <code>Require ldap-group</code>.</td>
368 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
369 <div class="section">
370 <h2><a name="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
372 <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache sont utilisées
373 au cours de la phase d'autorisation afin de s'assurer que
374 l'utilisateur est autorisé à accéder à une ressource.
375 mod_authnz_ldap enrichit la liste des types d'autorisations avec les
376 valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
377 <code>ldap-group</code>, <code>ldap-attribute</code> et
378 <code>ldap-filter</code>. D'autres types d'autorisations sont
379 disponibles, sous réserve du chargement de modules d'autorisation
382 <h3><a name="requser" id="requser">Require ldap-user</a></h3>
384 <p>La directive <code>Require ldap-user</code> permet de spécifier
385 les noms des utilisateurs autorisés à accéder à la ressource.
386 Lorsque <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a extrait un DN unique de
387 l'annuaire LDAP, il effectue une opération de comparaison LDAP en
388 utilisant le nom d'utilisateur spécifié par la directive
389 <code>Require ldap-user</code>, pour vérifier si ce nom
390 d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
391 l'accès à plusieurs utilisateurs en plaçant plusieurs nom
392 d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
393 d'utilisateur contient des espaces, il doit être entouré de
394 guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
395 en utilisant une directive <code>Require ldap-user</code> par
396 utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
397 <code>ldap://ldap/o=Example?cn</code> (spécifiant donc que l'attribut
398 <code>cn</code> sera utilisé pour les recherches), on pourra
399 utiliser les directives Require suivantes pour restreindre l'accès
401 <div class="example"><p><code>
402 Require ldap-user "Barbara Jenson"<br />
403 Require ldap-user "Fred User"<br />
404 Require ldap-user "Joe Manager"<br />
407 <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
408 cette directive, Barbara Jenson peut s'authentifier comme
409 <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
410 <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
411 LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
412 toutes les valeurs de l'attribut dans l'entrée LDAP de
415 <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
416 l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
417 ci-dessus auraient pû être condensées en une seule ligne :</p>
418 <div class="example"><p><code>Require ldap-user bjenson fuser jmanager</code></p></div>
421 <h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
423 <p>Cette directive permet de spécifier un groupe LDAP dont les
424 membres auront l'autorisation d'accès. Elle prend comme argument le
425 DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
426 guillemets. Par exemple, supposons que l'entrée suivante existe dans
427 l'annuaire LDAP :</p>
428 <div class="example"><p><code>
429 dn: cn=Administrators, o=Example<br />
430 objectClass: groupOfUniqueNames<br />
431 uniqueMember: cn=Barbara Jenson, o=Example<br />
432 uniqueMember: cn=Fred User, o=Example<br />
435 <p>La directive suivante autoriserait alors l'accès à Fred et
437 <div class="example"><p><code>Require ldap-group cn=Administrators, o=Example</code></p></div>
439 <p>Les membres peuvent aussi se trouver dans les sous-groupes du
440 groupe LDAP spécifié si la directive <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code> a été
441 définie à une valeur supérieure à 0. Par exemple, supposons que les
442 entrées suivantes existent dans l'annuaire LDAP :</p>
443 <div class="example"><p><code>
444 dn: cn=Employees, o=Example<br />
445 objectClass: groupOfUniqueNames<br />
446 uniqueMember: cn=Managers, o=Example<br />
447 uniqueMember: cn=Administrators, o=Example<br />
448 uniqueMember: cn=Users, o=Example<br />
450 dn: cn=Managers, o=Example<br />
451 objectClass: groupOfUniqueNames<br />
452 uniqueMember: cn=Bob Ellis, o=Example<br />
453 uniqueMember: cn=Tom Jackson, o=Example<br />
455 dn: cn=Administrators, o=Example<br />
456 objectClass: groupOfUniqueNames<br />
457 uniqueMember: cn=Barbara Jenson, o=Example<br />
458 uniqueMember: cn=Fred User, o=Example<br />
460 dn: cn=Users, o=Example<br />
461 objectClass: groupOfUniqueNames<br />
462 uniqueMember: cn=Allan Jefferson, o=Example<br />
463 uniqueMember: cn=Paul Tilley, o=Example<br />
464 uniqueMember: cn=Temporary Employees, o=Example<br />
466 dn: cn=Temporary Employees, o=Example<br />
467 objectClass: groupOfUniqueNames<br />
468 uniqueMember: cn=Jim Swenson, o=Example<br />
469 uniqueMember: cn=Elliot Rhodes, o=Example<br />
472 <p>Les directives suivantes autoriseraient alors l'accès à Bob
473 Ellis, Tom Jackson, Barbara Jensen, Fred User, Allan Jefferson, et
474 Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
475 (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
477 <div class="example"><p><code>
478 Require ldap-group cn=Employees, o-Example<br />
479 AuthLDAPSubGroupDepth 1<br />
482 <p>Le comportement de cette directive est modifié par les directives
483 <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>,
484 <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>,
485 <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>,
486 <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, et
487 <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>.</p>
490 <h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
492 <p>La directive <code>Require ldap-dn</code> permet à
493 l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
494 Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
496 l'annuaire correspond au DN spécifié par la directive <code>Require
497 ldap-dn</code>, l'autorisation d'accès est accordée. Note :
498 n'entourez pas Le DN de guillemets.</p>
500 <p>La directive suivante accorderait l'accès à un DN spécifique
502 <div class="example"><p><code>Require ldap-dn cn=Barbara Jenson, o=Example</code></p></div>
504 <p>Le comportement ce cette directive est modifié par la directive
505 <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
508 <h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
510 <p>La directive <code>Require ldap-attribute</code> permet à
511 l'administrateur d'accorder l'autorisation d'accès en fonction des
512 attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
513 valeur de l'attribut dans l'annuaire correspond à la valeur
514 spécifiée par la directive, l'autorisation d'accès est accordée.</p>
516 <p>La directive suivante accorderait l'autorisation d'accès à tout
517 utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
519 <div class="example"><p><code>Require ldap-attribute employeeType=actif</code></p></div>
521 <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
522 même directive en les séparant par des espaces, ou en définissant
523 plusieurs directives <code>Require ldap-attribute</code>. La logique
524 sous-jacente à une liste de paires attribut/valeur est une opération
525 OU. L'autorisation d'accès sera accordée si au moins une paire
526 attribut/valeur de la liste spécifiée correspond à la paire
527 attribut/valeur de l'utilisateur authentifié. Si elle contient des
528 espaces, la valeur, et seulement la valeur, doit être entourée de
531 <p>La directive suivante accorderait l'autorisation d'accès à tout
532 utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
533 donc l'attribut status aurait pour valeur "actif" :</p>
535 <div class="example"><p><code>Require ldap-attribute city="San Jose" status=actif</code></p></div>
539 <h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
541 <p>La directive <code>Require ldap-filter</code> permet à
542 l'administrateur d'accorder l'autorisation d'accès en fonction d'un
543 filtre de recherche LDAP complexe. L'autorisation d'accès est
544 accordée si le DN renvoyé par le filtre de recherche correspond au
545 DN de l'utilisateur authentifié.</p>
547 <p>La directive suivante accorderait l'autorisation d'accès à tout
548 utilisateur possédant un téléphone cellulaire et faisant partie du
549 département "marketing" :</p>
551 <div class="example"><p><code>Require ldap-filter &(cell=*)(department=marketing)</code></p></div>
553 <p>Alors que la directive <code>Require ldap-attribute</code> se
554 contente d'une simple comparaison d'attributs, la directive
555 <code>Require ldap-filter</code> effectue une opération de recherche
556 dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
557 Si une simple comparaison d'attributs suffit, l'opération de
558 comparaison effectuée par <code>ldap-attribute</code> sera plus
559 rapide que l'opération de recherche effectuée par
560 <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
561 LDAP de grande taille.</p>
565 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
566 <div class="section">
567 <h2><a name="examples" id="examples">Exemples</a></h2>
571 Accorde l'autorisation d'accès à tout utilisateur présent dans
572 l'annuaire LDAP, en utilisant son UID pour effectuer la
574 <div class="example"><p><code>
575 AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"<br />
581 L'exemple suivant est similaire au précédent, mais les champs
582 dont les valeurs par défaut conviennent sont omis. Notez aussi
583 la présence d'un annuaire LDAP redondant :
584 <div class="example"><p><code>AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"<br />
590 Encore un exemple similaire aux précédents, mais cette fois,
591 c'est l'attribut cn qui est utilisé pour la recherche à la place
592 de l'UID. Notez que ceci peut poser problème si plusieurs
593 utilisateurs de l'annuaire partagent le même <code>cn</code>,
594 car une recherche sur le <code>cn</code> <strong>doit</strong>
595 retourner une entrée et une seule. C'est pourquoi cette
596 approche n'est pas recommandée : il est préférable de choisir un
597 attribut de votre annuaire dont l'unicité soit garantie, comme
599 <div class="example"><p><code>
600 AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"<br />
606 Accorde l'autorisation d'accès à tout utilisateur appartenant au
607 groupe Administrateurs. Les utilisateurs doivent s'authentifier
608 en utilisant leur UID :
609 <div class="example"><p><code>
610 AuthLDAPURL ldap://ldap.example.com/o=Example?uid<br />
611 Require ldap-group cn=Administrators, o=Example
616 Pour l'exemple suivant, on suppose que tout utilisateur de chez
617 Example qui dispose d'un bippeur alphanumérique possèdera un
618 attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
619 (authentifiés via leur UID) se verront accorder l'autorisation
621 <div class="example"><p><code>
622 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)<br />
628 <p>L'exemple suivant illustre la puissance des filtres pour
629 effectuer des requêtes complexes. Sans les filtres, il aurait
630 été nécessaire de créer un nouveau groupe LDAP et de s'assurer
631 de la synchronisation des membres du groupe avec les
632 utilisateurs possédant un bippeur. Tout devient limpide avec les
633 filtres. Nous avons pour but d'accorder l'autorisation d'accès à
634 tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
635 qui ne possède pas de bippeur, mais doit tout de même pouvoir
636 accéder à la ressource :</p>
637 <div class="example"><p><code>
638 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))<br />
642 <p>Ce dernier exemple peut sembler confus au premier abord ; en
643 fait, il permet de mieux comprendre à quoi doit ressembler le
644 filtre en fonction de l'utilisateur qui se connecte. Si Fred
645 User se connecte en tant que <code>fuser</code>, le filtre devra
648 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
650 <p>Un recherche avec le filtre ci-dessus ne retournera un
651 résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
652 Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
653 devra ressembler à :</p>
655 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
657 <p>Un recherche avec le filtre ci-dessus retournera un
658 résultat positif que <em>jmanager</em> dispose d'un
662 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
663 <div class="section">
664 <h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
666 <p>Pour l'utilisation de TLS, voir les directives du module
667 <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
669 <p>Un second paramètre optionnel peut être ajouté à la directive
670 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
671 remplacer le type de connexion par défaut défini par la directive
672 <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
673 permettra de promouvoir la connexion établie via une URL du type
674 <em>ldap://</em> au statut de connection sécurisée sur le même
676 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
677 <div class="section">
678 <h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
680 <p>Pour l'utilisation de SSL, voir les directives du module
681 <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
683 <p>Pour spécifier un serveur LDAP sécurisé, utilisez
684 <em>ldaps://</em> au lieu de
685 <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
686 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
687 <div class="section">
688 <h2><a name="exposed" id="exposed">Mise à disposition des informations de
691 <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
692 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
693 dans des variables d'environnement préfixées par la chaîne
696 <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
697 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
698 dans des variables d'environnement préfixées par la chaîne
701 <p>Si les champs attribut contiennent le nom, le CN et le numéro de
702 téléphone d'un utilisateur, un programme CGI pourra accéder à ces
703 informations sans devoir effectuer une autre requête LDAP pour
704 les extraire de l'annuaire.</p>
706 <p>Ceci a pour effet de simplifier considérablement le code et la
707 configuration nécessaire de certaines applications web.</p>
709 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
710 <div class="section">
711 <h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
714 <p>Active Directory peut supporter plusieurs domaines à la fois.
715 Pour faire la distinction entre les utilisateurs de plusieurs
716 domaines, on peut ajouter à l'entrée de l'utilisateur dans
717 l'annuaire un identifiant appelé Nom
718 Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
719 compose en général du nom de compte de l'utilisateur, suivi du nom
720 du domaine considéré, par exemple <em>untel@nz.example.com</em>.</p>
722 <p>Vous voudrez probablement configurer le module
723 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> afin de pouvoir authentifier les
724 utilisateurs de n'importe quel domaine de la forêt Active Directory.
725 Ainsi, <em>untel@nz.example.com</em> et
726 <em>untel@au.example.com</em> pourront être authentifiés en une
727 seule fois par la même requête.</p>
729 <p>Pour y parvenir, on utilise le concept de Catalogue Global
730 d'Active Directory. Ce Catalogue Global est une copie en lecture
731 seule des attributs sélectionnés de tous les serveurs de la forêt
732 Active Directory. Une requête vers le
733 Catalogue Global permet donc d'atteindre tous les domaines en une
734 seule fois, sans avoir à se connecter aux différents serveurs, via
735 des liaisons dont certaines peuvent être lentes.</p>
737 <p>Lorsqu'il est activé, la Catalogue Global est un serveur
738 d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
739 Pour rechercher un utilisateur, effectuez une recherche sur
740 l'attribut <em>userPrincipalName</em>, avec une base de recherche
741 vide, comme suit :</p>
743 <div class="example"><p><code>
744 AuthLDAPBindDN apache@example.com<br />
745 AuthLDAPBindPassword password<br />
746 AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
749 <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
750 la forme<em>untel@nz.example.com</em>.</p>
752 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
753 <div class="section">
754 <h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
755 FrontPage avec mod_authnz_ldap</a></h2>
757 <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
758 spécifiques à FrontPage-web (c'est à dire les modules
759 <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
760 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
761 l'authentification. Malheureusement, il ne suffit pas de modifier
762 l'authentification LDAP en ajoutant les directives appropriées, car
763 ceci corromprait les formulaires de <em>Permissions</em> dans le
764 client FrontPage, qui sont censés modifier les fichiers
765 d'autorisation standards au format texte.</p>
767 <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
768 l'authentification LDAP consiste à ajouter les directives suivantes
769 à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
771 <div class="example"><pre>
773 AuthGroupFile <em>mon-fichier-de-groupes</em>
774 Require group <em>mon-fichier-de-groupes</em>
777 <h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
779 <p>FrontPage restreint l'accès à un site web en ajoutant la
780 directive <code>Require valid-user</code> aux fichiers
781 <code>.htaccess</code>. La directive <code>Require valid-user</code>
782 permettra l'accès à tout utilisateur valide <em>du point de vue
783 LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
784 dans l'annuaire LDAP sera considéré comme valide, alors que
785 FrontPage ne considère comme valides que les utilisateurs
786 enregistrés dans le fichier des utilisateurs local. En remplaçant
787 l'autorisation par groupe LDAP par une autorisation par fichier de
788 groupe, Apache sera en mesure de consulter le fichier des
789 utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
790 - lors du processus d'autorisation des utilisateurs.</p>
792 <p>Une fois les directives ajoutées selon ce qui précède, les
793 utilisateurs FrontPage pourront effectuer toutes les opérations de
794 gestion à partir du client FrontPage.</p>
797 <h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
800 <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
801 l'authentification doit aussi être valide pour le fichier des
802 utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
803 l'UID est idéal.</li>
805 <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
806 administrateurs de FrontPage doivent choisir des noms
807 d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
808 raisons évidentes). De même, le mot de passe que l'administrateur
809 entre dans le formulaire est ignoré, car pour l'authentification,
810 Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
811 de passe enregistré dans le fichier des utilisateurs, ce qui peut
812 semer la confusion parmi les administrateurs web.</li>
815 <li>Pour supporter FrontPage, Apache doit être compilé avec
816 <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>
817 et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
818 qu'Apache doit utiliser le fichier de groupes de
819 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
820 d'accès d'un utilisateur au site web FrontPage.</li>
822 <li>Les directives doivent être placées dans les fichiers
823 <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
824 placez dans une section <code class="directive"><a href="../mod/core.html#location"><Location></a></code> ou <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>. Ceci est dû au fait que pour savoir
825 où se trouve la liste des utilisateurs valides,
826 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
827 la directive <code class="directive"><a href="../mod/mod_authn_file.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
828 dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
829 de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
830 même fichier <code>.htaccess</code> que les directives FrontPage,
831 la configuration ne fonctionnera pas, car
832 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
833 traiter le fichier <code>.htaccess</code>, et par conséquent ne
834 pourra jamais trouver le fichier des utilisateurs géré par
839 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
840 <div class="directive-section"><h2><a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a> <a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a></h2>
841 <table class="directive">
842 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le préfixe ajouté aux variables d'environnement
843 durant la phase d'autorisation</td></tr>
844 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPAuthorizePrefix <em>préfixe</em></code></td></tr>
845 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
846 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
847 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
848 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
849 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
850 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
852 <p>Cette directive permet de spécifier le préfixe ajouté aux
853 variables d'environnement durant la phase d'autorisation. Si la
854 valeur spécifiée est <em>AUTHENTICATE_</em>, les utilisateurs de ces
855 variables d'environnement verront les mêmes informations, que le
856 serveur effectue une authentification, une autorisation, ou les
859 <div class="note"><h3>Note</h3>
860 Aucune variable d'autorisation n'est définie lorsqu'un utilisateur
861 s'est vu autoriser l'accès via la directive <code>Require
866 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
867 <div class="directive-section"><h2><a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a> <a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a></h2>
868 <table class="directive">
869 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'on doit utiliser d'autres fournisseurs
870 d'authentification lorsque le serveur ne peut pas valider les données
871 d'authentification de l'utilisateur, alors que ce dernier possède un
873 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
874 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
875 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
876 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
877 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
878 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
880 <p>Par défaut, des fournisseurs d'authentification sont appelés
881 si un utilisateur ne possède pas de DN, mais ne le sont pas si
882 l'utilisateur possède un DN et si son mot de passe ne peut pas être
883 vérifié lors d'une connexion au serveur LDAP. Si la directive
884 <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
885 définie à <em>off</em>, d'autres modules d'authentification
886 configurés auront une chance de valider le mot de passe de
887 l'utilisateur si la tentative de connexion au serveur LDAP échoue
888 pour une raison quelconque (avec les données d'authentification
890 <p>Ceci permet aux utilisateurs présent à la fois dans l'annuaire
891 LDAP et dans un fichier <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de s'authentifier
892 lorsque le serveur LDAP est disponible, alors que le compte de
893 l'utilisateur est verrouillé ou que son mot de passe est
894 inutilisable pour une raison quelconque.</p>
898 <li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
899 <li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
902 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
903 <div class="directive-section"><h2><a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a> <a name="authldapbinddn" id="authldapbinddn">Directive</a></h2>
904 <table class="directive">
905 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
907 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
908 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
909 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
910 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
911 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
913 <p>Cette directive permet de définir un DN optionnel pour se
914 connecter au serveur afin d'y rechercher des entrées. Si aucun DN
915 n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
916 connexion anonyme.</p>
919 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
920 <div class="directive-section"><h2><a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a> <a name="authldapbindpassword" id="authldapbindpassword">Directive</a></h2>
921 <table class="directive">
922 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
924 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
925 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
926 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
927 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
928 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
930 <p>Cette directive permet de spécifier un mot de passe à utiliser en
931 conjonction avec le DN de connexion. Notez que ce mot de passe
932 constitue en général une donnée sensible, et doit donc être protégé
933 de manière appropriée. Vous ne devez utiliser les directives
934 <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
935 vous en avez vraiment besoin pour effectuer une recherche dans
939 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
940 <div class="directive-section"><h2><a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a> <a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a></h2>
941 <table class="directive">
942 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
943 langage/jeu de caractères</td></tr>
944 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
945 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
946 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
947 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
949 <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
950 de définir le chemin du fichier de configuration de la
951 correspondance langage/jeu de caractères. <var>chemin-fichier</var>
952 est un chemin relatif au répertoire défini par la directive
953 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
954 de correspondances extension de langage/jeu de caractères. La
955 plupart des administrateurs utilisent le fichier
956 <code>charset.conv</code> fourni qui associe les extensions de
957 langage courantes à leurs jeux de caractères.</p>
959 <p>Le fichier contient des lignes au format suivant :</p>
961 <div class="example"><p><code>
962 <var>extension de langage</var> <var>jeu de caractères</var>
963 [<var>Nom du langage</var>] ...
966 <p>L'extension est insensible à la casse. Les lignes vides et les
967 lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
970 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
971 <div class="directive-section"><h2><a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a> <a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a></h2>
972 <table class="directive">
973 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation des données d'authentification de l'utilisateur
974 pour effectuer les comparaisons pour l'attribution des autorisations</td></tr>
975 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
976 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
977 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
978 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
979 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
980 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
981 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version version 2.3.6</td></tr>
983 <p>Lorsque cette directive est définie, et si
984 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
985 recherches LDAP pour les autorisations utilisent le nom distinctif
986 trouvé (DN) et le mot de passe d'authentification basique HTTP de
987 l'utilisateur authentifié au lieu des données d'authentification
988 configurées au niveau du serveur.</p>
990 <p>Les vérifications d'autorisation <em>ldap-attribute</em>,
991 <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
992 utilisent des comparaisons.</p>
994 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
995 cours des traitements de groupe imbriqués, et lorsque la directive
996 <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code>
997 est aussi activée.</p>
999 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1000 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1001 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1006 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1007 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1010 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1011 <div class="directive-section"><h2><a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a> <a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a></h2>
1012 <table class="directive">
1013 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
1014 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
1015 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
1016 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1017 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1018 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1019 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1021 <p>Lorsque cette directive est définie à on,
1022 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
1023 comparer les DNs. Il s'agit de la seule méthode infaillible pour
1024 comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
1025 dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
1026 comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
1027 directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
1028 simple comparaison de chaînes. Cette dernière approche peut produire
1029 des faux négatifs, mais elle est beaucoup plus rapide. Notez
1030 cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
1031 la comparaison de DNs dans la plupart des situations.</p>
1034 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1035 <div class="directive-section"><h2><a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a> <a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a></h2>
1036 <table class="directive">
1037 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>À quel moment le module va déréférencer les
1039 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
1040 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
1041 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1042 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1043 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1044 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1046 <p>Cette directive permet de spécifier à quel moment
1047 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
1048 des opérations liées à LDAP. La valeur par défaut est
1049 <code>always</code>.</p>
1052 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1053 <div class="directive-section"><h2><a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a> <a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a></h2>
1054 <table class="directive">
1055 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
1056 utilisateur à un groupe.</td></tr>
1057 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
1058 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
1059 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1060 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1061 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1062 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1064 <p>Cette directive permet de spécifier quel attribut LDAP est
1065 utilisé pour vérifier l'appartenance d'un utilisateur à un
1066 groupe. On peut spécifier plusieurs attributs en répétant cette
1067 directive plusieurs fois. Si la directive n'est pas définie,
1068 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1069 <code>member</code> et <code>uniquemember</code>.</p>
1072 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1073 <div class="directive-section"><h2><a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a> <a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a></h2>
1074 <table class="directive">
1075 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
1076 appartenance à un groupe</td></tr>
1077 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
1078 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
1079 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1080 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1081 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1082 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1084 <p>Lorsqu'elle est définie à <code>on</code>, cette directive
1085 indique que c'est le DN de l'utilisateur qui doit être utilisé pour
1086 vérifier son appartenance à un groupe. Dans le cas contraire, c'est
1087 le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
1088 le client envoie le nom d'utilisateur <code>bjenson</code>, qui
1089 correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
1090 directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
1091 vérifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
1092 groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
1093 vérifiera si <code>bjenson</code> est un membre du groupe.</p>
1096 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1097 <div class="directive-section"><h2><a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a> <a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a></h2>
1098 <table class="directive">
1099 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le serveur effectue la recherche initiale du
1100 DN en utilisant le nom propre de l'utilisateur pour l'authentification
1102 et non de manière anonyme, ou en utilisant des données d'authentification
1103 codées en dur pour le serveur</td></tr>
1104 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
1105 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
1106 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1107 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1108 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1109 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1110 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1112 <p>Par défaut, le serveur convertit le nom d'utilisateur pour
1113 l'authentification de base en nom distinctif LDAP (DN) soit de
1114 manière anonyme, soit avec un couple nom/mot de passe dédié. Cette
1115 directive permet de forcer le serveur à utiliser les véritables nom
1116 d'utilisateur et mot de passe fournis par l'utilisateur pour
1117 effectuer la recherche initiale du DN.</p>
1119 <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
1120 et nécessite de légères modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p>
1122 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1123 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1124 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1127 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1128 On ne peut utiliser cette directive que si ce module
1129 effectue une authentification, et n'a aucun effet si ce module
1130 n'est utilisé que pour les processus d'autorisation.
1135 <li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
1136 <li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
1137 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1138 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1141 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1142 <div class="directive-section"><h2><a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a> <a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a></h2>
1143 <table class="directive">
1144 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la modification a apporter au nom d'utilisateur
1145 pour l'authentification de base lors de l'authentification auprès du
1146 serveur LDAP pour effectuer une recherche de DN</td></tr>
1147 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></code></td></tr>
1148 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
1149 distant utilisé tel quel)</code></td></tr>
1150 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1151 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1152 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1153 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1154 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1156 <p>Si la directive <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> est
1157 définie à <em>ON</em>, le nom utilisateur pour l'authentification de
1158 base sera transformé selon l'expression rationnelle
1159 <var>regex</var> et l'argument <var>substitution</var> spécifiés.</p>
1161 <p>L'expression rationnelle est comparée au nom d'utilisateur pour
1162 l'authentification de base courant. L'argument
1163 <var>substitution</var> peut contenir des références arrières, mais
1164 n'effectue aucune autre interpolation de variable.</p>
1166 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1167 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1168 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1171 <div class="example"><p><code> AuthLDAPInitialBindPattern (.+) $1@example.com </code></p></div>
1172 <div class="example"><p><code> AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</code></p></div>
1174 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1175 On ne peut utiliser cette directive que si ce module
1176 effectue une authentification, et n'a aucun effet si ce module
1177 n'est utilisé que pour les processus d'autorisation.
1179 <div class="note"><h3>Débogage</h3>
1180 Le DN de substitution est enregistré dans la variable
1181 d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
1182 rationnelle ne convient pas, le nom d'utilisateur est utilisé
1188 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1189 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapbinddn">AuthLDAPBindDN</a></code></li>
1192 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1193 <div class="directive-section"><h2><a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a> <a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a></h2>
1194 <table class="directive">
1195 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la profondeur d'imbrication des sous-groupes
1196 maximale prise en compte avant l'abandon de la recherche de
1197 l'utilisateur.</td></tr>
1198 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Nombre</var></code></td></tr>
1199 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
1200 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1201 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1202 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1203 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1205 <p>Lorsque cette directive est définie à une valeur <code>X</code>
1206 non nulle, en combinaison avec l'utilisation de la directive
1207 <code>Require ldap-group DN-groupe</code>, les données de connexion
1208 fournies seront utilisées pour vérifier l'appartenance de
1209 l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
1210 tout sous-groupe du groupe courant en tenant compte de la profondeur
1211 d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
1212 <p>Se référer à la section <a href="#reqgroup"><code>Require
1213 ldap-group</code></a> pour un exemple plus détaillé.</p>
1216 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1217 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a> <a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a></h2>
1218 <table class="directive">
1219 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'attribut dont la valeur renvoyée au cours de la
1220 requête de l'utilisateur sera utilisée pour définir la variable
1221 d'environnement REMOTE_USER</td></tr>
1222 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
1223 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
1224 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1225 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1226 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1227 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1229 <p>Lorsque cette directive est définie, la variable d'environnement
1230 <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
1231 spécifié. Assurez-vous que cet attribut soit bien inclus dans la
1232 liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
1233 le cas contraire, cette directive n'aurait aucun effet. Si elle est
1234 présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
1235 peut s'avérer utile par exemple, si vous souhaitez que les
1236 utilisateurs se connectent à un site web en utilisant leur adresse
1237 email, alors qu'une application sous-jacente nécessite un nom
1238 d'utilisateur comme identifiant.</p>
1241 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1242 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a> <a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a></h2>
1243 <table class="directive">
1244 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
1245 d'environnement REMOTE_USER</td></tr>
1246 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
1247 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
1248 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1249 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1250 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1251 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1253 <p>Lorsque cette directive est à on, la variable d'environnement
1254 <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
1255 de l'utilisateur authentifié, et non plus avec simplement le nom
1256 d'utilisateur fourni par le client. Elle est définie à off par
1260 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1261 <div class="directive-section"><h2><a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a> <a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a></h2>
1262 <table class="directive">
1263 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise les données d'authentification de l'utilisateur
1264 pour la recherche des autorisations</td></tr>
1265 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
1266 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
1267 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1268 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1269 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1270 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1271 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1273 <p>Lorsque cette directive est définie, et si
1274 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
1275 recherches LDAP pour définir les autorisations utilisent le nom
1276 distinctif (DN) trouvé et le mot de passe pour l'authentification de
1277 base HTTP de l'utilisateur authentifié, au lieu des données
1278 d'authentification configurées au niveau du serveur.</p>
1280 <p>Les vérifications d'autorisation <em>ldap-filter</em> et
1281 <em>ldap-dn</em> utilisent des recherches.</p>
1283 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
1284 cours des traitements de groupe imbriqués, et lorsque la directive
1285 <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
1286 est aussi activée.</p>
1288 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1289 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1290 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1296 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1297 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1300 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1301 <div class="directive-section"><h2><a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a> <a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a></h2>
1302 <table class="directive">
1303 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie les noms d'attribut, un par directive, utilisés
1304 pour différencier les membres du groupe courant qui sont eux-mêmes des
1306 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribut</em></code></td></tr>
1307 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
1308 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1309 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1310 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1311 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1313 <p>Un objet groupe LDAP peut contenir des membres qui sont des
1314 utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
1315 sous-groupes ou groupes imbriqués). La directive
1316 <code>AuthLDAPSubGroupAttribute</code> spécifie l'attribut utilisé
1317 pour identifier les groupes, alors que la directive
1318 <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
1319 pour identifier les utilisateurs. On peut spécifier plusieurs
1320 attributs en répétant la directive plusieurs fois. Si elle n'est pas
1321 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1322 <code>member</code> et <code>uniqueMember</code>.</p>
1325 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1326 <div class="directive-section"><h2><a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a> <a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a></h2>
1327 <table class="directive">
1328 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie quelles valeurs d'objectClass LDAP identifient les
1329 objets de l'annuaire qui sont des groupes au cours du traitement des
1330 sous-groupes.</td></tr>
1331 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></code></td></tr>
1332 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
1333 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1334 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1335 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1336 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1338 <p>Un objet groupe LDAP peut contenir des membres qui sont des
1339 utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
1340 sous-groupes ou groupes imbriqués). La directive
1341 <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
1342 membres qui sont des sous-groupes du groupe courant (à l'opposé des
1343 membres utilisateurs). La directive
1344 <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
1345 d'objectClass LDAP utilisées pour vérifier que certains membres sont
1346 en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
1347 alors faire l'objet d'une recherche d'autres membres utilisateurs ou
1348 sous-groupes. On peut spécifier plusieurs attributs en répétant
1349 cette directive plusieurs fois. Si cette directive n'est pas
1350 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1351 <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
1354 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1355 <div class="directive-section"><h2><a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a> <a name="authldapurl" id="authldapurl">Directive</a></h2>
1356 <table class="directive">
1357 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
1358 recherche LDAP</td></tr>
1359 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
1360 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1361 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1362 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1363 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1365 <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
1366 paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
1367 syntaxe de l'URL est :</p>
1368 <div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
1369 <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
1370 LDAP, la syntaxe sera :</p>
1371 <div class="example"><p><code>AuthLDAPUrl "ldap://ldap1.example.com
1372 ldap2.example.com/dc=..."</code></p></div>
1373 <p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
1374 serveurs, vous devez en entourer la liste avec des guillemets ; dans le
1375 cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
1376 argument, URL to define LDAP connection..".</em> Vous pouvez bien
1377 entendu ajouter des paramètres de recherche à chacun des serveurs
1383 <dd>Pour ldap non sécurisé, utilisez la chaîne
1384 <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
1385 chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
1386 Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
1391 <p>Il s'agit du nom/port du serveur ldap
1392 (dont la valeur par défaut est
1393 <code>localhost:389</code> pour <code>ldap</code>, et
1394 <code>localhost:636</code> pour <code>ldaps</code>). Pour
1395 spécifier plusieurs serveurs LDAP redondants, indiquez
1396 simplement leur liste en les séparant par des espaces.
1397 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
1398 à chacun des serveurs jusqu'à ce qu'il parvienne à se
1399 connecter avec succès. Notez qu'en cas de multiples serveurs
1400 LDAP, l'ensemble de l'URL LDAP doit être entourée de
1403 <p>lorsqu'une connection a été établie avec un serveur, elle
1404 reste active pendant toute la durée de vie du processus
1405 <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
1406 cesse de fonctionner.</p>
1408 <p>Si le serveur LDAP cesse de fonctionner, et ainsi
1410 connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
1411 de se reconnecter en commençant par le premier serveur de la
1412 liste, et ainsi de suite avec les serveurs redondants
1413 suivants. Notez que ce processus n'a rien à voir avec une
1414 véritable recherche de type round-robin.</p>
1418 <dd>Le DN de la branche de l'annuaire à partir de laquelle
1419 toutes les recherches seront lancées. Il doit au moins
1420 correspondre à la racine de votre annuaire, mais vous pouvez
1421 aussi indiquer une branche plus spécifique.</dd>
1425 <dd>Il s'agit de l'attribut à utiliser pour la recherche.
1427 2255 autorise une liste d'attributs séparés par des virgules,
1428 seul le premier sera retenu, sans tenir compte des autres
1429 attributs fournis. Si aucun attribut n'est fourni, l'attribut
1430 par défaut est <code>uid</code>. Il est judicieux de choisir un
1431 attribut dont la valeur sera unique parmi toutes les entrées de
1432 la branche de l'annuaire que vous aurez définie. Tous les
1433 attributs spécifiés seront enregistrés dans des variables
1434 d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
1435 être utilisés par d'autres modules.</dd>
1439 <dd>Il s'agit de la portée de la recherche. Elle peut prendre
1440 les valeurs <code>one</code> ou <code>sub</code>. Notez que la
1441 RFC 2255 supporte aussi une portée de valeur <code>base</code>,
1442 mais cette dernière n'est pas supportée par le module. Si la
1443 portée n'est pas définie, ou si elle est définie à
1444 <code>base</code>, c'est la valeur de portée par défaut
1445 <code>sub</code> qui sera utilisée.</dd>
1449 <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
1450 filtre n'est spécifié, le filtre par défaut
1451 <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
1452 une recherche de tous les types d'objets de l'arborescence. La
1453 taille des filtres est limitée à environ 8000 caractères (valeur
1454 de la macro <code>MAX_STRING_LEN</code> dans le code source
1455 d'Apache), ce qui s'avère plus que suffisant pour la plupart des
1459 <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
1460 fournis par le client HTTP sont combinés pour créer un filtre de
1461 recherche du style :
1462 <code>(&(<em>filtre</em>)(<em>attribut</em>
1463 =<em>nom-utilisateur</em>))</code>.</p>
1465 <p>Par exemple, considérons l'URL
1466 <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
1467 Lorsqu'un client tentera de se connecter en utilisant le nom
1468 d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
1469 : <code>(&(posixid=*)(cn=Babs Jenson))</code>.</p>
1471 <p>On peut encore ajouter un paramètre optionnel pour permettre à
1472 l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
1473 prendre l'une des valeurs suivantes :</p>
1477 <dd>Établit une connexion non sécurisée sur le port LDAP par
1478 défaut, ce qui est équivalent à <code>ldap://</code> sur le port
1481 <dd>Établit une connexion sécurisée sur le port LDAP sécurisé
1482 par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
1483 <dt>TLS | STARTTLS</dt>
1484 <dd>Établit une connexion sécurisée par élévation de niveau sur
1485 le port LDAP par défaut. Cette connexion sera initialisée sur le
1486 port 389 par défaut, puis élevée à un niveau de connexion
1487 sécurisée sur le même port.</dd>
1490 <p>Voir plus haut pour des exemples d'URLs définies par la directive
1491 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
1495 <div class="bottomlang">
1496 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> |
1497 <a href="../fr/mod/mod_authnz_ldap.html" title="Français"> fr </a></p>
1498 </div><div id="footer">
1499 <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
1500 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>