<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1202456 -->
+<!-- English Revision: 1521346:1587097 (outdated) -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->
<status>Extension</status>
<sourcefile>util_ldap.c</sourcefile>
<identifier>ldap_module</identifier>
-<compatibility>Disponible à partir de la version 2.0.41
-d'Apache</compatibility>
<summary>
<p>Ce module a été conçu dans le but d'améliorer les performances
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="http://www.mozilla.org/directory/csdk.html">
- Mozilla LDAP SDK</a>, le SDK LDAP propre à Solaris (basé sur
- Mozilla), le SDK LDAP propre à Microsoft, ou le SDK <a
- href="http://www.iplanet.com/downloads/developer/">iPlanet
- (Netscape)</a>. Voir le site web <a
+ 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>
l'authentification HTTP de base fournie par
<module>mod_authnz_ldap</module>.</p>
- <example>
- # Active la conservation des connexions LDAP et le cache partagé en<br />
- # mémoire. Active le gestionnaire de statut du cache LDAP.<br />
- # Nécessite le chargement de mod_ldap et de mod_authnz_ldap.<br />
- # Remplacez "votre-domaine.example.com" par le nom de votre<br />
- # domaine.<br />
- <br />
- LDAPSharedCacheSize 500000<br />
- LDAPCacheEntries 1024<br />
- LDAPCacheTTL 600<br />
- LDAPOpCacheEntries 1024<br />
- LDAPOpCacheTTL 600<br />
- <br />
- <Location /statut-ldap><br />
- <indent>
- SetHandler ldap-status<br />
-
- Require host votre-domaine.example.com<br />
-
- Satisfy any<br />
- AuthType Basic<br />
- AuthName "Protégé par LDAP"<br />
- AuthBasicProvider ldap<br />
- AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one<br />
- Require valid-user<br />
- </indent>
- </Location>
- </example>
+ <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>
suivantes pour accéder aux informations du cache de
<module>mod_ldap</module> :</p>
- <example>
- <Location /serveur/infos-cache><br />
- <indent>
- SetHandler ldap-status<br />
- </indent>
- </Location>
- </example>
+ <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
ainsi que le type de chiffrement à utiliser pour la connexion (none,
SSL ou TLS/STARTTLS).</p>
- <example>
- # Etablissement d'une connexion SSL LDAP sur le port 636.<br />
- # Nécessite le chargement de mod_ldap et mod_authnz_ldap.<br />
- # Remplacez "votre-domaine.example.com" par le nom de votre<br />
- # domaine.<br />
- <br />
- LDAPTrustedGlobalCert CA_DER /certs/fichier-certificat.der<br />
- <br />
- <Location /statut-ldap><br />
- <indent>
- SetHandler ldap-status<br />
-
- Require host votre-domaine.example.com<br />
-
- Satisfy any<br />
- AuthType Basic<br />
- AuthName "Protégé par LDAP"<br />
- AuthBasicProvider ldap<br />
- AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one<br />
- Require valid-user<br />
- </indent>
- </Location>
- </example>
-
- <example>
- # Etablissement d'une connexion TLS LDAP sur le port 389.<br />
- # Nécessite le chargement de mod_ldap et mod_authnz_ldap.<br />
- # Remplacez "votre-domaine.example.com" par le nom de votre<br />
- # domaine.<br />
- <br />
- LDAPTrustedGlobalCert CA_DER /certs/fichier-certificat.der<br />
- <br />
- <Location /statut-ldap><br />
- <indent>
- SetHandler ldap-status<br />
-
- Require host votre-domaine.example.com<br />
-
- Satisfy any<br />
- AuthType Basic<br />
- AuthName "Protégé par LDAP"<br />
- AuthBasicProvider ldap<br />
- AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one TLS<br />
- Require valid-user<br />
- </indent>
- </Location>
- </example>
+ <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>
de STARTTLS engendrera une erreur lors des tentatives de
contacter le serveur LDAP pendant l'exécution.</p>
- <example>
- # Spécifie un fichier de certificats de CA Netscape<br />
- LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db<br />
- # Spécifie un fichier key3db optionnel pour le support des
- # certificats clients<br />
- LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db<br />
- # Spécifie le fichier secmod si nécessaire<br />
- LDAPTrustedGlobalCert CA_SECMOD /certs/secmod<br />
- <Location /statut-ldap><br />
- <indent>
- SetHandler ldap-status<br />
-
- Require host votre-domaine.example.com<br />
-
- Satisfy any<br />
- AuthType Basic<br />
- AuthName "Protégé par LDAP"<br />
- AuthBasicProvider ldap<br />
- LDAPTrustedClientCert CERT_NICKNAME <nickname>
- [mot de passe]<br />
- AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one<br />
- Require valid-user<br />
- </indent>
- </Location>
- </example>
+ <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>
ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur
cette directive.</p>
- <example>
- # Spécifie deux fichiers contenant des certificats de CA<br />
- LDAPTrustedGlobalCert CA_DER /certs/cacert1.der<br />
- LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem<br />
- # Spécifie un fichier contenant des certificats clients
- # ainsi qu'une clé<br />
- LDAPTrustedGlobalCert CERT_BASE64 /certs/cert1.pem<br />
- LDAPTrustedGlobalCert KEY_BASE64 /certs/key1.pem [mot de
- passe]<br />
- # N'utilisez pas cette directive, sous peine de provoquer
- # une erreur<br />
- #LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem<br />
- </example>
+ <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>
OpenLDAP indique que le support SSL (ldaps://) tend à être
remplacé par TLS, bien que le mode SSL fonctionne toujours.</p>
- <example>
- # Spécifie deux fichiers contenant des certificats de CA<br />
- LDAPTrustedGlobalCert CA_DER /certs/cacert1.der<br />
- LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem<br />
- <Location /statut-ldap><br />
- <indent>
- SetHandler ldap-status<br />
-
- Require host votre-domaine.example.com<br />
-
- LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem<br />
- LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem<br />
- Satisfy any<br />
- AuthType Basic<br />
- AuthName "Protégé par LDAP"<br />
- AuthBasicProvider ldap<br />
- AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one<br />
- Require valid-user<br />
- </indent>
- </Location>
- </example>
+ <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>
<name>LDAPSharedCacheFile</name>
<description>Définit le fichier du cache en mémoire
partagée</description>
-<syntax>LDAPSharedCacheFile <var>chemin/nom-fichier</var></syntax>
+<syntax>LDAPSharedCacheFile <var>chemin-fichier</var></syntax>
<contextlist><context>server config</context></contextlist>
<usage>
- <p>Cette directive permet de spécifier le chemin et le nom du
+ <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>
+
+ <p>Si <var>chemin-fichier</var> n'est pas un chemin absolu, il sera
+ relatif au répertoire défini via la directive <directive
+ module="core">DefaultRuntimeDir</directive>.</p>
</usage>
</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</var></syntax>
+<syntax>LDAPReferrals On|Off|default</syntax>
<default>LDAPReferrals On</default>
<contextlist><context>directory</context><context>.htaccess</context></contextlist>
<override>AuthConfig</override>
<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. En définissant <code>LDAPReferrals On</code>, les
- redirections seront prises en compte (et bien entendu, en
- définissant <code>LDAPReferrals Off</code>, les redirections seront
- ignorées). La directive <code>LDAPReferralHopLimit</code> complète
- cette directive en définissant le nombre maximum de redirections à
- suivre avant l'abandon de la requête LDAP. Lorsque le traitement des
- redirections est activé, les données d'identification du client
- seront fournies, via un appel (callback) de réidentification, à tout
- serveur LDAP qui en fera la demande.</p>
+ 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>
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_ldap">AuthLDAPURL</directive>).</p>
+ 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
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).