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.4</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.4</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>
35 <tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Dosponible depuis les versions 2.1 et supérieures
36 d'Apache</td></tr></table>
39 <p>Ce module permet aux frontaux d'authentification comme
40 <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> d'authentifier les utilisateurs via
43 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> supporte les fonctionnalités
47 <li>Support vérifié du <a href="http://www.openldap.org/">OpenLDAP SDK</a> (versions 1.x et
48 2.x), du <a href="http://developer.novell.com/ndk/cldap.htm">
49 Novell LDAP SDK</a> et du SDK <a href="http://www.iplanet.com/downloads/developer/">iPlanet
52 <li>Implémentation de politiques d'autorisation complexes en les
53 définissant via des filtres LDAP.</li>
55 <li>Mise en oeuvre d'une mise en cache des opérations LDAP
56 élaborée via <a href="mod_ldap.html">mod_ldap</a>.</li>
58 <li>Support de LDAP via SSL (nécessite le SDK Netscape) ou TLS
59 (nécessite le SDK OpenLDAP 2.x ou le SDK LDAP Novell).</li>
62 <p>Lorsqu'on utilise <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, ce module est
63 invoqué en affectant la valeur <code>ldap</code> à la directive
64 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
66 <div id="quickview"><h3 class="directives">Directives</h3>
68 <li><img alt="" src="../images/down.gif" /> <a href="#authldapauthorizeprefix">AuthLDAPAuthorizePrefix</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></li>
70 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbinddn">AuthLDAPBindDN</a></li>
71 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindpassword">AuthLDAPBindPassword</a></li>
72 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcharsetconfig">AuthLDAPCharsetConfig</a></li>
73 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></li>
74 <li><img alt="" src="../images/down.gif" /> <a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></li>
75 <li><img alt="" src="../images/down.gif" /> <a href="#authldapdereferencealiases">AuthLDAPDereferenceAliases</a></li>
76 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></li>
77 <li><img alt="" src="../images/down.gif" /> <a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></li>
78 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></li>
79 <li><img alt="" src="../images/down.gif" /> <a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></li>
80 <li><img alt="" src="../images/down.gif" /> <a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserattribute">AuthLDAPRemoteUserAttribute</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></li>
84 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></li>
85 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></li>
86 <li><img alt="" src="../images/down.gif" /> <a href="#authldapurl">AuthLDAPUrl</a></li>
90 <li><img alt="" src="../images/down.gif" /> <a href="#contents">Sommaire</a></li>
91 <li><img alt="" src="../images/down.gif" /> <a href="#operation">Mode opératoire</a></li>
92 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives requises</a></li>
93 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
94 <li><img alt="" src="../images/down.gif" /> <a href="#usingtls">Utilisation de TLS</a></li>
95 <li><img alt="" src="../images/down.gif" /> <a href="#usingssl">Utilisation de SSL</a></li>
96 <li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de
98 <li><img alt="" src="../images/down.gif" /> <a href="#activedirectory">Utilisation d'Active
100 <li><img alt="" src="../images/down.gif" /> <a href="#frontpage">Utilisation de Microsoft
101 FrontPage avec mod_authnz_ldap</a></li>
102 </ul><h3>Voir aussi</h3>
104 <li><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></li>
105 <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
106 <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
107 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
108 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
109 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
110 <div class="section">
111 <h2><a name="contents" id="contents">Sommaire</a></h2>
115 <a href="#operation">Mode opératoire</a>
118 <li><a href="#authenphase">La phase
119 d'authentification</a></li>
121 <li><a href="#authorphase">La phase d'autorisation</a></li>
126 <a href="#requiredirectives">Les directives requises</a>
129 <li><a href="#requser">Require ldap-user</a></li>
130 <li><a href="#reqgroup">Require ldap-group</a></li>
131 <li><a href="#reqdn">Require ldap-dn</a></li>
132 <li><a href="#reqattribute">Require ldap-attribute</a></li>
133 <li><a href="#reqfilter">Require ldap-filter</a></li>
137 <li><a href="#examples">Exemples</a></li>
138 <li><a href="#usingtls">Utilisation de TLS</a></li>
139 <li><a href="#usingssl">Utilisation de SSL</a></li>
140 <li><a href="#exposed">Mise à disposition des informations de
142 <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
144 <a href="#frontpage">Utilisation de Microsoft FrontPage avec
145 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
148 <li><a href="#howitworks">Comment ça marche</a></li>
149 <li><a href="#fpcaveats">Mises en garde</a></li>
153 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
154 <div class="section">
155 <h2><a name="operation" id="operation">Mode opératoire</a></h2>
157 <p>L'utilisateur se voit accorder l'accès selon un processus en deux
158 phases. La première phase est l'authentification, au cours de
159 laquelle le fournisseur d'authentification
160 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> vérifie que les informations de
161 connexion de l'utilisateur sont valides. Elle est aussi connue sous
162 le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
163 dans le code source : <em>search/bind</em>). La deuxième
164 phase est l'autorisation, au cours de laquelle
165 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> détermine si l'utilisateur
166 authentifié a la permission d'accéder à la ressource considérée.
167 Elle est aussi connue sous le nom de phase de
168 <em>comparaison</em> (<em>compare</em>).</p>
170 <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> comporte un fournisseur
171 d'authentification authn_ldap et un gestionnaire d'autorisation
172 authz_ldap. Le fournisseur d'authentification authn_ldap peut être
173 invoqué en affectant la valeur <code>ldap</code> à la directive
174 <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Le
175 gestionnaire d'autorisation authz_ldap enrichit la liste des types
176 d'autorisations de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en y ajoutant les
177 valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
178 <code>ldap-group</code>.</p>
180 <h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
182 <p>Au cours de la phase d'authentification,
183 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> recherche une entrée de l'annuaire
184 LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
185 Si une correspondance unique est trouvée,
186 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de se connecter au serveur
187 hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
188 de passe fourni par le client HTTP. Comme ce processus effectue tout
189 d'abord une recherche, puis une connexion, il est aussi connu sous
190 le nom de phase de recherche/connexion. Voici le détail des étapes
191 constituant la phase de recherche/connexion :</p>
194 <li>Confection d'un filtre de recherche en combinant les attribut
195 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
196 passe fournis par le client HTTP.</li>
198 <li>Recherche dans l'annuaire LDAP en utilisant le filtre
199 confectionné précédemment. Si le résultat de la recherche est
200 négatif ou comporte plusieurs entrées, refus ou restriction de
203 <li>Extraction du DN (distinguished name) de l'entrée issue du
204 résultat de la recherche, et tentative de connexion au serveur
205 LDAP en utilisant ce DN et le mot de passe fournis par le client
206 HTTP. Si la connexion échoue, refus ou restriction de
210 <p>Les directives utilisées durant la phase de recherche/connexion
211 sont les suivantes :</p>
216 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
218 <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
219 utiliser pour la recherche, ainsi que les filtres de recherche
220 supplémentaires.</td>
224 <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
226 <td>Un DN optionnel pour se connecter durant la phase de
231 <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
233 <td>Un mot de passe optionnel pour se connecter durant la phase
239 <h3><a name="authorphase" id="authorphase">La phase d'autorisation</a></h3>
241 <p>Au cours de la phase d'autorisation,
242 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de déterminer si
243 l'utilisateur est autorisé à accéder à la ressource considérée. Une
244 grande partie de cette vérification consiste pour
245 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> en des opérations de comparaison au
246 niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
247 sous le nom de phase de comparaison.
248 <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
249 déterminer si les informations de connexion permettent d'accorder
250 l'accès à l'utilisateur :</p>
253 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-user</code></a>,
254 l'autorisation d'accès est accordée si le nom d'utilisateur
255 spécifié par la directive correspond au nom d'utilisateur fourni
258 <li>Avec la directive <a href="#reqdn"><code>Require
259 ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
260 spécifié par la directive correspond au DN extrait du résultat de
261 la recherche dans l'annuaire LDAP.</li>
263 <li>Avec la directive <a href="#reqgroup"><code>Require ldap-group</code></a>,
264 l'autorisation d'accès est accordée si le DN extrait du résultat de
265 la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
266 par le client) appartient au groupe LDAP spécifié par la
267 directive, ou éventuellement à un de ses sous-groupes.</li>
269 <li>Avec la directive <a href="#reqattribute">
270 <code>Require ldap-attribute</code></a>, l'autorisation d'accès
271 est accordée si la valeur de l'attribut extraite de la recherche
272 dans l'annuaire LDAP correspond à la valeur spécifiée par la
275 <li>Avec la directive <a href="#reqfilter">
276 <code>Require ldap-filter</code></a>, l'autorisation d'accès
277 est accordée si le filtre de recherche renvoie un objet
278 utilisateur unique qui corresponde au DN de l'utilisateur
281 <li>dans tous les autres cas, refus ou restriction de
285 <p>Sous réserve du chargement de modules d'autorisation
286 supplémentaires, d'autres valeurs de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> peuvent être
290 <li>L'accès est accordé à tous les utilisateurs authentifiés si
291 une directive <a href="#requser"><code>Require
292 valid-user</code></a> est présente (nécessite le module
293 <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>).</li>
295 <li>Avec la directive <a href="#reqgroup"><code>Require group</code></a>, l'autorisation
296 d'accès est accordée si le module
297 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> a été chargé et si la
298 directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> a été
305 <p>Durant la phase de comparaison, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
306 utilise les directives suivantes :</p>
311 <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
314 <td>On utilise l'attribut spécifié dans l'URL pour les
315 opérations de comparaison initiées par la directive
316 <code>Require ldap-user</code>.</td>
320 <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
322 <td>Détermine le comportement de la directive <code>Require
327 <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
329 <td>Détermine l'attribut utilisé pour les opérations de
330 comparaison initiées par la directive <code>Require
331 ldap-group</code>.</td>
335 <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
337 <td>Spécifie si l'on doit utiliser le DN ou le nom de
338 l'utilisateur lors des opérations de comparaison initiées par la
339 directive <code>Require ldap-group</code>.</td>
343 <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
345 <td>Détermine la profondeur maximale de l'arborescence des
346 sous-groupes qui seront évalués au cours des opérations de
347 comparaisons initiées par la directive <code>Require
348 ldap-group</code>.</td>
352 <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
354 <td>Détermine l'attribut à utiliser lors de l'extraction de
355 membres de sous-groupes du groupe courant au cours des
356 opérations de comparaison initiées par la directive
357 <code>Require ldap-group</code>.</td>
361 <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
363 <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
364 déterminer si les objets extraits de l'annuaire sont bien des
365 objets de type groupe (et non des objets de type utilisateur),
366 au cours du traitement des sous-groupes initié par la directive
367 <code>Require ldap-group</code>.</td>
371 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
372 <div class="section">
373 <h2><a name="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
375 <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache sont utilisées
376 au cours de la phase d'autorisation afin de s'assurer que
377 l'utilisateur est autorisé à accéder à une ressource.
378 mod_authnz_ldap enrichit la liste des types d'autorisations avec les
379 valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
380 <code>ldap-group</code>, <code>ldap-attribute</code> et
381 <code>ldap-filter</code>. D'autres types d'autorisations sont
382 disponibles, sous réserve du chargement de modules d'autorisation
385 <h3><a name="requser" id="requser">Require ldap-user</a></h3>
387 <p>La directive <code>Require ldap-user</code> permet de spécifier
388 les noms des utilisateurs autorisés à accéder à la ressource.
389 Lorsque <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a extrait un DN unique de
390 l'annuaire LDAP, il effectue une opération de comparaison LDAP en
391 utilisant le nom d'utilisateur spécifié par la directive
392 <code>Require ldap-user</code>, pour vérifier si ce nom
393 d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
394 l'accès à plusieurs utilisateurs en plaçant plusieurs nom
395 d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
396 d'utilisateur contient des espaces, il doit être entouré de
397 guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
398 en utilisant une directive <code>Require ldap-user</code> par
399 utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
400 <code>ldap://ldap/o=Example?cn</code> (spécifiant donc que l'attribut
401 <code>cn</code> sera utilisé pour les recherches), on pourra
402 utiliser les directives Require suivantes pour restreindre l'accès
404 <pre class="prettyprint lang-config">
405 Require ldap-user "Barbara Jenson"
406 Require ldap-user "Fred User"
407 Require ldap-user "Joe Manager"
411 <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
412 cette directive, Barbara Jenson peut s'authentifier comme
413 <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
414 <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
415 LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
416 toutes les valeurs de l'attribut dans l'entrée LDAP de
419 <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
420 l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
421 ci-dessus auraient pû être condensées en une seule ligne :</p>
422 <pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
426 <h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
428 <p>Cette directive permet de spécifier un groupe LDAP dont les
429 membres auront l'autorisation d'accès. Elle prend comme argument le
430 DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
431 guillemets. Par exemple, supposons que l'entrée suivante existe dans
432 l'annuaire LDAP :</p>
433 <div class="example"><pre>
434 dn: cn=Administrators, o=Example
435 objectClass: groupOfUniqueNames
436 uniqueMember: cn=Barbara Jenson, o=Example
437 uniqueMember: cn=Fred User, o=Example
440 <p>La directive suivante autoriserait alors l'accès à Fred et
442 <pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
445 <p>Les membres peuvent aussi se trouver dans les sous-groupes du
446 groupe LDAP spécifié si la directive <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code> a été
447 définie à une valeur supérieure à 0. Par exemple, supposons que les
448 entrées suivantes existent dans l'annuaire LDAP :</p>
449 <div class="example"><pre>
450 dn: cn=Employees, o=Example
451 objectClass: groupOfUniqueNames
452 uniqueMember: cn=Managers, o=Example
453 uniqueMember: cn=Administrators, o=Example
454 uniqueMember: cn=Users, o=Example
456 dn: cn=Managers, o=Example
457 objectClass: groupOfUniqueNames
458 uniqueMember: cn=Bob Ellis, o=Example
459 uniqueMember: cn=Tom Jackson, o=Example
461 dn: cn=Administrators, o=Example
462 objectClass: groupOfUniqueNames
463 uniqueMember: cn=Barbara Jenson, o=Example
464 uniqueMember: cn=Fred User, o=Example
466 dn: cn=Users, o=Example
467 objectClass: groupOfUniqueNames
468 uniqueMember: cn=Allan Jefferson, o=Example
469 uniqueMember: cn=Paul Tilley, o=Example
470 uniqueMember: cn=Temporary Employees, o=Example
472 dn: cn=Temporary Employees, o=Example
473 objectClass: groupOfUniqueNames
474 uniqueMember: cn=Jim Swenson, o=Example
475 uniqueMember: cn=Elliot Rhodes, o=Example
478 <p>Les directives suivantes autoriseraient alors l'accès à Bob
479 Ellis, Tom Jackson, Barbara Jensen, Fred User, Allan Jefferson, et
480 Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
481 (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
483 <pre class="prettyprint lang-config">
484 Require ldap-group cn=Employees, o-Example
485 AuthLDAPMaxSubGroupDepth 1
489 <p>Le comportement de cette directive est modifié par les directives
490 <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>,
491 <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>,
492 <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>,
493 <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, et
494 <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>.</p>
497 <h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
499 <p>La directive <code>Require ldap-dn</code> permet à
500 l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
501 Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
503 l'annuaire correspond au DN spécifié par la directive <code>Require
504 ldap-dn</code>, l'autorisation d'accès est accordée. Note :
505 n'entourez pas Le DN de guillemets.</p>
507 <p>La directive suivante accorderait l'accès à un DN spécifique
509 <pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
512 <p>Le comportement ce cette directive est modifié par la directive
513 <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
516 <h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
518 <p>La directive <code>Require ldap-attribute</code> permet à
519 l'administrateur d'accorder l'autorisation d'accès en fonction des
520 attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
521 valeur de l'attribut dans l'annuaire correspond à la valeur
522 spécifiée par la directive, l'autorisation d'accès est accordée.</p>
524 <p>La directive suivante accorderait l'autorisation d'accès à tout
525 utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
527 <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
530 <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
531 même directive en les séparant par des espaces, ou en définissant
532 plusieurs directives <code>Require ldap-attribute</code>. La logique
533 sous-jacente à une liste de paires attribut/valeur est une opération
534 OU. L'autorisation d'accès sera accordée si au moins une paire
535 attribut/valeur de la liste spécifiée correspond à la paire
536 attribut/valeur de l'utilisateur authentifié. Si elle contient des
537 espaces, la valeur, et seulement la valeur, doit être entourée de
540 <p>La directive suivante accorderait l'autorisation d'accès à tout
541 utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
542 donc l'attribut status aurait pour valeur "actif" :</p>
544 <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
549 <h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
551 <p>La directive <code>Require ldap-filter</code> permet à
552 l'administrateur d'accorder l'autorisation d'accès en fonction d'un
553 filtre de recherche LDAP complexe. L'autorisation d'accès est
554 accordée si le DN renvoyé par le filtre de recherche correspond au
555 DN de l'utilisateur authentifié.</p>
557 <p>La directive suivante accorderait l'autorisation d'accès à tout
558 utilisateur possédant un téléphone cellulaire et faisant partie du
559 département "marketing" :</p>
561 <pre class="prettyprint lang-config">Require ldap-filter &(cell=*)(department=marketing)</pre>
564 <p>Alors que la directive <code>Require ldap-attribute</code> se
565 contente d'une simple comparaison d'attributs, la directive
566 <code>Require ldap-filter</code> effectue une opération de recherche
567 dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
568 Si une simple comparaison d'attributs suffit, l'opération de
569 comparaison effectuée par <code>ldap-attribute</code> sera plus
570 rapide que l'opération de recherche effectuée par
571 <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
572 LDAP de grande taille.</p>
576 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
577 <div class="section">
578 <h2><a name="examples" id="examples">Exemples</a></h2>
582 Accorde l'autorisation d'accès à tout utilisateur présent dans
583 l'annuaire LDAP, en utilisant son UID pour effectuer la
585 <pre class="prettyprint lang-config">
586 AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
593 L'exemple suivant est similaire au précédent, mais les champs
594 dont les valeurs par défaut conviennent sont omis. Notez aussi
595 la présence d'un annuaire LDAP redondant :
596 <pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
603 Encore un exemple similaire aux précédents, mais cette fois,
604 c'est l'attribut cn qui est utilisé pour la recherche à la place
605 de l'UID. Notez que ceci peut poser problème si plusieurs
606 utilisateurs de l'annuaire partagent le même <code>cn</code>,
607 car une recherche sur le <code>cn</code> <strong>doit</strong>
608 retourner une entrée et une seule. C'est pourquoi cette
609 approche n'est pas recommandée : il est préférable de choisir un
610 attribut de votre annuaire dont l'unicité soit garantie, comme
612 <pre class="prettyprint lang-config">
613 AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
620 Accorde l'autorisation d'accès à tout utilisateur appartenant au
621 groupe Administrateurs. Les utilisateurs doivent s'authentifier
622 en utilisant leur UID :
623 <pre class="prettyprint lang-config">
624 AuthLDAPURL ldap://ldap.example.com/o=Example?uid
625 Require ldap-group cn=Administrators, o=Example
631 Pour l'exemple suivant, on suppose que tout utilisateur de chez
632 Example qui dispose d'un bippeur alphanumérique possèdera un
633 attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
634 (authentifiés via leur UID) se verront accorder l'autorisation
636 <pre class="prettyprint lang-config">
637 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
644 <p>L'exemple suivant illustre la puissance des filtres pour
645 effectuer des requêtes complexes. Sans les filtres, il aurait
646 été nécessaire de créer un nouveau groupe LDAP et de s'assurer
647 de la synchronisation des membres du groupe avec les
648 utilisateurs possédant un bippeur. Tout devient limpide avec les
649 filtres. Nous avons pour but d'accorder l'autorisation d'accès à
650 tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
651 qui ne possède pas de bippeur, mais doit tout de même pouvoir
652 accéder à la ressource :</p>
653 <pre class="prettyprint lang-config">
654 AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
659 <p>Ce dernier exemple peut sembler confus au premier abord ; en
660 fait, il permet de mieux comprendre à quoi doit ressembler le
661 filtre en fonction de l'utilisateur qui se connecte. Si Fred
662 User se connecte en tant que <code>fuser</code>, le filtre devra
665 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
667 <p>Un recherche avec le filtre ci-dessus ne retournera un
668 résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
669 Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
670 devra ressembler à :</p>
672 <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
674 <p>Un recherche avec le filtre ci-dessus retournera un
675 résultat positif que <em>jmanager</em> dispose d'un
679 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
680 <div class="section">
681 <h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
683 <p>Pour l'utilisation de TLS, voir les directives du module
684 <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>
686 <p>Un second paramètre optionnel peut être ajouté à la directive
687 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
688 remplacer le type de connexion par défaut défini par la directive
689 <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
690 permettra de promouvoir la connexion établie via une URL du type
691 <em>ldap://</em> au statut de connection sécurisée sur le même
693 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
694 <div class="section">
695 <h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
697 <p>Pour l'utilisation de SSL, voir les directives du module
698 <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>
700 <p>Pour spécifier un serveur LDAP sécurisé, utilisez
701 <em>ldaps://</em> au lieu de
702 <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
703 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
704 <div class="section">
705 <h2><a name="exposed" id="exposed">Mise à disposition des informations de
708 <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
709 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
710 dans des variables d'environnement préfixées par la chaîne
713 <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
714 spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
715 dans des variables d'environnement préfixées par la chaîne
718 <p>Si les champs attribut contiennent le nom, le CN et le numéro de
719 téléphone d'un utilisateur, un programme CGI pourra accéder à ces
720 informations sans devoir effectuer une autre requête LDAP pour
721 les extraire de l'annuaire.</p>
723 <p>Ceci a pour effet de simplifier considérablement le code et la
724 configuration nécessaire de certaines applications web.</p>
726 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
727 <div class="section">
728 <h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
731 <p>Active Directory peut supporter plusieurs domaines à la fois.
732 Pour faire la distinction entre les utilisateurs de plusieurs
733 domaines, on peut ajouter à l'entrée de l'utilisateur dans
734 l'annuaire un identifiant appelé Nom
735 Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
736 compose en général du nom de compte de l'utilisateur, suivi du nom
737 du domaine considéré, par exemple <em>untel@nz.example.com</em>.</p>
739 <p>Vous voudrez probablement configurer le module
740 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> afin de pouvoir authentifier les
741 utilisateurs de n'importe quel domaine de la forêt Active Directory.
742 Ainsi, <em>untel@nz.example.com</em> et
743 <em>untel@au.example.com</em> pourront être authentifiés en une
744 seule fois par la même requête.</p>
746 <p>Pour y parvenir, on utilise le concept de Catalogue Global
747 d'Active Directory. Ce Catalogue Global est une copie en lecture
748 seule des attributs sélectionnés de tous les serveurs de la forêt
749 Active Directory. Une requête vers le
750 Catalogue Global permet donc d'atteindre tous les domaines en une
751 seule fois, sans avoir à se connecter aux différents serveurs, via
752 des liaisons dont certaines peuvent être lentes.</p>
754 <p>Lorsqu'il est activé, la Catalogue Global est un serveur
755 d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
756 Pour rechercher un utilisateur, effectuez une recherche sur
757 l'attribut <em>userPrincipalName</em>, avec une base de recherche
758 vide, comme suit :</p>
760 <pre class="prettyprint lang-config">
761 AuthLDAPBindDN apache@example.com
762 AuthLDAPBindPassword password
763 AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
767 <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
768 la forme<em>untel@nz.example.com</em>.</p>
770 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
771 <div class="section">
772 <h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
773 FrontPage avec mod_authnz_ldap</a></h2>
775 <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
776 spécifiques à FrontPage-web (c'est à dire les modules
777 <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
778 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
779 l'authentification. Malheureusement, il ne suffit pas de modifier
780 l'authentification LDAP en ajoutant les directives appropriées, car
781 ceci corromprait les formulaires de <em>Permissions</em> dans le
782 client FrontPage, qui sont censés modifier les fichiers
783 d'autorisation standards au format texte.</p>
785 <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
786 l'authentification LDAP consiste à ajouter les directives suivantes
787 à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
789 <pre class="prettyprint lang-config">
790 AuthLDAPURL "the url"
791 AuthGroupFile mygroupfile
792 Require group mygroupfile
796 <h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
798 <p>FrontPage restreint l'accès à un site web en ajoutant la
799 directive <code>Require valid-user</code> aux fichiers
800 <code>.htaccess</code>. La directive <code>Require valid-user</code>
801 permettra l'accès à tout utilisateur valide <em>du point de vue
802 LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
803 dans l'annuaire LDAP sera considéré comme valide, alors que
804 FrontPage ne considère comme valides que les utilisateurs
805 enregistrés dans le fichier des utilisateurs local. En remplaçant
806 l'autorisation par groupe LDAP par une autorisation par fichier de
807 groupe, Apache sera en mesure de consulter le fichier des
808 utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
809 - lors du processus d'autorisation des utilisateurs.</p>
811 <p>Une fois les directives ajoutées selon ce qui précède, les
812 utilisateurs FrontPage pourront effectuer toutes les opérations de
813 gestion à partir du client FrontPage.</p>
816 <h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
819 <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
820 l'authentification doit aussi être valide pour le fichier des
821 utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
822 l'UID est idéal.</li>
824 <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
825 administrateurs de FrontPage doivent choisir des noms
826 d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
827 raisons évidentes). De même, le mot de passe que l'administrateur
828 entre dans le formulaire est ignoré, car pour l'authentification,
829 Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
830 de passe enregistré dans le fichier des utilisateurs, ce qui peut
831 semer la confusion parmi les administrateurs web.</li>
834 <li>Pour supporter FrontPage, Apache doit être compilé avec
835 <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>
836 et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
837 qu'Apache doit utiliser le fichier de groupes de
838 <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
839 d'accès d'un utilisateur au site web FrontPage.</li>
841 <li>Les directives doivent être placées dans les fichiers
842 <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
843 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
844 où se trouve la liste des utilisateurs valides,
845 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
846 la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
847 dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
848 de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
849 même fichier <code>.htaccess</code> que les directives FrontPage,
850 la configuration ne fonctionnera pas, car
851 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
852 traiter le fichier <code>.htaccess</code>, et par conséquent ne
853 pourra jamais trouver le fichier des utilisateurs géré par
858 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
859 <div class="directive-section"><h2><a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a> <a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a></h2>
860 <table class="directive">
861 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le préfixe ajouté aux variables d'environnement
862 durant la phase d'autorisation</td></tr>
863 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPAuthorizePrefix <em>préfixe</em></code></td></tr>
864 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
865 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
866 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
867 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
868 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
869 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
871 <p>Cette directive permet de spécifier le préfixe ajouté aux
872 variables d'environnement durant la phase d'autorisation. Si la
873 valeur spécifiée est <em>AUTHENTICATE_</em>, les utilisateurs de ces
874 variables d'environnement verront les mêmes informations, que le
875 serveur effectue une authentification, une autorisation, ou les
878 <div class="note"><h3>Note</h3>
879 Aucune variable d'autorisation n'est définie lorsqu'un utilisateur
880 s'est vu autoriser l'accès via la directive <code>Require
885 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
886 <div class="directive-section"><h2><a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a> <a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a></h2>
887 <table class="directive">
888 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'on doit utiliser d'autres fournisseurs
889 d'authentification lorsque le serveur ne peut pas valider les données
890 d'authentification de l'utilisateur, alors que ce dernier possède un
892 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
893 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
894 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
895 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
896 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
897 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
899 <p>Par défaut, des fournisseurs d'authentification sont appelés
900 si un utilisateur ne possède pas de DN, mais ne le sont pas si
901 l'utilisateur possède un DN et si son mot de passe ne peut pas être
902 vérifié lors d'une connexion au serveur LDAP. Si la directive
903 <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
904 définie à <em>off</em>, d'autres modules d'authentification
905 configurés auront une chance de valider le mot de passe de
906 l'utilisateur si la tentative de connexion au serveur LDAP échoue
907 pour une raison quelconque (avec les données d'authentification
909 <p>Ceci permet aux utilisateurs présent à la fois dans l'annuaire
910 LDAP et dans un fichier <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de s'authentifier
911 lorsque le serveur LDAP est disponible, alors que le compte de
912 l'utilisateur est verrouillé ou que son mot de passe est
913 inutilisable pour une raison quelconque.</p>
917 <li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
918 <li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
921 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
922 <div class="directive-section"><h2><a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a> <a name="authldapbinddn" id="authldapbinddn">Directive</a></h2>
923 <table class="directive">
924 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
926 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
927 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
928 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
929 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
930 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
932 <p>Cette directive permet de définir un DN optionnel pour se
933 connecter au serveur afin d'y rechercher des entrées. Si aucun DN
934 n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
935 connexion anonyme.</p>
938 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
939 <div class="directive-section"><h2><a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a> <a name="authldapbindpassword" id="authldapbindpassword">Directive</a></h2>
940 <table class="directive">
941 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
943 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
944 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
945 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</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>Cette directive permet de spécifier un mot de passe à utiliser en
950 conjonction avec le DN de connexion. Notez que ce mot de passe
951 constitue en général une donnée sensible, et doit donc être protégé
952 de manière appropriée. Vous ne devez utiliser les directives
953 <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
954 vous en avez vraiment besoin pour effectuer une recherche dans
958 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
959 <div class="directive-section"><h2><a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a> <a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a></h2>
960 <table class="directive">
961 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
962 langage/jeu de caractères</td></tr>
963 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
964 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
965 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
966 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
968 <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
969 de définir le chemin du fichier de configuration de la
970 correspondance langage/jeu de caractères. <var>chemin-fichier</var>
971 est un chemin relatif au répertoire défini par la directive
972 <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
973 de correspondances extension de langage/jeu de caractères. La
974 plupart des administrateurs utilisent le fichier
975 <code>charset.conv</code> fourni qui associe les extensions de
976 langage courantes à leurs jeux de caractères.</p>
978 <p>Le fichier contient des lignes au format suivant :</p>
980 <div class="example"><p><code>
981 <var>extension de langage</var> <var>jeu de caractères</var>
982 [<var>Nom du langage</var>] ...
985 <p>L'extension est insensible à la casse. Les lignes vides et les
986 lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
989 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
990 <div class="directive-section"><h2><a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a> <a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a></h2>
991 <table class="directive">
992 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation des données d'authentification de l'utilisateur
993 pour effectuer les comparaisons pour l'attribution des autorisations</td></tr>
994 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
995 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
996 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
997 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
998 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
999 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1000 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version version 2.3.6</td></tr>
1002 <p>Lorsque cette directive est définie, et si
1003 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
1004 recherches LDAP pour les autorisations utilisent le nom distinctif
1005 trouvé (DN) et le mot de passe d'authentification basique HTTP de
1006 l'utilisateur authentifié au lieu des données d'authentification
1007 configurées au niveau du serveur.</p>
1009 <p>Les vérifications d'autorisation <em>ldap-attribute</em>,
1010 <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
1011 utilisent des comparaisons.</p>
1013 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
1014 cours des traitements de groupe imbriqués, et lorsque la directive
1015 <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code>
1016 est aussi activée.</p>
1018 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1019 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1020 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1025 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1026 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1029 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1030 <div class="directive-section"><h2><a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a> <a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a></h2>
1031 <table class="directive">
1032 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
1033 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
1034 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
1035 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1036 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1037 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1038 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1040 <p>Lorsque cette directive est définie à on,
1041 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
1042 comparer les DNs. Il s'agit de la seule méthode infaillible pour
1043 comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
1044 dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
1045 comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
1046 directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
1047 simple comparaison de chaînes. Cette dernière approche peut produire
1048 des faux négatifs, mais elle est beaucoup plus rapide. Notez
1049 cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
1050 la comparaison de DNs dans la plupart des situations.</p>
1053 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1054 <div class="directive-section"><h2><a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a> <a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a></h2>
1055 <table class="directive">
1056 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>À quel moment le module va déréférencer les
1058 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
1059 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
1060 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1061 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1062 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1063 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1065 <p>Cette directive permet de spécifier à quel moment
1066 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
1067 des opérations liées à LDAP. La valeur par défaut est
1068 <code>always</code>.</p>
1071 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1072 <div class="directive-section"><h2><a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a> <a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a></h2>
1073 <table class="directive">
1074 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
1075 utilisateur à un groupe.</td></tr>
1076 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
1077 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
1078 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1079 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1080 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1081 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1083 <p>Cette directive permet de spécifier quel attribut LDAP est
1084 utilisé pour vérifier l'appartenance d'un utilisateur à un
1085 groupe. On peut spécifier plusieurs attributs en répétant cette
1086 directive plusieurs fois. Si la directive n'est pas définie,
1087 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1088 <code>member</code> et <code>uniquemember</code>.</p>
1091 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1092 <div class="directive-section"><h2><a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a> <a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a></h2>
1093 <table class="directive">
1094 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
1095 appartenance à un groupe</td></tr>
1096 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
1097 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
1098 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1099 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1100 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1101 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1103 <p>Lorsqu'elle est définie à <code>on</code>, cette directive
1104 indique que c'est le DN de l'utilisateur qui doit être utilisé pour
1105 vérifier son appartenance à un groupe. Dans le cas contraire, c'est
1106 le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
1107 le client envoie le nom d'utilisateur <code>bjenson</code>, qui
1108 correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
1109 directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
1110 vérifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
1111 groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
1112 vérifiera si <code>bjenson</code> est un membre du groupe.</p>
1115 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1116 <div class="directive-section"><h2><a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a> <a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a></h2>
1117 <table class="directive">
1118 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le serveur effectue la recherche initiale du
1119 DN en utilisant le nom propre de l'utilisateur pour l'authentification
1121 et non de manière anonyme, ou en utilisant des données d'authentification
1122 codées en dur pour le serveur</td></tr>
1123 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
1124 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
1125 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1126 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1127 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1128 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1129 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1131 <p>Par défaut, le serveur convertit le nom d'utilisateur pour
1132 l'authentification de base en nom distinctif LDAP (DN) soit de
1133 manière anonyme, soit avec un couple nom/mot de passe dédié. Cette
1134 directive permet de forcer le serveur à utiliser les véritables nom
1135 d'utilisateur et mot de passe fournis par l'utilisateur pour
1136 effectuer la recherche initiale du DN.</p>
1138 <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
1139 et nécessite de légères modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p>
1141 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1142 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1143 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1146 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1147 On ne peut utiliser cette directive que si ce module
1148 effectue une authentification, et n'a aucun effet si ce module
1149 n'est utilisé que pour les processus d'autorisation.
1154 <li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
1155 <li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
1156 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1157 <li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
1160 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1161 <div class="directive-section"><h2><a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a> <a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a></h2>
1162 <table class="directive">
1163 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la modification a apporter au nom d'utilisateur
1164 pour l'authentification de base lors de l'authentification auprès du
1165 serveur LDAP pour effectuer une recherche de DN</td></tr>
1166 <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>
1167 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
1168 distant utilisé tel quel)</code></td></tr>
1169 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1170 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1171 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1172 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1173 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1175 <p>Si la directive <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> est
1176 définie à <em>ON</em>, le nom utilisateur pour l'authentification de
1177 base sera transformé selon l'expression rationnelle
1178 <var>regex</var> et l'argument <var>substitution</var> spécifiés.</p>
1180 <p>L'expression rationnelle est comparée au nom d'utilisateur pour
1181 l'authentification de base courant. L'argument
1182 <var>substitution</var> peut contenir des références arrières, mais
1183 n'effectue aucune autre interpolation de variable.</p>
1185 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1186 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1187 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1190 <pre class="prettyprint lang-config"> AuthLDAPInitialBindPattern (.+) $1@example.com </pre>
1192 <pre class="prettyprint lang-config"> AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
1195 <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
1196 On ne peut utiliser cette directive que si ce module
1197 effectue une authentification, et n'a aucun effet si ce module
1198 n'est utilisé que pour les processus d'autorisation.
1200 <div class="note"><h3>Débogage</h3>
1201 Le DN de substitution est enregistré dans la variable
1202 d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
1203 rationnelle ne convient pas, le nom d'utilisateur est utilisé
1209 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1210 <li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapbinddn">AuthLDAPBindDN</a></code></li>
1213 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1214 <div class="directive-section"><h2><a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a> <a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a></h2>
1215 <table class="directive">
1216 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la profondeur d'imbrication des sous-groupes
1217 maximale prise en compte avant l'abandon de la recherche de
1218 l'utilisateur.</td></tr>
1219 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Nombre</var></code></td></tr>
1220 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
1221 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1222 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1223 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1224 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1225 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
1228 <p>Lorsque cette directive est définie à une valeur <code>X</code>
1229 non nulle, en combinaison avec l'utilisation de la directive
1230 <code>Require ldap-group DN-groupe</code>, les données de connexion
1231 fournies seront utilisées pour vérifier l'appartenance de
1232 l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
1233 tout sous-groupe du groupe courant en tenant compte de la profondeur
1234 d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
1235 <p>Se référer à la section <a href="#reqgroup"><code>Require
1236 ldap-group</code></a> pour un exemple plus détaillé.</p>
1239 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1240 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a> <a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a></h2>
1241 <table class="directive">
1242 <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
1243 requête de l'utilisateur sera utilisée pour définir la variable
1244 d'environnement REMOTE_USER</td></tr>
1245 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
1246 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
1247 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1248 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1249 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1250 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1252 <p>Lorsque cette directive est définie, la variable d'environnement
1253 <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
1254 spécifié. Assurez-vous que cet attribut soit bien inclus dans la
1255 liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
1256 le cas contraire, cette directive n'aurait aucun effet. Si elle est
1257 présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
1258 peut s'avérer utile par exemple, si vous souhaitez que les
1259 utilisateurs se connectent à un site web en utilisant leur adresse
1260 email, alors qu'une application sous-jacente nécessite un nom
1261 d'utilisateur comme identifiant.</p>
1264 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1265 <div class="directive-section"><h2><a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a> <a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a></h2>
1266 <table class="directive">
1267 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
1268 d'environnement REMOTE_USER</td></tr>
1269 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
1270 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
1271 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1272 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1273 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1274 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1276 <p>Lorsque cette directive est à on, la variable d'environnement
1277 <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
1278 de l'utilisateur authentifié, et non plus avec simplement le nom
1279 d'utilisateur fourni par le client. Elle est définie à off par
1283 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1284 <div class="directive-section"><h2><a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a> <a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a></h2>
1285 <table class="directive">
1286 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise les données d'authentification de l'utilisateur
1287 pour la recherche des autorisations</td></tr>
1288 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
1289 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
1290 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1291 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1292 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1293 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1294 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
1296 <p>Lorsque cette directive est définie, et si
1297 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
1298 recherches LDAP pour définir les autorisations utilisent le nom
1299 distinctif (DN) trouvé et le mot de passe pour l'authentification de
1300 base HTTP de l'utilisateur authentifié, au lieu des données
1301 d'authentification configurées au niveau du serveur.</p>
1303 <p>Les vérifications d'autorisation <em>ldap-filter</em> et
1304 <em>ldap-dn</em> utilisent des recherches.</p>
1306 <p>Cette directive n'a d'effet sur les comparaisons effectuées au
1307 cours des traitements de groupe imbriqués, et lorsque la directive
1308 <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
1309 est aussi activée.</p>
1311 <p>Cette directive ne doit être utilisée que si votre serveur LDAP
1312 n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
1313 utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
1319 <li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
1320 <li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
1323 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1324 <div class="directive-section"><h2><a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a> <a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a></h2>
1325 <table class="directive">
1326 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie les noms d'attribut, un par directive, utilisés
1327 pour différencier les membres du groupe courant qui sont eux-mêmes des
1329 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribut</em></code></td></tr>
1330 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
1331 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1332 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1333 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1334 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1335 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
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> spécifie l'attribut utilisé
1342 pour identifier les groupes, alors que la directive
1343 <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
1344 pour identifier les utilisateurs. On peut spécifier plusieurs
1345 attributs en répétant la directive plusieurs fois. Si elle n'est pas
1346 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1347 <code>member</code> et <code>uniqueMember</code>.</p>
1350 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1351 <div class="directive-section"><h2><a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a> <a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a></h2>
1352 <table class="directive">
1353 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie quelles valeurs d'objectClass LDAP identifient les
1354 objets de l'annuaire qui sont des groupes au cours du traitement des
1355 sous-groupes.</td></tr>
1356 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></code></td></tr>
1357 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
1358 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1359 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1360 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1361 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1362 <tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
1365 <p>Un objet groupe LDAP peut contenir des membres qui sont des
1366 utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
1367 sous-groupes ou groupes imbriqués). La directive
1368 <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
1369 membres qui sont des sous-groupes du groupe courant (à l'opposé des
1370 membres utilisateurs). La directive
1371 <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
1372 d'objectClass LDAP utilisées pour vérifier que certains membres sont
1373 en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
1374 alors faire l'objet d'une recherche d'autres membres utilisateurs ou
1375 sous-groupes. On peut spécifier plusieurs attributs en répétant
1376 cette directive plusieurs fois. Si cette directive n'est pas
1377 définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
1378 <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
1381 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
1382 <div class="directive-section"><h2><a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a> <a name="authldapurl" id="authldapurl">Directive</a></h2>
1383 <table class="directive">
1384 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
1385 recherche LDAP</td></tr>
1386 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
1387 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
1388 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
1389 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
1390 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
1392 <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
1393 paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
1394 syntaxe de l'URL est :</p>
1395 <div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
1396 <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
1397 LDAP, la syntaxe sera :</p>
1398 <pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
1400 <p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
1401 serveurs, vous devez en entourer la liste avec des guillemets ; dans le
1402 cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
1403 argument, URL to define LDAP connection..".</em> Vous pouvez bien
1404 entendu ajouter des paramètres de recherche à chacun des serveurs
1410 <dd>Pour ldap non sécurisé, utilisez la chaîne
1411 <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
1412 chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
1413 Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
1418 <p>Il s'agit du nom/port du serveur ldap
1419 (dont la valeur par défaut est
1420 <code>localhost:389</code> pour <code>ldap</code>, et
1421 <code>localhost:636</code> pour <code>ldaps</code>). Pour
1422 spécifier plusieurs serveurs LDAP redondants, indiquez
1423 simplement leur liste en les séparant par des espaces.
1424 <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
1425 à chacun des serveurs jusqu'à ce qu'il parvienne à se
1426 connecter avec succès. Notez qu'en cas de multiples serveurs
1427 LDAP, l'ensemble de l'URL LDAP doit être entourée de
1430 <p>lorsqu'une connection a été établie avec un serveur, elle
1431 reste active pendant toute la durée de vie du processus
1432 <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
1433 cesse de fonctionner.</p>
1435 <p>Si le serveur LDAP cesse de fonctionner, et ainsi
1437 connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
1438 de se reconnecter en commençant par le premier serveur de la
1439 liste, et ainsi de suite avec les serveurs redondants
1440 suivants. Notez que ce processus n'a rien à voir avec une
1441 véritable recherche de type round-robin.</p>
1445 <dd>Le DN de la branche de l'annuaire à partir de laquelle
1446 toutes les recherches seront lancées. Il doit au moins
1447 correspondre à la racine de votre annuaire, mais vous pouvez
1448 aussi indiquer une branche plus spécifique.</dd>
1452 <dd>Il s'agit de l'attribut à utiliser pour la recherche.
1454 2255 autorise une liste d'attributs séparés par des virgules,
1455 seul le premier sera retenu, sans tenir compte des autres
1456 attributs fournis. Si aucun attribut n'est fourni, l'attribut
1457 par défaut est <code>uid</code>. Il est judicieux de choisir un
1458 attribut dont la valeur sera unique parmi toutes les entrées de
1459 la branche de l'annuaire que vous aurez définie. Tous les
1460 attributs spécifiés seront enregistrés dans des variables
1461 d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
1462 être utilisés par d'autres modules.</dd>
1466 <dd>Il s'agit de la portée de la recherche. Elle peut prendre
1467 les valeurs <code>one</code> ou <code>sub</code>. Notez que la
1468 RFC 2255 supporte aussi une portée de valeur <code>base</code>,
1469 mais cette dernière n'est pas supportée par le module. Si la
1470 portée n'est pas définie, ou si elle est définie à
1471 <code>base</code>, c'est la valeur de portée par défaut
1472 <code>sub</code> qui sera utilisée.</dd>
1476 <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
1477 filtre n'est spécifié, le filtre par défaut
1478 <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
1479 une recherche de tous les types d'objets de l'arborescence. La
1480 taille des filtres est limitée à environ 8000 caractères (valeur
1481 de la macro <code>MAX_STRING_LEN</code> dans le code source
1482 d'Apache), ce qui s'avère plus que suffisant pour la plupart des
1486 <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
1487 fournis par le client HTTP sont combinés pour créer un filtre de
1488 recherche du style :
1489 <code>(&(<em>filtre</em>)(<em>attribut</em>
1490 =<em>nom-utilisateur</em>))</code>.</p>
1492 <p>Par exemple, considérons l'URL
1493 <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
1494 Lorsqu'un client tentera de se connecter en utilisant le nom
1495 d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
1496 : <code>(&(posixid=*)(cn=Babs Jenson))</code>.</p>
1498 <p>On peut encore ajouter un paramètre optionnel pour permettre à
1499 l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
1500 prendre l'une des valeurs suivantes :</p>
1504 <dd>Établit une connexion non sécurisée sur le port LDAP par
1505 défaut, ce qui est équivalent à <code>ldap://</code> sur le port
1508 <dd>Établit une connexion sécurisée sur le port LDAP sécurisé
1509 par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
1510 <dt>TLS | STARTTLS</dt>
1511 <dd>Établit une connexion sécurisée par élévation de niveau sur
1512 le port LDAP par défaut. Cette connexion sera initialisée sur le
1513 port 389 par défaut, puis élevée à un niveau de connexion
1514 sécurisée sur le même port.</dd>
1517 <p>Voir plus haut pour des exemples d'URLs définies par la directive
1518 <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
1522 <div class="bottomlang">
1523 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_ldap.html" hreflang="en" rel="alternate" title="English"> en </a> |
1524 <a href="../fr/mod/mod_authnz_ldap.html" title="Français"> fr </a></p>
1525 </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>
1526 <script type="text/javascript"><!--//--><![CDATA[//><!--
1527 var comments_shortname = 'httpd';
1528 var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html';
1530 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
1531 d.write('<div id="comments_thread"><\/div>');
1532 var s = d.createElement('script');
1533 s.type = 'text/javascript';
1535 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
1536 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
1539 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
1541 })(window, document);
1542 //--><!]]></script></div><div id="footer">
1543 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
1544 <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[//><!--
1545 if (typeof(prettyPrint) !== 'undefined') {