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" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
17 <div id="page-header">
18 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
19 <p class="apache">Serveur Apache HTTP Version 2.5</p>
20 <img alt="" src="../images/feather.gif" /></div>
21 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
23 <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.5</a> > <a href="./">Modules</a></div>
24 <div id="page-content">
25 <div id="preamble"><h1>Module Apache mod_authnz_ldap</h1>
27 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> |
28 <a href="../fr/mod/mod_authnz_ldap.html" title="Français"> fr </a></p>
30 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet d'utiliser un annuaire LDAP pour l'authentification
31 HTTP de base.</td></tr>
32 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
33 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>authnz_ldap_module</td></tr>
34 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_authnz_ldap.c</td></tr></table>
37 <p>Ce module permet aux frontaux d'authentification comme
38 <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> d'authentifier les utilisateurs via
41 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> supporte les fonctionnalités
45 <li>Support vérifié du <a href="http://www.openldap.org/">OpenLDAP SDK</a> (versions 1.x et
46 2.x), du <a href="http://developer.novell.com/ndk/cldap.htm">
47 Novell LDAP SDK</a> et du SDK <a href="http://www.iplanet.com/downloads/developer/">iPlanet
50 <li>Implémentation de politiques d'autorisation complexes en les
51 définissant via des filtres LDAP.</li>
53 <li>Mise en oeuvre d'une mise en cache des opérations LDAP
54 élaborée via <a href="mod_ldap.html">mod_ldap</a>.</li>
56 <li>Support de LDAP via SSL (nécessite le SDK Netscape) ou TLS
57 (nécessite le SDK OpenLDAP 2.x ou le SDK LDAP Novell).</li>
60 <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, ce module est
61 invoqué en affectant la valeur <code>ldap</code> à la directive
62 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
64 <div id="quickview"><h3 class="directives">Directives</h3>
66 <li><img alt="" src="../images/down.gif" /> <a href="#authldapauthorizeprefix">AuthLDAPAuthorizePrefix</a></li>
67 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></li>
68 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbinddn">AuthLDAPBindDN</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindpassword">AuthLDAPBindPassword</a></li>
70 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcharsetconfig">AuthLDAPCharsetConfig</a></li>
71 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#authldapdereferencealiases">AuthLDAPDereferenceAliases</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></li>
75 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></li>
76 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></li>
78 <li><img alt="" src="../images/down.gif" /> <a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserattribute">AuthLDAPRemoteUserAttribute</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></li>
84 <li><img alt="" src="../images/down.gif" /> <a href="#authldapurl">AuthLDAPUrl</a></li>
88 <li><img alt="" src="../images/down.gif" /> <a href="#contents">Sommaire</a></li>
89 <li><img alt="" src="../images/down.gif" /> <a href="#operation">Mode opératoire</a></li>
90 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives requises</a></li>
91 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
92 <li><img alt="" src="../images/down.gif" /> <a href="#usingtls">Utilisation de TLS</a></li>
93 <li><img alt="" src="../images/down.gif" /> <a href="#usingssl">Utilisation de SSL</a></li>
94 <li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de
96 <li><img alt="" src="../images/down.gif" /> <a href="#activedirectory">Utilisation d'Active
98 <li><img alt="" src="../images/down.gif" /> <a href="#frontpage">Utilisation de Microsoft
99 FrontPage avec mod_authnz_ldap</a></li>
100 </ul><h3>Voir aussi</h3>
102 <li><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></li>
103 <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
104 <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
105 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
106 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
107 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
108 <div class="section">
109 <h2><a name="contents" id="contents">Sommaire</a></h2>
113 <a href="#operation">Mode opératoire</a>
116 <li><a href="#authenphase">La phase
117 d'authentification</a></li>
119 <li><a href="#authorphase">La phase d'autorisation</a></li>
124 <a href="#requiredirectives">Les directives requises</a>
127 <li><a href="#requser">Require ldap-user</a></li>
128 <li><a href="#reqgroup">Require ldap-group</a></li>
129 <li><a href="#reqdn">Require ldap-dn</a></li>
130 <li><a href="#reqattribute">Require ldap-attribute</a></li>
131 <li><a href="#reqfilter">Require ldap-filter</a></li>
135 <li><a href="#examples">Exemples</a></li>
136 <li><a href="#usingtls">Utilisation de TLS</a></li>
137 <li><a href="#usingssl">Utilisation de SSL</a></li>
138 <li><a href="#exposed">Mise à disposition des informations de
140 <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
142 <a href="#frontpage">Utilisation de Microsoft FrontPage avec
143 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
146 <li><a href="#howitworks">Comment ça marche</a></li>
147 <li><a href="#fpcaveats">Mises en garde</a></li>
151 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
152 <div class="section">
153 <h2><a name="operation" id="operation">Mode opératoire</a></h2>
155 <p>L'utilisateur se voit accorder l'accès selon un processus en deux
156 phases. La première phase est l'authentification, au cours de
157 laquelle le fournisseur d'authentification
158 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> vérifie que les informations de
159 connexion de l'utilisateur sont valides. Elle est aussi connue sous
160 le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
161 dans le code source : <em>search/bind</em>). La deuxième
162 phase est l'autorisation, au cours de laquelle
163 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> détermine si l'utilisateur
164 authentifié a la permission d'accéder à la ressource considérée.
165 Elle est aussi connue sous le nom de phase de
166 <em>comparaison</em> (<em>compare</em>).</p>
168 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> comporte un fournisseur
169 d'authentification authn_ldap et un gestionnaire d'autorisation
170 authz_ldap. Le fournisseur d'authentification authn_ldap peut être
171 invoqué en affectant la valeur <code>ldap</code> à la directive
172 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Le
173 gestionnaire d'autorisation authz_ldap enrichit la liste des types
174 d'autorisations de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en y ajoutant les
175 valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
176 <code>ldap-group</code>.</p>
178 <h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
180 <p>Au cours de la phase d'authentification,
181 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> recherche une entrée de l'annuaire
182 LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
183 Si une correspondance unique est trouvée,
184 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de se connecter au serveur
185 hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
186 de passe fourni par le client HTTP. Comme ce processus effectue tout
187 d'abord une recherche, puis une connexion, il est aussi connu sous
188 le nom de phase de recherche/connexion. Voici le détail des étapes
189 constituant la phase de recherche/connexion :</p>
192 <li>Confection d'un filtre de recherche en combinant les attribut
193 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
194 passe fournis par le client HTTP.</li>
196 <li>Recherche dans l'annuaire LDAP en utilisant le filtre
197 confectionné précédemment. Si le résultat de la recherche est
198 négatif ou comporte plusieurs entrées, refus ou restriction de
201 <li>Extraction du DN (distinguished name) de l'entrée issue du
202 résultat de la recherche, et tentative de connexion au serveur
203 LDAP en utilisant ce DN et le mot de passe fournis par le client
204 HTTP. Si la connexion échoue, refus ou restriction de
208 <p>Les directives utilisées durant la phase de recherche/connexion
209 sont les suivantes :</p>
214 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
216 <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
217 utiliser pour la recherche, ainsi que les filtres de recherche
218 supplémentaires.</td>
222 <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
224 <td>Un DN optionnel pour se connecter durant la phase de
229 <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
231 <td>Un mot de passe optionnel pour se connecter durant la phase
237 <h3><a name="authorphase" id="authorphase">La phase d'autorisation</a></h3>
239 <p>Au cours de la phase d'autorisation,
240 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de déterminer si
241 l'utilisateur est autorisé à accéder à la ressource considérée. Une
242 grande partie de cette vérification consiste pour
243 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> en des opérations de comparaison au
244 niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
245 sous le nom de phase de comparaison.
246 <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
247 déterminer si les informations de connexion permettent d'accorder
248 l'accès à l'utilisateur :</p>
251 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-user</code></a>,
252 l'autorisation d'accès est accordée si le nom d'utilisateur
253 spécifié par la directive correspond au nom d'utilisateur fourni
256 <li>Avec la directive <a href="#reqdn"><code>Require
257 ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
258 spécifié par la directive correspond au DN extrait du résultat de
259 la recherche dans l'annuaire LDAP.</li>
261 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-group</code></a>,
262 l'autorisation d'accès est accordée si le DN extrait du résultat de
263 la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
264 par le client) appartient au groupe LDAP spécifié par la
265 directive, ou éventuellement à un de ses sous-groupes.</li>
267 <li>Avec la directive <a href="#reqattribute">
268 <code>Require ldap-attribute</code></a>, l'autorisation d'accès
269 est accordée si la valeur de l'attribut extraite de la recherche
270 dans l'annuaire LDAP correspond à la valeur spécifiée par la
273 <li>Avec la directive <a href="#reqfilter">
274 <code>Require ldap-filter</code></a>, l'autorisation d'accès
275 est accordée si le filtre de recherche renvoie un objet
276 utilisateur unique qui corresponde au DN de l'utilisateur
279 <li>dans tous les autres cas, refus ou restriction de
283 <p>Sous réserve du chargement de modules d'autorisation
284 supplémentaires, d'autres valeurs de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> peuvent être
288 <li>L'accès est accordé à tous les utilisateurs authentifiés si
289 une directive <a href="#requser"><code>Require
290 valid-user</code></a> est présente (nécessite le module
291 <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>).</li>
293 <li>Avec la directive <a href="#reqgroup"><code>Require group</code></a>, l'autorisation
294 d'accès est accordée si le module
295 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> a été chargé et si la
296 directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> a été
303 <p>Durant la phase de comparaison, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
304 utilise les directives suivantes :</p>
309 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
312 <td>On utilise l'attribut spécifié dans l'URL pour les
313 opérations de comparaison initiées par la directive
314 <code>Require ldap-user</code>.</td>
318 <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
320 <td>Détermine le comportement de la directive <code>Require
325 <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
327 <td>Détermine l'attribut utilisé pour les opérations de
328 comparaison initiées par la directive <code>Require
329 ldap-group</code>.</td>
333 <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
335 <td>Spécifie si l'on doit utiliser le DN ou le nom de
336 l'utilisateur lors des opérations de comparaison initiées par la
337 directive <code>Require ldap-group</code>.</td>
341 <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
343 <td>Détermine la profondeur maximale de l'arborescence des
344 sous-groupes qui seront évalués au cours des opérations de
345 comparaisons initiées par la directive <code>Require
346 ldap-group</code>.</td>
350 <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
352 <td>Détermine l'attribut à utiliser lors de l'extraction de
353 membres de sous-groupes du groupe courant au cours des
354 opérations de comparaison initiées par la directive
355 <code>Require ldap-group</code>.</td>
359 <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
361 <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
362 déterminer si les objets extraits de l'annuaire sont bien des
363 objets de type groupe (et non des objets de type utilisateur),
364 au cours du traitement des sous-groupes initié par la directive
365 <code>Require ldap-group</code>.</td>
369 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
370 <div class="section">
371 <h2><a name="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
373 <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache sont utilisées
374 au cours de la phase d'autorisation afin de s'assurer que
375 l'utilisateur est autorisé à accéder à une ressource.
376 mod_authnz_ldap enrichit la liste des types d'autorisations avec les
377 valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
378 <code>ldap-group</code>, <code>ldap-attribute</code> et
379 <code>ldap-filter</code>. D'autres types d'autorisations sont
380 disponibles, sous réserve du chargement de modules d'autorisation
383 <h3><a name="requser" id="requser">Require ldap-user</a></h3>
385 <p>La directive <code>Require ldap-user</code> permet de spécifier
386 les noms des utilisateurs autorisés à accéder à la ressource.
387 Lorsque <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a extrait un DN unique de
388 l'annuaire LDAP, il effectue une opération de comparaison LDAP en
389 utilisant le nom d'utilisateur spécifié par la directive
390 <code>Require ldap-user</code>, pour vérifier si ce nom
391 d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
392 l'accès à plusieurs utilisateurs en plaçant plusieurs nom
393 d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
394 d'utilisateur contient des espaces, il doit être entouré de
395 guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
396 en utilisant une directive <code>Require ldap-user</code> par
397 utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
398 <code>ldap://ldap/o=Example?cn</code> (spécifiant donc que l'attribut
399 <code>cn</code> sera utilisé pour les recherches), on pourra
400 utiliser les directives Require suivantes pour restreindre l'accès
402 <pre class="prettyprint lang-config">
403 Require ldap-user "Barbara Jenson"
404 Require ldap-user "Fred User"
405 Require ldap-user "Joe Manager"
409 <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
410 cette directive, Barbara Jenson peut s'authentifier comme
411 <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
412 <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
413 LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
414 toutes les valeurs de l'attribut dans l'entrée LDAP de
417 <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
418 l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
419 ci-dessus auraient pû être condensées en une seule ligne :</p>
420 <pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
424 <h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
426 <p>Cette directive permet de spécifier un groupe LDAP dont les
427 membres auront l'autorisation d'accès. Elle prend comme argument le
428 DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
429 guillemets. Par exemple, supposons que l'entrée suivante existe dans
430 l'annuaire LDAP :</p>
431 <div class="example"><pre>
432 dn: cn=Administrators, o=Example
433 objectClass: groupOfUniqueNames
434 uniqueMember: cn=Barbara Jenson, o=Example
435 uniqueMember: cn=Fred User, o=Example
438 <p>La directive suivante autoriserait alors l'accès à Fred et
440 <pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
443 <p>Les membres peuvent aussi se trouver dans les sous-groupes du
444 groupe LDAP spécifié si la directive <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code> a été
445 définie à une valeur supérieure à 0. Par exemple, supposons que les
446 entrées suivantes existent dans l'annuaire LDAP :</p>
447 <div class="example"><pre>
448 dn: cn=Employees, o=Example
449 objectClass: groupOfUniqueNames
450 uniqueMember: cn=Managers, o=Example
451 uniqueMember: cn=Administrators, o=Example
452 uniqueMember: cn=Users, o=Example
454 dn: cn=Managers, o=Example
455 objectClass: groupOfUniqueNames
456 uniqueMember: cn=Bob Ellis, o=Example
457 uniqueMember: cn=Tom Jackson, o=Example
459 dn: cn=Administrators, o=Example
460 objectClass: groupOfUniqueNames
461 uniqueMember: cn=Barbara Jenson, o=Example
462 uniqueMember: cn=Fred User, o=Example
464 dn: cn=Users, o=Example
465 objectClass: groupOfUniqueNames
466 uniqueMember: cn=Allan Jefferson, o=Example
467 uniqueMember: cn=Paul Tilley, o=Example
468 uniqueMember: cn=Temporary Employees, o=Example
470 dn: cn=Temporary Employees, o=Example
471 objectClass: groupOfUniqueNames
472 uniqueMember: cn=Jim Swenson, o=Example
473 uniqueMember: cn=Elliot Rhodes, o=Example
476 <p>Les directives suivantes autoriseraient alors l'accès à Bob
477 Ellis, Tom Jackson, Barbara Jensen, Fred User, Allan Jefferson, et
478 Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
479 (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
481 <pre class="prettyprint lang-config">
482 Require ldap-group cn=Employees, o-Example
483 AuthLDAPMaxSubGroupDepth 1
487 <p>Le comportement de cette directive est modifié par les directives
488 <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>,
489 <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>,
490 <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>,
491 <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, et
492 <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>.</p>
495 <h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
497 <p>La directive <code>Require ldap-dn</code> permet à
498 l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
499 Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
501 l'annuaire correspond au DN spécifié par la directive <code>Require
502 ldap-dn</code>, l'autorisation d'accès est accordée. Note :
503 n'entourez pas Le DN de guillemets.</p>
505 <p>La directive suivante accorderait l'accès à un DN spécifique
507 <pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
510 <p>Le comportement ce cette directive est modifié par la directive
511 <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
514 <h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
516 <p>La directive <code>Require ldap-attribute</code> permet à
517 l'administrateur d'accorder l'autorisation d'accès en fonction des
518 attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
519 valeur de l'attribut dans l'annuaire correspond à la valeur
520 spécifiée par la directive, l'autorisation d'accès est accordée.</p>
522 <p>La directive suivante accorderait l'autorisation d'accès à tout
523 utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
525 <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
528 <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
529 même directive en les séparant par des espaces, ou en définissant
530 plusieurs directives <code>Require ldap-attribute</code>. La logique
531 sous-jacente à une liste de paires attribut/valeur est une opération
532 OU. L'autorisation d'accès sera accordée si au moins une paire
533 attribut/valeur de la liste spécifiée correspond à la paire
534 attribut/valeur de l'utilisateur authentifié. Si elle contient des
535 espaces, la valeur, et seulement la valeur, doit être entourée de
538 <p>La directive suivante accorderait l'autorisation d'accès à tout
539 utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
540 donc l'attribut status aurait pour valeur "actif" :</p>
542 <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
547 <h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
549 <p>La directive <code>Require ldap-filter</code> permet à
550 l'administrateur d'accorder l'autorisation d'accès en fonction d'un
551 filtre de recherche LDAP complexe. L'autorisation d'accès est
552 accordée si le DN renvoyé par le filtre de recherche correspond au
553 DN de l'utilisateur authentifié.</p>
555 <p>La directive suivante accorderait l'autorisation d'accès à tout
556 utilisateur possédant un téléphone cellulaire et faisant partie du
557 département "marketing" :</p>
559 <pre class="prettyprint lang-config">Require ldap-filter &(cell=*)(department=marketing)</pre>
562 <p>Alors que la directive <code>Require ldap-attribute</code> se
563 contente d'une simple comparaison d'attributs, la directive
564 <code>Require ldap-filter</code> effectue une opération de recherche
565 dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
566 Si une simple comparaison d'attributs suffit, l'opération de
567 comparaison effectuée par <code>ldap-attribute</code> sera plus
568 rapide que l'opération de recherche effectuée par
569 <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
570 LDAP de grande taille.</p>
574 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
575 <div class="section">
576 <h2><a name="examples" id="examples">Exemples</a></h2>
580 Accorde l'autorisation d'accès à tout utilisateur présent dans
581 l'annuaire LDAP, en utilisant son UID pour effectuer la
583 <pre class="prettyprint lang-config">
584 AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
591 L'exemple suivant est similaire au précédent, mais les champs
592 dont les valeurs par défaut conviennent sont omis. Notez aussi
593 la présence d'un annuaire LDAP redondant :
594 <pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
601 Encore un exemple similaire aux précédents, mais cette fois,
602 c'est l'attribut cn qui est utilisé pour la recherche à la place
603 de l'UID. Notez que ceci peut poser problème si plusieurs
604 utilisateurs de l'annuaire partagent le même <code>cn</code>,
605 car une recherche sur le <code>cn</code> <strong>doit</strong>
606 retourner une entrée et une seule. C'est pourquoi cette
607 approche n'est pas recommandée : il est préférable de choisir un
608 attribut de votre annuaire dont l'unicité soit garantie, comme
610 <pre class="prettyprint lang-config">
611 AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
618 Accorde l'autorisation d'accès à tout utilisateur appartenant au
619 groupe Administrateurs. Les utilisateurs doivent s'authentifier
620 en utilisant leur UID :
621 <pre class="prettyprint lang-config">
622 AuthLDAPURL ldap://ldap.example.com/o=Example?uid
623 Require ldap-group cn=Administrators, o=Example
629 Pour l'exemple suivant, on suppose que tout utilisateur de chez
630 Example qui dispose d'un bippeur alphanumérique possèdera un
631 attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
632 (authentifiés via leur UID) se verront accorder l'autorisation
634 <pre class="prettyprint lang-config">
635 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
642 <p>L'exemple suivant illustre la puissance des filtres pour
643 effectuer des requêtes complexes. Sans les filtres, il aurait
644 été nécessaire de créer un nouveau groupe LDAP et de s'assurer
645 de la synchronisation des membres du groupe avec les
646 utilisateurs possédant un bippeur. Tout devient limpide avec les
647 filtres. Nous avons pour but d'accorder l'autorisation d'accès à
648 tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
649 qui ne possède pas de bippeur, mais doit tout de même pouvoir
650 accéder à la ressource :</p>
651 <pre class="prettyprint lang-config">
652 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
657 <p>Ce dernier exemple peut sembler confus au premier abord ; en
658 fait, il permet de mieux comprendre à quoi doit ressembler le
659 filtre en fonction de l'utilisateur qui se connecte. Si Fred
660 User se connecte en tant que <code>fuser</code>, le filtre devra
663 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
665 <p>Un recherche avec le filtre ci-dessus ne retournera un
666 résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
667 Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
668 devra ressembler à :</p>
670 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
672 <p>Un recherche avec le filtre ci-dessus retournera un
673 résultat positif que <em>jmanager</em> dispose d'un
677 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
678 <div class="section">
679 <h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
681 <p>Pour l'utilisation de TLS, voir les directives du module
682 <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>
684 <p>Un second paramètre optionnel peut être ajouté à la directive
685 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
686 remplacer le type de connexion par défaut défini par la directive
687 <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
688 permettra de promouvoir la connexion établie via une URL du type
689 <em>ldap://</em> au statut de connection sécurisée sur le même
691 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
692 <div class="section">
693 <h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
695 <p>Pour l'utilisation de SSL, voir les directives du module
696 <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>
698 <p>Pour spécifier un serveur LDAP sécurisé, utilisez
699 <em>ldaps://</em> au lieu de
700 <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
701 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
702 <div class="section">
703 <h2><a name="exposed" id="exposed">Mise à disposition des informations de
706 <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
707 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
708 dans des variables d'environnement préfixées par la chaîne
711 <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
712 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
713 dans des variables d'environnement préfixées par la chaîne
716 <p>Si les champs attribut contiennent le nom, le CN et le numéro de
717 téléphone d'un utilisateur, un programme CGI pourra accéder à ces
718 informations sans devoir effectuer une autre requête LDAP pour
719 les extraire de l'annuaire.</p>
721 <p>Ceci a pour effet de simplifier considérablement le code et la
722 configuration nécessaire de certaines applications web.</p>
724 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
725 <div class="section">
726 <h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
729 <p>Active Directory peut supporter plusieurs domaines à la fois.
730 Pour faire la distinction entre les utilisateurs de plusieurs
731 domaines, on peut ajouter à l'entrée de l'utilisateur dans
732 l'annuaire un identifiant appelé Nom
733 Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
734 compose en général du nom de compte de l'utilisateur, suivi du nom
735 du domaine considéré, par exemple <em>untel@nz.example.com</em>.</p>
737 <p>Vous voudrez probablement configurer le module
738 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> afin de pouvoir authentifier les
739 utilisateurs de n'importe quel domaine de la forêt Active Directory.
740 Ainsi, <em>untel@nz.example.com</em> et
741 <em>untel@au.example.com</em> pourront être authentifiés en une
742 seule fois par la même requête.</p>
744 <p>Pour y parvenir, on utilise le concept de Catalogue Global
745 d'Active Directory. Ce Catalogue Global est une copie en lecture
746 seule des attributs sélectionnés de tous les serveurs de la forêt
747 Active Directory. Une requête vers le
748 Catalogue Global permet donc d'atteindre tous les domaines en une
749 seule fois, sans avoir à se connecter aux différents serveurs, via
750 des liaisons dont certaines peuvent être lentes.</p>
752 <p>Lorsqu'il est activé, la Catalogue Global est un serveur
753 d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
754 Pour rechercher un utilisateur, effectuez une recherche sur
755 l'attribut <em>userPrincipalName</em>, avec une base de recherche
756 vide, comme suit :</p>
758 <pre class="prettyprint lang-config">
759 AuthLDAPBindDN apache@example.com
760 AuthLDAPBindPassword password
761 AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
765 <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
766 la forme<em>untel@nz.example.com</em>.</p>
768 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
769 <div class="section">
770 <h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
771 FrontPage avec mod_authnz_ldap</a></h2>
773 <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
774 spécifiques à FrontPage-web (c'est à dire les modules
775 <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
776 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
777 l'authentification. Malheureusement, il ne suffit pas de modifier
778 l'authentification LDAP en ajoutant les directives appropriées, car
779 ceci corromprait les formulaires de <em>Permissions</em> dans le
780 client FrontPage, qui sont censés modifier les fichiers
781 d'autorisation standards au format texte.</p>
783 <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
784 l'authentification LDAP consiste à ajouter les directives suivantes
785 à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
787 <pre class="prettyprint lang-config">
788 AuthLDAPURL "the url"
789 AuthGroupFile mygroupfile
790 Require group mygroupfile
794 <h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
796 <p>FrontPage restreint l'accès à un site web en ajoutant la
797 directive <code>Require valid-user</code> aux fichiers
798 <code>.htaccess</code>. La directive <code>Require valid-user</code>
799 permettra l'accès à tout utilisateur valide <em>du point de vue
800 LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
801 dans l'annuaire LDAP sera considéré comme valide, alors que
802 FrontPage ne considère comme valides que les utilisateurs
803 enregistrés dans le fichier des utilisateurs local. En remplaçant
804 l'autorisation par groupe LDAP par une autorisation par fichier de
805 groupe, Apache sera en mesure de consulter le fichier des
806 utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
807 - lors du processus d'autorisation des utilisateurs.</p>
809 <p>Une fois les directives ajoutées selon ce qui précède, les
810 utilisateurs FrontPage pourront effectuer toutes les opérations de
811 gestion à partir du client FrontPage.</p>
814 <h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
817 <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
818 l'authentification doit aussi être valide pour le fichier des
819 utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
820 l'UID est idéal.</li>
822 <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
823 administrateurs de FrontPage doivent choisir des noms
824 d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
825 raisons évidentes). De même, le mot de passe que l'administrateur
826 entre dans le formulaire est ignoré, car pour l'authentification,
827 Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
828 de passe enregistré dans le fichier des utilisateurs, ce qui peut
829 semer la confusion parmi les administrateurs web.</li>
832 <li>Pour supporter FrontPage, Apache doit être compilé avec
833 <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>
834 et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
835 qu'Apache doit utiliser le fichier de groupes de
836 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
837 d'accès d'un utilisateur au site web FrontPage.</li>
839 <li>Les directives doivent être placées dans les fichiers
840 <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
841 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
842 où se trouve la liste des utilisateurs valides,
843 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
844 la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
845 dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
846 de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
847 même fichier <code>.htaccess</code> que les directives FrontPage,
848 la configuration ne fonctionnera pas, car
849 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
850 traiter le fichier <code>.htaccess</code>, et par conséquent ne
851 pourra jamais trouver le fichier des utilisateurs géré par
856 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
857 <div class="directive-section"><h2><a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a> <a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a></h2>
858 <table class="directive">
859 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le préfixe ajouté aux variables d'environnement
860 durant la phase d'autorisation</td></tr>
861 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPAuthorizePrefix <em>préfixe</em></code></td></tr>
862 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
863 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
864 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
865 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
866 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
867 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
869 <p>Cette directive permet de spécifier le préfixe ajouté aux
870 variables d'environnement durant la phase d'autorisation. Si la
871 valeur spécifiée est <em>AUTHENTICATE_</em>, les utilisateurs de ces
872 variables d'environnement verront les mêmes informations, que le
873 serveur effectue une authentification, une autorisation, ou les
876 <div class="note"><h3>Note</h3>
877 Aucune variable d'autorisation n'est définie lorsqu'un utilisateur
878 s'est vu autoriser l'accès via la directive <code>Require
883 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
884 <div class="directive-section"><h2><a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a> <a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a></h2>
885 <table class="directive">
886 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'on doit utiliser d'autres fournisseurs
887 d'authentification lorsque le serveur ne peut pas valider les données
888 d'authentification de l'utilisateur, alors que ce dernier possède un
890 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
891 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
892 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
893 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
894 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
895 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
897 <p>Par défaut, des fournisseurs d'authentification sont appelés
898 si un utilisateur ne possède pas de DN, mais ne le sont pas si
899 l'utilisateur possède un DN et si son mot de passe ne peut pas être
900 vérifié lors d'une connexion au serveur LDAP. Si la directive
901 <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
902 définie à <em>off</em>, d'autres modules d'authentification
903 configurés auront une chance de valider le mot de passe de
904 l'utilisateur si la tentative de connexion au serveur LDAP échoue
905 pour une raison quelconque (avec les données d'authentification
907 <p>Ceci permet aux utilisateurs présent à la fois dans l'annuaire
908 LDAP et dans un fichier <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de s'authentifier
909 lorsque le serveur LDAP est disponible, alors que le compte de
910 l'utilisateur est verrouillé ou que son mot de passe est
911 inutilisable pour une raison quelconque.</p>
915 <li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
916 <li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
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="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a> <a name="authldapbinddn" id="authldapbinddn">Directive</a></h2>
921 <table class="directive">
922 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
924 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</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 définir un DN optionnel pour se
931 connecter au serveur afin d'y rechercher des entrées. Si aucun DN
932 n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
933 connexion anonyme.</p>
936 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
937 <div class="directive-section"><h2><a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a> <a name="authldapbindpassword" id="authldapbindpassword">Directive</a></h2>
938 <table class="directive">
939 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
941 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
942 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
943 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
944 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
945 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
947 <p>Cette directive permet de spécifier un mot de passe à utiliser en
948 conjonction avec le DN de connexion. Notez que ce mot de passe
949 constitue en général une donnée sensible, et doit donc être protégé
950 de manière appropriée. Vous ne devez utiliser les directives
951 <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
952 vous en avez vraiment besoin pour effectuer une recherche dans
956 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
957 <div class="directive-section"><h2><a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a> <a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a></h2>
958 <table class="directive">
959 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
960 langage/jeu de caractères</td></tr>
961 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
962 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
963 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
964 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
966 <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
967 de définir le chemin du fichier de configuration de la
968 correspondance langage/jeu de caractères. <var>chemin-fichier</var>
969 est un chemin relatif au répertoire défini par la directive
970 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
971 de correspondances extension de langage/jeu de caractères. La
972 plupart des administrateurs utilisent le fichier
973 <code>charset.conv</code> fourni qui associe les extensions de
974 langage courantes à leurs jeux de caractères.</p>
976 <p>Le fichier contient des lignes au format suivant :</p>
978 <div class="example"><p><code>
979 <var>extension de langage</var> <var>jeu de caractères</var>
980 [<var>Nom du langage</var>] ...
983 <p>L'extension est insensible à la casse. Les lignes vides et les
984 lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
987 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
988 <div class="directive-section"><h2><a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a> <a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a></h2>
989 <table class="directive">
990 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation des données d'authentification de l'utilisateur
991 pour effectuer les comparaisons pour l'attribution des autorisations</td></tr>
992 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
993 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
994 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
995 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
996 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
997 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
998 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version version 2.3.6</td></tr>
1000 <p>Lorsque cette directive est définie, et si
1001 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
1002 recherches LDAP pour les autorisations utilisent le nom distinctif
1003 trouvé (DN) et le mot de passe d'authentification basique HTTP de
1004 l'utilisateur authentifié au lieu des données d'authentification
1005 configurées au niveau du serveur.</p>
1007 <p>Les vérifications d'autorisation <em>ldap-attribute</em>,
1008 <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
1009 utilisent des comparaisons.</p>
1011 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
1012 cours des traitements de groupe imbriqués, et lorsque la directive
1013 <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code>
1014 est aussi activée.</p>
1016 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1017 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1018 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1023 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1024 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1027 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1028 <div class="directive-section"><h2><a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a> <a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a></h2>
1029 <table class="directive">
1030 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
1031 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
1032 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
1033 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1034 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1035 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1036 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1038 <p>Lorsque cette directive est définie à on,
1039 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
1040 comparer les DNs. Il s'agit de la seule méthode infaillible pour
1041 comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
1042 dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
1043 comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
1044 directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
1045 simple comparaison de chaînes. Cette dernière approche peut produire
1046 des faux négatifs, mais elle est beaucoup plus rapide. Notez
1047 cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
1048 la comparaison de DNs dans la plupart des situations.</p>
1051 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1052 <div class="directive-section"><h2><a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a> <a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a></h2>
1053 <table class="directive">
1054 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>À quel moment le module va déréférencer les
1056 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
1057 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
1058 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1059 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1060 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1061 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1063 <p>Cette directive permet de spécifier à quel moment
1064 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
1065 des opérations liées à LDAP. La valeur par défaut est
1066 <code>always</code>.</p>
1069 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1070 <div class="directive-section"><h2><a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a> <a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a></h2>
1071 <table class="directive">
1072 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
1073 utilisateur à un groupe.</td></tr>
1074 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
1075 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
1076 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1077 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1078 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1079 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1081 <p>Cette directive permet de spécifier quel attribut LDAP est
1082 utilisé pour vérifier l'appartenance d'un utilisateur à un
1083 groupe. On peut spécifier plusieurs attributs en répétant cette
1084 directive plusieurs fois. Si la directive n'est pas définie,
1085 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1086 <code>member</code> et <code>uniquemember</code>.</p>
1089 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1090 <div class="directive-section"><h2><a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a> <a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a></h2>
1091 <table class="directive">
1092 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
1093 appartenance à un groupe</td></tr>
1094 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
1095 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
1096 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1097 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1098 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1099 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1101 <p>Lorsqu'elle est définie à <code>on</code>, cette directive
1102 indique que c'est le DN de l'utilisateur qui doit être utilisé pour
1103 vérifier son appartenance à un groupe. Dans le cas contraire, c'est
1104 le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
1105 le client envoie le nom d'utilisateur <code>bjenson</code>, qui
1106 correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
1107 directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
1108 vérifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
1109 groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
1110 vérifiera si <code>bjenson</code> est un membre du groupe.</p>
1113 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1114 <div class="directive-section"><h2><a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a> <a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a></h2>
1115 <table class="directive">
1116 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le serveur effectue la recherche initiale du
1117 DN en utilisant le nom propre de l'utilisateur pour l'authentification
1119 et non de manière anonyme, ou en utilisant des données d'authentification
1120 codées en dur pour le serveur</td></tr>
1121 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
1122 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
1123 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1124 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1125 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1126 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1127 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1129 <p>Par défaut, le serveur convertit le nom d'utilisateur pour
1130 l'authentification de base en nom distinctif LDAP (DN) soit de
1131 manière anonyme, soit avec un couple nom/mot de passe dédié. Cette
1132 directive permet de forcer le serveur à utiliser les véritables nom
1133 d'utilisateur et mot de passe fournis par l'utilisateur pour
1134 effectuer la recherche initiale du DN.</p>
1136 <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
1137 et nécessite de légères modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p>
1139 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1140 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1141 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1144 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1145 On ne peut utiliser cette directive que si ce module
1146 effectue une authentification, et n'a aucun effet si ce module
1147 n'est utilisé que pour les processus d'autorisation.
1152 <li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
1153 <li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
1154 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1155 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1158 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1159 <div class="directive-section"><h2><a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a> <a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a></h2>
1160 <table class="directive">
1161 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la modification a apporter au nom d'utilisateur
1162 pour l'authentification de base lors de l'authentification auprès du
1163 serveur LDAP pour effectuer une recherche de DN</td></tr>
1164 <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>
1165 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
1166 distant utilisé tel quel)</code></td></tr>
1167 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1168 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1169 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1170 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1171 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1173 <p>Si la directive <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> est
1174 définie à <em>ON</em>, le nom utilisateur pour l'authentification de
1175 base sera transformé selon l'expression rationnelle
1176 <var>regex</var> et l'argument <var>substitution</var> spécifiés.</p>
1178 <p>L'expression rationnelle est comparée au nom d'utilisateur pour
1179 l'authentification de base courant. L'argument
1180 <var>substitution</var> peut contenir des références arrières, mais
1181 n'effectue aucune autre interpolation de variable.</p>
1183 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1184 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1185 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1188 <pre class="prettyprint lang-config"> AuthLDAPInitialBindPattern (.+) $1@example.com </pre>
1190 <pre class="prettyprint lang-config"> AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
1193 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1194 On ne peut utiliser cette directive que si ce module
1195 effectue une authentification, et n'a aucun effet si ce module
1196 n'est utilisé que pour les processus d'autorisation.
1198 <div class="note"><h3>Débogage</h3>
1199 Le DN de substitution est enregistré dans la variable
1200 d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
1201 rationnelle ne convient pas, le nom d'utilisateur est utilisé
1207 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1208 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapbinddn">AuthLDAPBindDN</a></code></li>
1211 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1212 <div class="directive-section"><h2><a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a> <a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a></h2>
1213 <table class="directive">
1214 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la profondeur d'imbrication des sous-groupes
1215 maximale prise en compte avant l'abandon de la recherche de
1216 l'utilisateur.</td></tr>
1217 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Nombre</var></code></td></tr>
1218 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
1219 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1220 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1221 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1222 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1223 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
1226 <p>Lorsque cette directive est définie à une valeur <code>X</code>
1227 non nulle, en combinaison avec l'utilisation de la directive
1228 <code>Require ldap-group DN-groupe</code>, les données de connexion
1229 fournies seront utilisées pour vérifier l'appartenance de
1230 l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
1231 tout sous-groupe du groupe courant en tenant compte de la profondeur
1232 d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
1233 <p>Se référer à la section <a href="#reqgroup"><code>Require
1234 ldap-group</code></a> pour un exemple plus détaillé.</p>
1237 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1238 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a> <a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a></h2>
1239 <table class="directive">
1240 <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
1241 requête de l'utilisateur sera utilisée pour définir la variable
1242 d'environnement REMOTE_USER</td></tr>
1243 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
1244 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
1245 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1246 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1247 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1248 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1250 <p>Lorsque cette directive est définie, la variable d'environnement
1251 <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
1252 spécifié. Assurez-vous que cet attribut soit bien inclus dans la
1253 liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
1254 le cas contraire, cette directive n'aurait aucun effet. Si elle est
1255 présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
1256 peut s'avérer utile par exemple, si vous souhaitez que les
1257 utilisateurs se connectent à un site web en utilisant leur adresse
1258 email, alors qu'une application sous-jacente nécessite un nom
1259 d'utilisateur comme identifiant.</p>
1262 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1263 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a> <a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a></h2>
1264 <table class="directive">
1265 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
1266 d'environnement REMOTE_USER</td></tr>
1267 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
1268 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
1269 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1270 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1271 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1272 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1274 <p>Lorsque cette directive est à on, la variable d'environnement
1275 <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
1276 de l'utilisateur authentifié, et non plus avec simplement le nom
1277 d'utilisateur fourni par le client. Elle est définie à off par
1281 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1282 <div class="directive-section"><h2><a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a> <a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a></h2>
1283 <table class="directive">
1284 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise les données d'authentification de l'utilisateur
1285 pour la recherche des autorisations</td></tr>
1286 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
1287 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
1288 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1289 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1290 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1291 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1292 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1294 <p>Lorsque cette directive est définie, et si
1295 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
1296 recherches LDAP pour définir les autorisations utilisent le nom
1297 distinctif (DN) trouvé et le mot de passe pour l'authentification de
1298 base HTTP de l'utilisateur authentifié, au lieu des données
1299 d'authentification configurées au niveau du serveur.</p>
1301 <p>Les vérifications d'autorisation <em>ldap-filter</em> et
1302 <em>ldap-dn</em> utilisent des recherches.</p>
1304 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
1305 cours des traitements de groupe imbriqués, et lorsque la directive
1306 <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
1307 est aussi activée.</p>
1309 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1310 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1311 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1317 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1318 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1321 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1322 <div class="directive-section"><h2><a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a> <a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a></h2>
1323 <table class="directive">
1324 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie les noms d'attribut, un par directive, utilisés
1325 pour différencier les membres du groupe courant qui sont eux-mêmes des
1327 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribut</em></code></td></tr>
1328 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
1329 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1330 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1331 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1332 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1333 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
1336 <p>Un objet groupe LDAP peut contenir des membres qui sont des
1337 utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
1338 sous-groupes ou groupes imbriqués). La directive
1339 <code>AuthLDAPSubGroupAttribute</code> spécifie l'attribut utilisé
1340 pour identifier les groupes, alors que la directive
1341 <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
1342 pour identifier les utilisateurs. On peut spécifier plusieurs
1343 attributs en répétant la directive plusieurs fois. Si elle n'est pas
1344 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1345 <code>member</code> et <code>uniqueMember</code>.</p>
1348 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1349 <div class="directive-section"><h2><a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a> <a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a></h2>
1350 <table class="directive">
1351 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie quelles valeurs d'objectClass LDAP identifient les
1352 objets de l'annuaire qui sont des groupes au cours du traitement des
1353 sous-groupes.</td></tr>
1354 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></code></td></tr>
1355 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
1356 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1357 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1358 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1359 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1360 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
1363 <p>Un objet groupe LDAP peut contenir des membres qui sont des
1364 utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
1365 sous-groupes ou groupes imbriqués). La directive
1366 <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
1367 membres qui sont des sous-groupes du groupe courant (à l'opposé des
1368 membres utilisateurs). La directive
1369 <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
1370 d'objectClass LDAP utilisées pour vérifier que certains membres sont
1371 en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
1372 alors faire l'objet d'une recherche d'autres membres utilisateurs ou
1373 sous-groupes. On peut spécifier plusieurs attributs en répétant
1374 cette directive plusieurs fois. Si cette directive n'est pas
1375 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1376 <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
1379 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1380 <div class="directive-section"><h2><a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a> <a name="authldapurl" id="authldapurl">Directive</a></h2>
1381 <table class="directive">
1382 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
1383 recherche LDAP</td></tr>
1384 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
1385 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1386 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1387 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1388 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1390 <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
1391 paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
1392 syntaxe de l'URL est :</p>
1393 <div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
1394 <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
1395 LDAP, la syntaxe sera :</p>
1396 <pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
1398 <p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
1399 serveurs, vous devez en entourer la liste avec des guillemets ; dans le
1400 cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
1401 argument, URL to define LDAP connection..".</em> Vous pouvez bien
1402 entendu ajouter des paramètres de recherche à chacun des serveurs
1408 <dd>Pour ldap non sécurisé, utilisez la chaîne
1409 <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
1410 chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
1411 Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
1416 <p>Il s'agit du nom/port du serveur ldap
1417 (dont la valeur par défaut est
1418 <code>localhost:389</code> pour <code>ldap</code>, et
1419 <code>localhost:636</code> pour <code>ldaps</code>). Pour
1420 spécifier plusieurs serveurs LDAP redondants, indiquez
1421 simplement leur liste en les séparant par des espaces.
1422 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
1423 à chacun des serveurs jusqu'à ce qu'il parvienne à se
1424 connecter avec succès. Notez qu'en cas de multiples serveurs
1425 LDAP, l'ensemble de l'URL LDAP doit être entourée de
1428 <p>lorsqu'une connection a été établie avec un serveur, elle
1429 reste active pendant toute la durée de vie du processus
1430 <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
1431 cesse de fonctionner.</p>
1433 <p>Si le serveur LDAP cesse de fonctionner, et ainsi
1435 connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
1436 de se reconnecter en commençant par le premier serveur de la
1437 liste, et ainsi de suite avec les serveurs redondants
1438 suivants. Notez que ce processus n'a rien à voir avec une
1439 véritable recherche de type round-robin.</p>
1443 <dd>Le DN de la branche de l'annuaire à partir de laquelle
1444 toutes les recherches seront lancées. Il doit au moins
1445 correspondre à la racine de votre annuaire, mais vous pouvez
1446 aussi indiquer une branche plus spécifique.</dd>
1450 <dd>Il s'agit de l'attribut à utiliser pour la recherche.
1452 2255 autorise une liste d'attributs séparés par des virgules,
1453 seul le premier sera retenu, sans tenir compte des autres
1454 attributs fournis. Si aucun attribut n'est fourni, l'attribut
1455 par défaut est <code>uid</code>. Il est judicieux de choisir un
1456 attribut dont la valeur sera unique parmi toutes les entrées de
1457 la branche de l'annuaire que vous aurez définie. Tous les
1458 attributs spécifiés seront enregistrés dans des variables
1459 d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
1460 être utilisés par d'autres modules.</dd>
1464 <dd>Il s'agit de la portée de la recherche. Elle peut prendre
1465 les valeurs <code>one</code> ou <code>sub</code>. Notez que la
1466 RFC 2255 supporte aussi une portée de valeur <code>base</code>,
1467 mais cette dernière n'est pas supportée par le module. Si la
1468 portée n'est pas définie, ou si elle est définie à
1469 <code>base</code>, c'est la valeur de portée par défaut
1470 <code>sub</code> qui sera utilisée.</dd>
1474 <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
1475 filtre n'est spécifié, le filtre par défaut
1476 <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
1477 une recherche de tous les types d'objets de l'arborescence. La
1478 taille des filtres est limitée à environ 8000 caractères (valeur
1479 de la macro <code>MAX_STRING_LEN</code> dans le code source
1480 d'Apache), ce qui s'avère plus que suffisant pour la plupart des
1484 <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
1485 fournis par le client HTTP sont combinés pour créer un filtre de
1486 recherche du style :
1487 <code>(&(<em>filtre</em>)(<em>attribut</em>
1488 =<em>nom-utilisateur</em>))</code>.</p>
1490 <p>Par exemple, considérons l'URL
1491 <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
1492 Lorsqu'un client tentera de se connecter en utilisant le nom
1493 d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
1494 : <code>(&(posixid=*)(cn=Babs Jenson))</code>.</p>
1496 <p>On peut encore ajouter un paramètre optionnel pour permettre à
1497 l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
1498 prendre l'une des valeurs suivantes :</p>
1502 <dd>Établit une connexion non sécurisée sur le port LDAP par
1503 défaut, ce qui est équivalent à <code>ldap://</code> sur le port
1506 <dd>Établit une connexion sécurisée sur le port LDAP sécurisé
1507 par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
1508 <dt>TLS | STARTTLS</dt>
1509 <dd>Établit une connexion sécurisée par élévation de niveau sur
1510 le port LDAP par défaut. Cette connexion sera initialisée sur le
1511 port 389 par défaut, puis élevée à un niveau de connexion
1512 sécurisée sur le même port.</dd>
1515 <p>Voir plus haut pour des exemples d'URLs définies par la directive
1516 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
1520 <div class="bottomlang">
1521 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> |
1522 <a href="../fr/mod/mod_authnz_ldap.html" title="Français"> fr </a></p>
1523 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
1524 <script type="text/javascript"><!--//--><![CDATA[//><!--
1525 var comments_shortname = 'httpd';
1526 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_authnz_ldap.html';
1528 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
1529 d.write('<div id="comments_thread"><\/div>');
1530 var s = d.createElement('script');
1531 s.type = 'text/javascript';
1533 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
1534 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
1537 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
1539 })(window, document);
1540 //--><!]]></script></div><div id="footer">
1541 <p class="apache">Copyright 2013 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
1542 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
1543 if (typeof(prettyPrint) !== 'undefined') {