1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
|
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1523263 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_ldap.xml.meta">
<name>mod_ldap</name>
<description>Conservation des connexions LDAP et services de mise en
cache du résultat à destination des autres modules LDAP</description>
<status>Extension</status>
<sourcefile>util_ldap.c</sourcefile>
<identifier>ldap_module</identifier>
<summary>
<p>Ce module a été conçu dans le but d'améliorer les performances
des sites web s'appuyant sur des connexions en arrière-plan vers des
serveurs LDAP. Il ajoute aux fonctions fournies par les
bibliothèques standards LDAP la conservation des connexions LDAP
ainsi qu'un cache LDAP partagé en mémoire.</p>
<p>Pour activer ce module, le support LDAP doit être compilé dans
apr-util. Pour ce faire, on ajoute l'option <code>--with-ldap</code>
au script <program>configure</program> lorsqu'on construit
Apache.</p>
<p>Le support SSL/TLS est conditionné par le kit de développement
LDAP qui a été lié à <glossary>APR</glossary>. Au moment où ces
lignes sont écrites, APR-util supporte <a
href="http://www.openldap.org/">OpenLDAP SDK</a> (version 2.x ou
supérieure), <a
href="http://developer.novell.com/ndk/cldap.htm">Novell LDAP
SDK</a>, <a href="https://wiki.mozilla.org/LDAP_C_SDK">
Mozilla LDAP SDK</a>, le SDK LDAP Solaris natif (basé sur Mozilla)
ou le SDK LDAP Microsoft natif. Voir le site web <a
href="http://apr.apache.org">APR</a> pour plus de détails.</p>
</summary>
<section id="exampleconfig"><title>Exemple de configuration</title>
<p>Ce qui suit est un exemple de configuration qui utilise
<module>mod_ldap</module> pour améliorer les performances de
l'authentification HTTP de base fournie par
<module>mod_authnz_ldap</module>.</p>
<highlight language="config">
# Active la conservation des connexions LDAP et le cache partagé en
# mémoire. Active le gestionnaire de statut du cache LDAP.
# Nécessite le chargement de mod_ldap et de mod_authnz_ldap.
# Remplacez "votre-domaine.example.com" par le nom de votre
# domaine.
LDAPSharedCacheSize 500000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
<Location /ldap-status>
SetHandler ldap-status
Require host yourdomain.example.com
Satisfy any
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one
Require valid-user
</Location>
</highlight>
</section>
<section id="pool"><title>Conservation des connexions LDAP</title>
<p>Les connexions LDAP sont conservées de requête en requête. Ceci
permet de rester connecté et identifié au serveur LDAP, ce dernier
étant ainsi prêt pour la prochaine requête, sans avoir à se
déconnecter, reconnecter et réidentifier. Le gain en performances
est similaire à celui des connexions persistantes (keepalives)
HTTP.</p>
<p>Sur un serveur très sollicité, il est possible que de nombreuses
requêtes tentent d'accéder simultanément à la même connexion au
serveur LDAP. Lorsqu'une connexion LDAP est utilisée, Apache en crée
une deuxième en parallèle à la première, ce qui permet d'éviter que
le système de conservation des connexions ne devienne un goulot
d'étranglement.</p>
<p>Il n'est pas nécessaire d'activer explicitement la conservation
des connexions dans la configuration d'Apache. Tout module utilisant
le module ldap pour accéder aux services LDAP partagera le jeu de
connexions.</p>
<p>Les connexions LDAP peuvent garder la trace des données
d'identification du client ldap utilisées pour l'identification
auprès du serveur LDAP. Ces données peuvent être fournies aux
serveurs LDAP qui ne permettent pas les connexions anonymes au cours
lors des tentatives de sauts vers des serveurs alternatifs. Pour
contrôler cette fonctionnalité, voir les directives <directive
module="mod_ldap">LDAPReferrals</directive> et <directive
module="mod_ldap">LDAPReferralHopLimit</directive>. Cette
fonctionnalité est activée par défaut.</p>
</section>
<section id="cache"><title>Cache LDAP</title>
<p>Pour améliorer les performances, <module>mod_ldap</module> met en
oeuvre une stratégie de mise en cache agressive visant à minimiser
le nombre de fois que le serveur LDAP doit être contacté. La mise en
cache peut facilement doubler et même tripler le débit d'Apache
lorsqu'il sert des pages protégées par mod_authnz_ldap. De plus, le
serveur LDAP verra lui-même sa charge sensiblement diminuée.</p>
<p><module>mod_ldap</module> supporte deux types de mise en cache
LDAP : un <em>cache recherche/identification</em> durant la phase
de recherche/identification et deux <em>caches d'opérations</em>
durant la phase de comparaison. Chaque URL LDAP utilisée par le
serveur a son propre jeu d'instances dans ces trois caches.</p>
<section id="search-bind"><title>Le cache
recherche/identification</title>
<p>Les processus de recherche et d'identification sont les
opérations LDAP les plus consommatrices en temps, en particulier
si l'annuaire est de grande taille. Le cache de
recherche/identification met en cache toutes les recherches qui
ont abouti à une identification positive. Les résultats négatifs
(c'est à dire les recherches sans succès, ou les recherches qui
n'ont pas abouti à une identification positive) ne sont pas mis en
cache. La raison de cette décision réside dans le fait que les
connexions avec des données d'identification invalides ne
représentent qu'un faible pourcentage du nombre total de
connexions, et ainsi, le fait de ne pas mettre en cache les
données d'identification invalides réduira d'autant la taille du
cache.</p>
<p><module>mod_ldap</module> met en cache le nom d'utilisateur, le
DN extrait, le mot de passe utilisé pour l'identification, ainsi
que l'heure de l'identification. Chaque fois qu'une nouvelle
connexion est initialisée avec le même nom d'utilisateur,
<module>mod_ldap</module> compare le mot de passe de la nouvelle
connexion avec le mot de passe enregistré dans le cache. Si les
mots de passe correspondent, et si l'entrée du cache n'est pas
trop ancienne, <module>mod_ldap</module> court-circuite la phase
de recherche/identification.</p>
<p>Le cache de recherche/identification est contrôlé par les
directives <directive
module="mod_ldap">LDAPCacheEntries</directive> et <directive
module="mod_ldap">LDAPCacheTTL</directive>.</p>
</section>
<section id="opcaches"><title>Les caches d'opérations</title>
<p>Au cours des opérations de comparaison d'attributs et de noms
distinctifs (DN), <module>mod_ldap</module> utilise deux caches
d'opérations pour mettre en cache les opérations de comparaison.
Le premier cache de comparaison sert à mettre en cache les
résultats de comparaisons effectuées pour vérifier l'appartenance
à un groupe LDAP. Le second cache de comparaison sert à mettre en
cache les résultats de comparaisons entre DNs.</p>
<p>Notez que, lorsque l'appartenance à un groupe est vérifiée,
toute comparaison de sous-groupes est mise en cache afin
d'accélérer les comparaisons de sous-groupes ultérieures.</p>
<p>Le comportement de ces deux caches est contrôlé par les
directives <directive
module="mod_ldap">LDAPOpCacheEntries</directive> et <directive
module="mod_ldap">LDAPOpCacheTTL</directive>.</p>
</section>
<section id="monitoring"><title>Superviser le cache</title>
<p><module>mod_ldap</module> possède un gestionnaire de contenu
qui permet aux administrateurs de superviser les performances du
cache. Le nom du gestionnaire de contenu est
<code>ldap-status</code>, et on peut utiliser les directives
suivantes pour accéder aux informations du cache de
<module>mod_ldap</module> :</p>
<highlight language="config">
<Location /server/cache-info>
SetHandler ldap-status
</Location>
</highlight>
<p>En se connectant à l'URL
<code>http://nom-serveur/infos-cache</code>, l'administrateur peut
obtenir un rapport sur le statut de chaque cache qu'utilise
<module>mod_ldap</module>. Notez que si Apache ne supporte pas la
mémoire partagée, chaque instance de <program>httpd</program>
possèdera son propre cache, et chaque fois que l'URL sera
rechargée, un résultat différent pourra être affiché, en fonction
de l'instance de <program>httpd</program> qui traitera la
requête.</p>
</section>
</section>
<section id="usingssltls"><title>Utiliser SSL/TLS</title>
<p>La possibilité de créer des connexions SSL et TLS avec un serveur
LDAP est définie par les directives <directive module="mod_ldap">
LDAPTrustedGlobalCert</directive>, <directive module="mod_ldap">
LDAPTrustedClientCert</directive> et <directive module="mod_ldap">
LDAPTrustedMode</directive>. Ces directives permettent de spécifier
l'autorité de certification (CA), les certificats clients éventuels,
ainsi que le type de chiffrement à utiliser pour la connexion (none,
SSL ou TLS/STARTTLS).</p>
<highlight language="config">
# Etablissement d'une connexion SSL LDAP sur le port 636.
# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
# Remplacez "votre-domaine.example.com" par le nom de votre
# domaine.
LDAPTrustedGlobalCert CA_DER /certs/certfile.der
<Location /ldap-status>
SetHandler ldap-status
Require host yourdomain.example.com
Satisfy any
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
Require valid-user
</Location>
</highlight>
<highlight language="config">
# Etablissement d'une connexion TLS LDAP sur le port 389.
# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
# Remplacez "votre-domaine.example.com" par le nom de votre
# domaine.
LDAPTrustedGlobalCert CA_DER /certs/certfile.der
<Location /ldap-status>
SetHandler ldap-status
Require host yourdomain.example.com
Satisfy any
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one TLS
Require valid-user
</Location>
</highlight>
</section>
<section id="settingcerts"><title>Certificats SSL/TLS</title>
<p>Les différents SDKs LDAP disposent de nombreuses méthodes pour
définir et gérer les certificats des clients et des autorités de
certification (CA).</p>
<p>Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette
section ATTENTIVEMENT de façon à bien comprendre les différences de
configurations entre les différents SDKs LDAP supportés.</p>
<section id="settingcerts-netscape"><title>SDK Netscape/Mozilla/iPlanet</title>
<p>Les certificat de CA sont enregistrés dans un fichier nommé
cert7.db. Le SDK ne dialoguera avec aucun serveur LDAP dont le
certificat n'a pas été signé par une CA spécifiée dans ce
fichier. Si des certificats clients sont requis, un fichier
key3.db ainsi qu'un mot de passe optionnels peuvent être
spécifiés. On peut aussi spécifier le fichier secmod si
nécessaire. Ces fichiers sont du même format que celui utilisé
par les navigateurs web Netscape Communicator ou Mozilla. Le
moyen le plus simple pour obtenir ces fichiers consiste à les
extraire de l'installation de votre navigateur.</p>
<p>Les certificats clients sont spécifiés pour chaque connexion
en utilisant la directive LDAPTrustedClientCert et en se
référant au certificat "nickname". On peut éventuellement
spécifier un mot de passe pour déverrouiller la clé privée du
certificat.</p>
<p>Le SDK supporte seulement SSL. Toute tentative d'utilisation
de STARTTLS engendrera une erreur lors des tentatives de
contacter le serveur LDAP pendant l'exécution.</p>
<highlight language="config">
# Spécifie un fichier de certificats de CA Netscape
LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db
# Spécifie un fichier key3db optionnel pour le support des
# certificats clients
LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db
# Spécifie le fichier secmod si nécessaire
LDAPTrustedGlobalCert CA_SECMOD /certs/secmod
<Location /ldap-status>
SetHandler ldap-status
Require host yourdomain.example.com
Satisfy any
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
LDAPTrustedClientCert CERT_NICKNAME <nickname> [password]
AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
Require valid-user
</Location>
</highlight>
</section>
<section id="settingcerts-novell"><title>SDK Novell</title>
<p>Un ou plusieurs certificats de CA doivent être spécifiés pour
que le SDK Novell fonctionne correctement. Ces certificats
peuvent être spécifiés sous forme de fichiers au format binaire
DER ou codés en Base64 (PEM).</p>
<p>Note: Les certificats clients sont spécifiés globalement
plutôt qu'à chaque connexion, et doivent être spécifiés à l'aide
de la directive LDAPTrustedGlobalCert comme ci-dessous. Définir
des certificats clients via la directive LDAPTrustedClientCert
engendrera une erreur qui sera journalisée, au moment de la
tentative de connexion avec le serveur LDAP.</p>
<p>Le SDK supporte SSL et STARTTLS, le choix étant défini par le
paramètre de la directive LDAPTrustedMode. Si une URL de type
ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur
cette directive.</p>
<highlight language="config">
# Spécifie deux fichiers contenant des certificats de CA
LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
# Spécifie un fichier contenant des certificats clients
# ainsi qu'une clé
LDAPTrustedGlobalCert CERT_BASE64 /certs/cert1.pem
LDAPTrustedGlobalCert KEY_BASE64 /certs/key1.pem [password]
# N'utilisez pas cette directive, sous peine de provoquer
# une erreur
#LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
</highlight>
</section>
<section id="settingcerts-openldap"><title>SDK OpenLDAP</title>
<p>Un ou plusieurs certificats de CA doivent être spécifiés pour
que le SDK OpenLDAP fonctionne correctement. Ces certificats
peuvent être spécifiés sous forme de fichiers au format binaire
DER ou codés en Base64 (PEM).</p>
<p>Les certificats clients sont spécifiés pour chaque connexion
à l'aide de la directive LDAPTrustedClientCert.</p>
<p>La documentation du SDK prétend que SSL et STARTTLS sont
supportés ; cependant, STARTTLS semble ne pas fonctionner avec
toutes les versions du SDK. Le mode SSL/TLS peut être défini en
utilisant le paramètre de la directive LDAPTrustedMode. Si une
URL de type
ldaps:// est spécifiée, le mode SSL est forcé. La documentation
OpenLDAP indique que le support SSL (ldaps://) tend à être
remplacé par TLS, bien que le mode SSL fonctionne toujours.</p>
<highlight language="config">
# Spécifie deux fichiers contenant des certificats de CA
LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
<Location /ldap-status>
SetHandler ldap-status
Require host yourdomain.example.com
LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem
# CA certs respecified due to per-directory client certs
LDAPTrustedClientCert CA_DER /certs/cacert1.der
LDAPTrustedClientCert CA_BASE64 /certs/cacert2.pem
Satisfy any
AuthType Basic
AuthName "LDAP Protected"
AuthBasicProvider ldap
AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
Require valid-user
</Location>
</highlight>
</section>
<section id="settingcerts-solaris"><title>SDK Solaris</title>
<p>SSL/TLS pour les bibliothèques LDAP propres à Solaris n'est
pas encore supporté. Si nécessaire, installez et utilisez plutôt
les bibliothèques OpenLDAP.</p>
</section>
<section id="settingcerts-microsoft"><title>SDK Microsoft</title>
<p>La configuration des certificats SSL/TLS pour les
bibliothèques LDAP propres à Microsoft s'effectue à l'intérieur
du registre système, et aucune directive de configuration n'est
requise.</p>
<p>SSL et TLS sont tous deux supportés en utilisant des URLs de
type ldaps://, ou en définissant la directive LDAPTrustedMode à
cet effet.</p>
<p>Note: L'état du support des certificats clients n'est pas
encore connu pour ce SDK.</p>
</section>
</section>
<directivesynopsis>
<name>LDAPSharedCacheSize</name>
<description>Taille en octets du cache en mémoire partagée</description>
<syntax>LDAPSharedCacheSize <var>octets</var></syntax>
<default>LDAPSharedCacheSize 500000</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier le nombre d'octets à allouer
pour le cache en mémoire partagée. La valeur par
défaut est 500kb.
Si elle est définie à 0, le cache en mémoire partagée ne sera pas
utilisé et chaque processus HTTPD va créer son propre cache.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPSharedCacheFile</name>
<description>Définit le fichier du cache en mémoire
partagée</description>
<syntax>LDAPSharedCacheFile <var>chemin/fichier</var></syntax>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier le chemin du
fichier du cache en mémoire partagée. Si elle n'est pas définie, la
mémoire partagée anonyme sera utilisée si la plate-forme la
supporte.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPCacheEntries</name>
<description>Nombre maximum d'entrées dans le cache LDAP
primaire</description>
<syntax>LDAPCacheEntries <var>nombre</var></syntax>
<default>LDAPCacheEntries 1024</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier la taille maximale du cache
LDAP primaire. Ce cache contient les résultats de
recherche/identification positifs. Définissez-la à 0 pour désactiver
la mise en cache des résultats de recherche/identification positifs.
La taille par défaut est de 1024 recherches en cache.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPCacheTTL</name>
<description>Durée pendant laquelle les entrées du cache restent
valides.</description>
<syntax>LDAPCacheTTL <var>secondes</var></syntax>
<default>LDAPCacheTTL 600</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier la durée (en secondes)
pendant laquelle une entrée du cache de recherche/identification
reste valide. La valeur par défaut est de 600 secondes (10
minutes).</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPOpCacheEntries</name>
<description>Nombre d'entrées utilisées pour mettre en cache les
opérations de comparaison LDAP</description>
<syntax>LDAPOpCacheEntries <var>nombre</var></syntax>
<default>LDAPOpCacheEntries 1024</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier le nombre d'entrées que
<module>mod_ldap</module> va utiliser pour mettre en cache les
opérations de comparaison LDAP. La valeur par défaut est de 1024
entrées. Si elle est définie à 0, la mise en cache des opérations de
comparaison LDAP est désactivée.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPOpCacheTTL</name>
<description>Durée pendant laquelle les entrées du cache d'opérations
restent valides</description>
<syntax>LDAPOpCacheTTL <var>secondes</var></syntax>
<default>LDAPOpCacheTTL 600</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier la durée (en secondes)
pendant laquelle les entrées du cache d'opérations restent valides.
La valeur par défaut est de 600 secondes.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPReferralHopLimit</name>
<description>Le nombre maximum de redirections vers des serveurs
alternatifs (referrals) avant l'abandon de la requête
LDAP.</description>
<syntax>LDAPReferralHopLimit <var>nombre</var></syntax>
<default>Dépend du SDK, en général entre 5 et 10</default>
<contextlist><context>directory</context><context>.htaccess</context></contextlist>
<override>AuthConfig</override>
<usage>
<p>Si elle est activée par la directive <code>LDAPReferrals</code>,
cette directive permet de définir le nombre maximum de sauts vers
des serveurs alternatifs (referrals) avant l'abandon de la requête
LDAP.</p>
<note type="warning">
<p>L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPReferrals</name>
<description>Active la redirection vers des serveurs alternatifs au
cours des requêtes vers le serveur LDAP.</description>
<syntax>LDAPReferrals <var>On|Off|default</var></syntax>
<default>LDAPReferrals On</default>
<contextlist><context>directory</context><context>.htaccess</context></contextlist>
<override>AuthConfig</override>
<usage>
<p>Certains serveurs LDAP partagent leur annuaire en plusieurs
domaines et utilisent le système des redirections (referrals) pour
aiguiller un client lorsque les limites d'un domaine doivent être
franchies. Ce processus est similaire à une redirection HTTP. Les
bibliothèques client LDAP ne respectent pas forcément ces
redirections par défaut. Cette directive permet de configurer
explicitement les redirections LDAP dans le SDK sous-jacent.</p>
<p>La directive <directive>LDAPReferrals</directive> accepte les
valeurs suivantes :</p>
<dl>
<dt>"on"</dt>
<dd> <p>Avec la valeur "on", la prise en compte des redirections
LDAP par le SDK sous-jacent est activée, la directive
<directive>LDAPReferralHopLimit</directive> permet de surcharger la
"hop limit" du SDK, et un "LDAP rebind callback" est enregistré.</p></dd>
<dt>"off"</dt>
<dd> <p>Avec la valeur "off", la prise en compte des redirections
LDAP par le SDK sous-jacent est complètement désactivée.</p></dd>
<dt>"default"</dt>
<dd> <p>Avec la valeur "default", la prise en compte des redirections
LDAP par le SDK sous-jacent n'est pas modifiée, la directive
<directive>LDAPReferralHopLimit</directive> ne permet pas de surcharger la
"hop limit" du SDK, et aucun "LDAP rebind callback" n'est enregistré.</p></dd>
</dl>
<p>La directive <code>LDAPReferralHopLimit</code> travaille en
conjonction avec cette directive pour limiter le nombre de
redirections à suivre pour achever le traitement de la requête LDAP.
Lorsque le processus de redirection est activé par la valeur "On",
les données d'authentification du client sont transmises via un
"rebind callback" à tout serveur LDAP qui en fait la demande.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPRetryDelay</name>
<description>Définit le temps d'attente avant un autre essai de connexion au
serveur LDAP.</description>
<syntax>LDAPRetryDelay <var>secondes</var></syntax>
<default>LDAPRetryDelay 0</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Si la directive <directive>LDAPRetryDelay</directive> est définie
à une valeur différente de 0, le serveur attendra pendant la durée
spécifiée pour envoyer à nouveau sa requête LDAP. Une valeur de 0
implique une absence de délai pour les essais successifs.</p>
<p>Il est possible d'effectuer une autre tentative de connexion en
cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPRetries</name>
<description>Définit le nombre maximum de tentatives de connexions au
serveur LDAP.</description>
<syntax>LDAPRetries <var>nombre d'essais</var></syntax>
<default>LDAPRetries 3</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Suite à des échecs de connexion au serveur LDAP, le serveur
tentera de se connecter autant de fois qu'indiqué par la directive
<directive>LDAPRetries</directive>. Si cette directive est définie à
0, le serveur ne tentera pas d'autre connexion après un échec.</p>
<p>Il est possible d'effectuer une autre tentative de connexion en
cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPTrustedGlobalCert</name>
<description>Définit le nom de fichier ou la base de données contenant
les Autorités de Certification de confiance globales ou les certificats
clients globaux</description>
<syntax>LDAPTrustedGlobalCert <var>type</var>
<var>chemin/nom-fichier</var> <var>[mot de passe]</var></syntax>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier le chemin et le nom du
fichier contenant les certificats des CA de confiance et/ou les
certificats clients du système global que <module>mod_ldap</module>
utilisera pour établir une connexion SSL ou TLS avec un serveur
LDAP. Notez que toute information relative aux certificats spécifiée
en utilisant cette directive s'applique globalement à l'ensemble de
l'installation du serveur. Certains SDK LDAP (en particulier Novell)
nécessitent la définition globale de tous les certificats clients en
utilisant cette directive. La plupart des autres SDK nécessitent la
définition des certificats clients dans une section Directory ou
Location en utilisant la directive LDAPTrustedClientCert. Si vous ne
définissez pas ces directives correctement, une erreur sera générée
lors des tentatives de contact avec un serveur LDAP, ou la connexion
échouera silencieusement (Voir plus haut le guide des certificats
SSL/TLS pour plus de détails). Le paramètre type spécifie le type de
certificat en cours de définition, en fonction du SDK LDAP utilisé.
Les types supportés sont :</p>
<ul>
<li>CA_DER - certificat de CA codé en binaire DER</li>
<li>CA_BASE64 - certificat de CA codé en PEM</li>
<li>CA_CERT7_DB - fichier de base de données des certificats de CA
de Netscape cert7.db</li>
<li>CA_SECMOD - fichier de base de données secmod de Netscape</li>
<li>CERT_DER - certificat client codé en binaire DER</li>
<li>CERT_BASE64 - certificat client codé en PEM</li>
<li>CERT_KEY3_DB - fichier de base de données des certificats
clients de Netscape key3.db</li>
<li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
<li>CERT_PFX - certificat client codé en PKCS#12 (SDK Novell)</li>
<li>KEY_DER - clé privée codée en binaire DER</li>
<li>KEY_BASE64 - clé privée codée en PEM</li>
<li>KEY_PFX - clé privée codée en PKCS#12 (SDK Novell)</li>
</ul>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPTrustedClientCert</name>
<description>Définit le nom de fichier contenant un certificat client ou
un alias renvoyant vers un certificat client spécifique à une connexion.
Tous les SDK LDAP ne supportent pas les certificats clients par
connexion.</description>
<syntax>LDAPTrustedClientCert <var>type</var>
<var>chemin/nom-fichier/alias</var> <var>[mot de passe]</var></syntax>
<contextlist><context>server config</context><context>virtual
host</context><context>directory</context><context>.htaccess</context></contextlist>
<usage>
<p>Cette directive permet de spécifier le chemin et le nom de
fichier ou l'alias d'un certificat client par connexion utilisé lors
de l'établissement d'une connexion SSL ou TLS avec un serveur LDAP.
Les sections directory ou location peuvent posséder leurs propres
configurations de certificats clients. Certains SDK LDAP (en
particulier Novell) ne supportent pas les certificats clients par
connexion, et renvoient une erreur lors de la connexion au serveur
LDAP si vous tenter d'utiliser cette directive (Utilisez à la place
la directive LDAPTrustedGlobalCert pour les certificats clients sous
Novell - Voir plus haut le guide des certificats SSL/TLS pour plus
de détails). Le paramètre type spécifie le type du certificat en
cours de définition, en fonction du SDK LDAP utilisé. Les types
supportés sont :</p>
<ul>
<li>CA_DER - certificat de CA codé en binaire DER</li>
<li>CA_BASE64 - certificat de CA codé en PEM</li>
<li>CERT_DER - certificat client codé en binaire DER</li>
<li>CERT_BASE64 - certificat client codé en PEM</li>
<li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
<li>KEY_DER - clé privée codée en binaire DER</li>
<li>KEY_BASE64 - clé privée codée en PEM</li>
</ul>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPTrustedMode</name>
<description>Spécifie le mode (SSL ou TLS) à utiliser lors de la
connexion à un serveur LDAP.</description>
<syntax>LDAPTrustedMode <var>type</var></syntax>
<contextlist><context>server config</context><context>virtual
host</context></contextlist>
<usage>
<p>Les modes suivants sont supportés :</p>
<ul>
<li>NONE - aucun chiffrement</li>
<li>SSL - chiffrement ldaps:// sur le port par défaut 636</li>
<li>TLS - chiffrement STARTTLS sur le port par défaut 389</li>
</ul>
<p>Les modes ci-dessus ne sont pas supportés par tous les SDK LDAP.
Un message d'erreur sera généré à l'exécution si un mode n'est pas
supporté, et la connexion au serveur LDAP échouera.
</p>
<p>Si une URL de type ldaps:// est spécifiée, le mode est forcé à
SSL et la définition de LDAPTrustedMode est ignorée.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPConnectionTimeout</name>
<description>Spécifie le délai d'attente en secondes de la socket de
connexion</description>
<syntax>LDAPConnectionTimeout <var>secondes</var></syntax>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive configure l'option LDAP_OPT_NETWORK_TIMEOUT (ou
LDAP_OPT_CONNECT_TIMEOUT) dans la bibliothèque client LDAP
sous-jacente, si elle est disponible. Cette valeur représente la
durée pendant laquelle la bibliothèque client LDAP va attendre que
le processus de connexion TCP au serveur LDAP soit achevé.</p>
<p>Si la connexion n'a pas réussi avant ce délai, une erreur sera
renvoyée, ou la bibliothèque client LDAP tentera de se connecter à
un second serveur LDAP, s'il en a été défini un (via une liste de
noms d'hôtes séparés par des espaces dans la directive <directive
module="mod_authnz_ldap">AuthLDAPURL</directive>).</p>
<p>La valeur par défaut est 10 secondes, si la bibliothèque client
LDAP liée avec le serveur supporte l'option
LDAP_OPT_NETWORK_TIMEOUT.</p>
<note>LDAPConnectionTimeout n'est disponible que si la bibliothèque client
LDAP liée avec le serveur supporte l'option
LDAP_OPT_NETWORK_TIMEOUT (ou LDAP_OPT_CONNECT_TIMEOUT), et le
comportement final est entièrement dicté par la bibliothèque client
LDAP.
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPTimeout</name>
<description>Spécifie le délai d'attente pour les opérations de
recherche et d'identification LDAP en secondes</description>
<syntax>LDAPTimeout <var>secondes</var></syntax>
<default>LDAPTimeout 60</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible à partir de la version 2.3.5 du serveur HTTP
Apache</compatibility>
<usage>
<p>Cette directive permet de spécifier le délai d'attente pour les
opérations de recherche et d'identification, ainsi que l'option
LDAP_OPT_TIMEOUT dans la bibliothèque LDAP client sous-jacente,
lorsqu'elle est disponible.</p>
<p>Lorsque le délai est atteint, httpd va refaire un essai dans le
cas où une connexion existante a été silencieusement fermée par un
pare-feu. Les performances seront cependant bien meilleures si le
pare-feu est configuré pour envoyer des paquets TCP RST au lieu de
rejeter silencieusement les paquets.</p>
<note>
<p>Les délais pour les opérations de comparaison LDAP nécessitent un
SDK avec LDAP_OPT_TIMEOUT, comme OpenLDAP >= 2.4.4.</p>
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPVerifyServerCert</name>
<description>Force la vérification du certificat du
serveur</description>
<syntax>LDAPVerifyServerCert <var>On|Off</var></syntax>
<default>LDAPVerifyServerCert On</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Cette directive permet de spécifier s'il faut forcer la
vérification d'un certificat de serveur lors de l'établissement
d'une connexion SSL avec un serveur LDAP.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPConnectionPoolTTL</name>
<description>Désactive les connexions d'arrière-plan qui sont restées
inactives trop longtemps au sein du jeu de connexions.</description>
<syntax>LDAPConnectionPoolTTL <var>n</var></syntax>
<default>LDAPConnectionPoolTTL -1</default>
<contextlist><context>server config</context><context>virtual host</context></contextlist>
<compatibility>Disponible à partir de la version 2.3.12 du serveur HTTP
Apache</compatibility>
<usage>
<p>Cette directive permet de spécifier la durée maximale, en
secondes, pendant laquelle une connexion LDAP du jeu de connexions
peut demeurer inactive, mais rester quand-même disponible pour une
utilisation éventuelle. Le jeu de connexions est nettoyé au fur et à
mesure des besoins, de manière non asynchrone.</p>
<p>Si cette directive est définie à 0, les connexions ne sont jamais
sauvegardées dans le jeu de connexions d'arrière-plan. Avec la
valeur par défaut -1, ou toute autre valeur négative, les connexions
peuvent être réutilisées sans limite de durée.</p>
<p>La durée de vie est basée sur le moment où la connexion LDAP est
remise en attente dans le jeu de connexions , et non sur la dernière
entrée/sortie effectuée sur le serveur d'arrière-plan. Si
l'information est mise en cache, la durée d'inactivité apparente
peut excéder la valeur de la directive
<directive>LDAPConnectionPoolTTL</directive>.</p>
<note><p>Cette durée de vie s'exprime par défaut en secondes, mais
il est possible d'utiliser d'autres unités en ajoutant un suffixe :
millisecondes (ms), minutes (min), ou heures (h).
</p></note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>LDAPLibraryDebug</name>
<description>Active le débogage dans le SDK LDAP</description>
<syntax>LDAPLibraryDebug <var>7</var></syntax>
<default>disabled</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>Active les options de débogage LDAP spécifiques au SDK, qui
entraînent en général une journalisation d'informations verbeuses du
SDK LDAP dans le journal principal des erreurs d'Apache. Les
messages de traces en provenance du SDK LDAP fournissent des
informations très détaillées qui peuvent s'avérer utiles lors du
débogage des problèmes de connexion avec des serveurs LDAP
d'arrière-plan.</p>
<p>Cette option n'est configurable que lorsque le serveur HTTP
Apache est lié avec un SDK LDAP qui implémente
<code>LDAP_OPT_DEBUG</code> ou <code>LDAP_OPT_DEBUG_LEVEL</code>,
comme OpenLDAP (une valeur de 7 est verbeuse) ou Tivoli Directory
Server (une valeur de 65535 est verbeuse).</p>
<note type="warning">
<p>Les informations journalisées peuvent contenir des données
d'authentification en clair utilisées ou validées lors de
l'authentification LDAP ; vous devez donc prendre soin de protéger
et de purger le journal des erreurs lorsque cette directive est
utilisée.</p>
</note>
</usage>
</directivesynopsis>
</modulesynopsis>
|