You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2015/04/15 18:36:07 UTC
svn commit: r1673857 [5/23] - in /httpd/httpd/branches/2.2.x/docs/manual: ./
howto/ misc/ mod/ programs/ vhosts/
Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_authnz_ldap.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_authnz_ldap.html.fr?rev=1673857&r1=1673856&r2=1673857&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_authnz_ldap.html.fr (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_authnz_ldap.html.fr Wed Apr 15 16:36:04 2015
@@ -98,6 +98,420 @@ connexion</a></li>
<li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a> <a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si d'autres fournisseurs d'authentification
+doivent être utilisés lorsqu'un utilisateur correspond à un DN, alors
+que le serveur ne parvient pas à se connecter avec les données
+d'authentification.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuhtoritative on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible dans les versions supérieures à 2.2.14</td></tr>
+</table>
+ <p>Par défaut, d'autres fournisseurs d'authentification ne sont
+ sollicités que si l'utilisateur ne correspond à aucun DN, mais pas
+ lorsque celui-ci correspond à un DN alors que le serveur ne parvient
+ pas à se connecter avec les données d'authentification. Si la
+ directive <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
+ définie à <em>off</em>, d'autres modules d'authentification seront
+ en mesure de valider l'utilisateur si l'identification LDAP (avec
+ les données d'authentification courantes) échoue pour une raison
+ quelconque.</p>
+ <p>Ceci permet à un utilisateur présent à la fois dans LDAP et dans
+ <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de
+ s'authentifier lorsque le serveur LDAP est disponible alors que son
+ compte est bloqué ou que son mot de passe est inutilisable.</p>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
+<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbinddn" id="authldapbinddn">Directive</a> <a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
+LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Cette directive permet de définir un DN optionnel pour se
+ connecter au serveur afin d'y rechercher des entrées. Si aucun DN
+ n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
+ connexion anonyme.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbindpassword" id="authldapbindpassword">Directive</a> <a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
+connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><em>exec:</em> est disponible depuis la version 2.2.25 du
+serveur HTTP Apache.</td></tr>
+</table>
+ <p>Cette directive permet de spécifier un mot de passe à utiliser en
+ conjonction avec le DN de connexion. Notez que ce mot de passe
+ constitue en général une donnée sensible, et doit donc être protégé
+ de manière appropriée. Vous ne devez utiliser les directives
+ <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
+ vous en avez vraiment besoin pour effectuer une recherche dans
+ l'annuaire.</p>
+
+ <p>Si la chaîne spécifiée comme mot de passe commence par exec: , la
+ commande correspondante est exécutée, et c'est la première ligne qui
+ sera renvoyée par la commande sur la sortie standard qui sera
+ utilisée comme mot de passe.</p>
+<div class="example"><pre># Mot de passe spécifié directement
+AuthLDAPBindPassword secret
+
+# Exécution de /path/to/program pour obtenir le mot de passe
+AuthLDAPBindPassword exec:/path/to/program
+
+# Exécution de /path/to/program avec un argument pour obtenir le mot de passe
+AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a> <a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
+langage/jeu de caractères</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
+ de définir le chemin du fichier de configuration de la
+ correspondance langage/jeu de caractères. <var>chemin-fichier</var>
+ est un chemin relatif au répertoire défini par la directive
+ <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
+ de correspondances extension de langage/jeu de caractères. La
+ plupart des administrateurs utilisent le fichier
+ <code>charset.conv</code> fourni qui associe les extensions de
+ langage courantes à leurs jeux de caractères.</p>
+
+ <p>Le fichier contient des lignes au format suivant :</p>
+
+ <div class="example"><p><code>
+ <var>extension de langage</var> <var>jeu de caractères</var>
+ [<var>Nom du langage</var>] ...
+ </code></p></div>
+
+ <p>L'extension est insensible à la casse. Les lignes vides et les
+ lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a> <a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Lorsque cette directive est définie à on,
+ <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
+ comparer les DNs. Il s'agit de la seule méthode infaillible pour
+ comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
+ dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
+ comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
+ directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
+ simple comparaison de chaînes. Cette dernière approche peut produire
+ de faux négatifs, mais elle est beaucoup plus rapide. Notez
+ cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
+ la comparaison de DNs dans la plupart des situations.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a> <a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>A quel moment le module va déréférencer les
+alias</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases Always</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Cette directive permet de spécifier à quel moment
+ <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
+ des opérations liées à LDAP. La valeur par défaut est
+ <code>always</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a> <a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
+utilisateur à un groupe.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Cette directive permet de spécifier quel attribut LDAP est
+ utilisé pour vérifier l'appartenance d'un utilisateur à un
+ groupe. On peut spécifier plusieurs attributs en répétant cette
+ directive plusieurs fois. Si la directive n'est pas définie,
+ <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
+ <code>member</code> et <code>uniquemember</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
+appartenance à un groupe</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Lorsqu'elle est définie à <code>on</code>, cette directive
+ indique que c'est le DN de l'utilisateur qui doit être utilisé pour
+ vérifier son appartenance à un groupe. Dans le cas contraire, c'est
+ le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
+ le client envoie le nom d'utilisateur <code>bjenson</code>, qui
+ correspond au DN LDAP <code>cn=Babs Jenson,o=Airius</code>. Si la
+ directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
+ vérifier si <code>cn=Babs Jenson, o=Airius</code> est un membre du
+ groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+ vérifiera si <code>bjenson</code> est un membre du groupe.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a> <a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a></h2>
+<table class="directive">
+<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
+requête de l'utilisateur sera utilisée pour définir la variable
+d'environnement REMOTE_USER</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Lorsque cette directive est définie, la variable d'environnement
+ <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
+ spécifié. Assurez-vous que cet attribut soit bien inclus dans la
+ liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
+ le cas contraire, cette directive n'aurait aucun effet. Si elle est
+ présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
+ peut s'avérer utile par exemple, si vous souhaitez que les
+ utilisateurs se connectent à un site web en utilisant leur adresse
+ email, alors qu'une application sous-jacente nécessite un nom
+ d'utilisateur comme identifiant.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a> <a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
+d'environnement REMOTE_USER</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Lorsque cette directive est à on, la variable d'environnement
+ <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
+ de l'utilisateur authentifié, et non plus avec simplement le nom
+ d'utilisateur fourni par le client. Elle est définie à off par
+ défaut.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapurl" id="authldapurl">Directive</a> <a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
+recherche LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
+ paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
+ syntaxe de l'URL est :</p>
+<div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
+ <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
+ LDAP, la syntaxe sera :</p>
+<div class="example"><p><code>AuthLDAPUrl "ldap://ldap1.example.com
+ldap2.example.com/dc=..."</code></p></div>
+
+<dl>
+<dt>ldap</dt>
+
+ <dd>Pour ldap non sécurisé, utilisez la chaîne
+ <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
+ chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
+ Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
+
+<dt>hôte:port</dt>
+
+ <dd>
+ <p>Il s'agit du nom/port du serveur ldap
+ (dont la valeur par défaut est
+ <code>localhost:389</code> pour <code>ldap</code>, et
+ <code>localhost:636</code> pour <code>ldaps</code>). Pour
+ spécifier plusieurs serveurs LDAP redondants, indiquez
+ simplement leur liste en les séparant par des espaces.
+ <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
+ à chacun des serveurs jusqu'à ce qu'il parvienne à se
+ connecter avec succès.</p>
+
+ <p>lorsqu'une connection a été établie avec un serveur, elle
+ reste active pendant toute la durée de vie du processus
+ <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
+ cesse de fonctionner.</p>
+
+ <p>Si le serveur LDAP cesse de fonctionner, et ainsi
+ interrompt une
+ connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
+ de se reconnecter en commençant par le premier serveur de la
+ liste, et ainsi de suite avec les serveurs redondants
+ suivants. Notez que ce processus n'a rien à voir avec une
+ véritable recherche de type round-robin.</p>
+ </dd>
+
+<dt>DN-de-base</dt>
+
+ <dd>Le DN de la branche de l'annuaire à partir de laquelle
+ toutes les recherches seront lancées. Il doit au moins
+ correspondre à la racine de votre annuaire, mais vous pouvez
+ aussi indiquer une branche plus spécifique.</dd>
+
+<dt>attribut</dt>
+
+ <dd>Il s'agit de l'attribut à utiliser pour la recherche.
+ Bien que la RFC
+ 2255 autorise une liste d'attributs séparés par des virgules,
+ seul le premier sera retenu, sans tenir compte des autres
+ attributs fournis. Si aucun attribut n'est fourni, l'attribut
+ par défaut est <code>uid</code>. Il est judicieux de choisir un
+ attribut dont la valeur sera unique parmi toutes les entrées de
+ la branche de l'annuaire que vous aurez définie.</dd>
+
+<dt>portée</dt>
+
+ <dd>Il s'agit de la portée (scope) de la recherche. Elle peut prendre
+ les valeurs <code>one</code> ou <code>sub</code>. Notez que la
+ RFC 2255 supporte aussi une portée de valeur <code>base</code>,
+ mais cette dernière n'est pas supportée par le module. Si la
+ portée n'est pas définie, ou si elle est définie à
+ <code>base</code>, c'est la valeur de portée par défaut
+ <code>sub</code> qui sera utilisée.</dd>
+
+<dt>filtre</dt>
+
+ <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
+ filtre n'est spécifié, le filtre par défaut
+ <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
+ une recherche de tous les types d'objets de l'arborescence. La
+ taille des filtres est limitée à environ 8000 caractères (valeur
+ de la macro <code>MAX_STRING_LEN</code> dans le code source
+ d'Apache), ce qui s'avère plus que suffisant pour la plupart des
+ applications.</dd>
+</dl>
+
+ <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
+ fournis par le client HTTP sont combinés pour créer un filtre de
+ recherche du style :
+ <code>(&(<em>filtre</em>)(<em>attribut</em>
+ =<em>nom-utilisateur</em>))</code>.</p>
+
+ <p>Par exemple, considérons l'URL
+ <code>ldap://ldap.airius.com/o=Airius?cn?sub?(posixid=*)</code>.
+ Lorsqu'un client tentera de se connecter en utilisant le nom
+ d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
+ : <code>(&(posixid=*)(cn=Babs Jenson))</code>.</p>
+
+ <p>On peut encore ajouter un paramètre optionnel pour permettre à
+ l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
+ prendre l'une des valeurs suivantes :</p>
+
+<dl>
+ <dt>NONE</dt>
+ <dd>Etablit une connexion non sécurisée sur le port LDAP par
+ défaut, ce qui est équivalent à <code>ldap://</code> sur le port
+ 389.</dd>
+ <dt>SSL</dt>
+ <dd>Etablit une connexion sécurisée sur le port LDAP sécurisé
+ par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
+ <dt>TLS | STARTTLS</dt>
+ <dd>Etablit une connexion sécurisée par élévation de niveau sur
+ le port LDAP par défaut. Cette connexion sera initialisée sur le
+ port 389 par défaut, puis élevée à un niveau de connexion
+ sécurisée sur le même port.</dd>
+</dl>
+
+ <p>Voir plus haut pour des exemples d'URLs définies par la directive
+ <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
+
+ <p>Lorsque la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> a été définie dans
+ un contexte particulier, et si un autre module a effectué
+ l'authentification correspondant à la requête, le serveur essaiera
+ de faire correspondre le nom d'utilisateur à un DN au cours du
+ processus d'autorisation, que des prérequis LDAP spécifiques soient
+ présents ou non. Pour ignorer les échecs de mise en correspondance
+ d'un nom d'utilisateur avec un DN au cours du processus
+ d'autorisation, définissez <code class="directive"><a href="#authzldapauthoritative">
+ AuthzLDAPAuthoritative</a></code> à "off".</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authzldapauthoritative" id="authzldapauthoritative">Directive</a> <a name="AuthzLDAPAuthoritative" id="AuthzLDAPAuthoritative">AuthzLDAPAuthoritative</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Empêche tout autre module d'authentification d'authentifier
+l'utilisateur si le module courant échoue.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzLDAPAuthoritative on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthzLDAPAuthoritative on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+ <p>Cette directive doit être définie à <code>off</code> si ce module
+ doit confier l'autorisation de l'utilisateur à d'autres modules
+ d'autorisation en cas d'échec. Le contrôle n'est passé à des modules
+ de plus bas niveau que s'il n'existe aucun DN ou règle qui
+ corresponde au nom d'utilisateur fourni (tel qu'il est transmis par
+ le client).</p>
+ <p>Lorsqu'aucune directive LDAP <code class="directive"><a href="../mod/core.html#require">Require</a></code> spécifique n'est utilisée,
+ l'autorisation peut être confiée à d'autres modules, comme si
+ <code class="directive"><a href="#authzldapauthoritative">AuthzLDAPAuthoritative</a></code> était
+ définie à <code>off</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="contents" id="contents">Sommaire</a></h2>
@@ -364,769 +778,355 @@ connexion</a></li>
d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
d'utilisateur contient des espaces, il doit être entouré de
guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
- en utilisant une directive <code>Require ldap-user</code> par
- utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
- <code>ldap://ldap/o=Airius?cn</code> (spécifiant donc que l'attribut
- <code>cn</code> sera utilisé pour les recherches), on pourra
- utiliser les directives Require suivantes pour restreindre l'accès
- :</p>
-<div class="example"><p><code>
-Require ldap-user "Barbara Jenson"<br />
-Require ldap-user "Fred User"<br />
-Require ldap-user "Joe Manager"<br />
-</code></p></div>
-
- <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
- cette directive, Barbara Jenson peut s'authentifier comme
- <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
- <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
- LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
- toutes les valeurs de l'attribut dans l'entrée LDAP de
- l'utilisateur.</p>
-
- <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
- l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
- ci-dessus auraient pû être condensées en une seule ligne :</p>
-<div class="example"><p><code>Require ldap-user bjenson fuser jmanager</code></p></div>
-
-
-<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
-
- <p>Cette directive permet de spécifier un groupe LDAP dont les
- membres auront l'autorisation d'accès. Elle prend comme argument le
- DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
- guillemets. Par exemple, supposons que l'entrée suivante existe dans
- l'annuaire LDAP :</p>
-<div class="example"><p><code>
-dn: cn=Administrators, o=Airius<br />
-objectClass: groupOfUniqueNames<br />
-uniqueMember: cn=Barbara Jenson, o=Airius<br />
-uniqueMember: cn=Fred User, o=Airius<br />
-</code></p></div>
-
- <p>La directive suivante autoriserait alors l'accès à Fred et
- Barbara :</p>
-<div class="example"><p><code>Require ldap-group cn=Administrators, o=Airius</code></p></div>
-
-
-
- <p>Le comportement de cette directive est modifié par les directives
- <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code> et
- <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>.</p>
-
-
-<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
-
- <p>La directive <code>Require ldap-dn</code> permet à
- l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
- Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
- le DN extrait de
- l'annuaire correspond au DN spécifié par la directive <code>Require
- ldap-dn</code>, l'autorisation d'accès est accordée. Note :
- n'entourez pas Le DN de guillemets.</p>
-
- <p>La directive suivante accorderait l'accès à un DN spécifique
- :</p>
-<div class="example"><p><code>Require ldap-dn cn=Barbara Jenson, o=Airius</code></p></div>
-
- <p>Le comportement ce cette directive est modifié par la directive
- <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
-
-
-<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
-
- <p>La directive <code>Require ldap-attribute</code> permet à
- l'administrateur d'accorder l'autorisation d'accès en fonction des
- attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
- valeur de l'attribut dans l'annuaire correspond à la valeur
- spécifiée par la directive, l'autorisation d'accès est accordée.</p>
-
- <p>La directive suivante accorderait l'autorisation d'accès à tout
- utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
-
- <div class="example"><p><code>Require ldap-attribute employeeType=actif</code></p></div>
-
- <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
- même directive en les séparant par des espaces, ou en définissant
- plusieurs directives <code>Require ldap-attribute</code>. La logique
- sous-jacente à une liste de paires attribut/valeur est une opération
- OU. L'autorisation d'accès sera accordée si au moins une paire
- attribut/valeur de la liste spécifiée correspond à la paire
- attribut/valeur de l'utilisateur authentifié. Si elle contient des
- espaces, la valeur, et seulement la valeur, doit être entourée de
- guillemets.</p>
-
- <p>La directive suivante accorderait l'autorisation d'accès à tout
- utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
- donc l'attribut status aurait pour valeur "actif" :</p>
-
- <div class="example"><p><code>Require ldap-attribute city="San Jose" status=actif</code></p></div>
-
-
-
-<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
-
- <p>La directive <code>Require ldap-filter</code> permet à
- l'administrateur d'accorder l'autorisation d'accès en fonction d'un
- filtre de recherche LDAP complexe. L'autorisation d'accès est
- accordée si le DN renvoyé par le filtre de recherche correspond au
- DN de l'utilisateur authentifié.</p>
-
- <p>La directive suivante accorderait l'autorisation d'accès à tout
- utilisateur possédant un téléphone cellulaire et faisant partie du
- département "marketing" :</p>
-
- <div class="example"><p><code>Require ldap-filter &(cell=*)(department=marketing)</code></p></div>
-
- <p>Alors que la directive <code>Require ldap-attribute</code> se
- contente d'une simple comparaison d'attributs, la directive
- <code>Require ldap-filter</code> effectue une opération de recherche
- dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
- Si une simple comparaison d'attributs suffit, l'opération de
- comparaison effectuée par <code>ldap-attribute</code> sera plus
- rapide que l'opération de recherche effectuée par
- <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
- LDAP de grande taille.</p>
-
-
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-
- <ul>
- <li>
- Accorde l'autorisation d'accès à tout utilisateur présent dans
- l'annuaire LDAP, en utilisant son UID pour effectuer la
- recherche :
-<div class="example"><p><code>
-AuthLDAPURL "ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)"<br />
-Require valid-user
-</code></p></div>
- </li>
-
- <li>
- L'exemple suivant est similaire au précédent, mais les champs
- dont les valeurs par défaut conviennent sont omis. Notez aussi
- la présence d'un annuaire LDAP redondant :
-<div class="example"><p><code>AuthLDAPURL "ldap://ldap1.airius.com ldap2.airius.com/ou=People, o=Airius"<br />
-Require valid-user
-</code></p></div>
- </li>
-
- <li>
- Encore un exemple similaire aux précédents, mais cette fois,
- c'est l'attribut cn qui est utilisé pour la recherche à la place
- de l'UID. Notez que ceci peut poser problème si plusieurs
- utilisateurs de l'annuaire partagent le même <code>cn</code>,
- car une recherche sur le <code>cn</code> <strong>doit</strong>
- retourner une entrée et une seule. C'est pourquoi cette
- approche n'est pas recommandée : il est préférable de choisir un
- attribut de votre annuaire dont l'unicité soit garantie, comme
- <code>uid</code>.
-<div class="example"><p><code>
-AuthLDAPURL "ldap://ldap.airius.com/ou=People, o=Airius?cn"<br />
-Require valid-user
-</code></p></div>
- </li>
-
- <li>
- Accorde l'autorisation d'accès à tout utilisateur appartenant au
- groupe Administrateurs. Les utilisateurs doivent s'authentifier
- en utilisant leur UID :
-<div class="example"><p><code>
-AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid<br />
-Require ldap-group cn=Administrators, o=Airius
-</code></p></div>
- </li>
-
- <li>
- Pour l'exemple suivant, on suppose que tout utilisateur de chez
- Airius qui dispose d'un bippeur alphanumérique possèdera un
- attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
- (authentifiés via leur UID) se verront accorder l'autorisation
- d'accès :
-<div class="example"><p><code>
-AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(qpagePagerID=*)<br />
-Require valid-user
-</code></p></div>
- </li>
-
- <li>
- <p>L'exemple suivant illustre la puissance des filtres pour
- effectuer des requêtes complexes. Sans les filtres, il aurait
- été nécessaire de créer un nouveau groupe LDAP et de s'assurer
- de la synchronisation des membres du groupe avec les
- utilisateurs possédant un bippeur. Tout devient limpide avec les
- filtres. Nous avons pour but d'accorder l'autorisation d'accès à
- tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
- qui ne possède pas de bippeur, mais doit tout de même pouvoir
- accéder à la ressource :</p>
-<div class="example"><p><code>
-AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(|(qpagePagerID=*)(uid=jmanager))<br />
-Require valid-user
-</code></p></div>
-
- <p>Ce dernier exemple peut sembler confus au premier abord ; en
- fait, il permet de mieux comprendre à quoi doit ressembler le
- filtre en fonction de l'utilisateur qui se connecte. Si Fred
- User se connecte en tant que <code>fuser</code>, le filtre devra
- ressembler à :</p>
-
- <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
-
- <p>Un recherche avec le filtre ci-dessus ne retournera un
- résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
- Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
- devra ressembler à :</p>
-
- <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
-
- <p>Un recherche avec le filtre ci-dessus retournera un
- résultat positif que <em>jmanager</em> dispose d'un
- bippeur ou non</p>
- </li>
- </ul>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
+ en utilisant une directive <code>Require ldap-user</code> par
+ utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
+ <code>ldap://ldap/o=Airius?cn</code> (spécifiant donc que l'attribut
+ <code>cn</code> sera utilisé pour les recherches), on pourra
+ utiliser les directives Require suivantes pour restreindre l'accès
+ :</p>
+<div class="example"><p><code>
+Require ldap-user "Barbara Jenson"<br />
+Require ldap-user "Fred User"<br />
+Require ldap-user "Joe Manager"<br />
+</code></p></div>
- <p>Pour l'utilisation de TLS, voir les directives du module
- <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>
+ <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
+ cette directive, Barbara Jenson peut s'authentifier comme
+ <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
+ <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
+ LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
+ toutes les valeurs de l'attribut dans l'entrée LDAP de
+ l'utilisateur.</p>
- <p>Un second paramètre optionnel peut être ajouté à la directive
- <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
- remplacer le type de connexion par défaut défini par la directive
- <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
- permettra de promouvoir la connexion établie via une URL du type
- <em>ldap://</em> au statut de connection sécurisée sur le même
- port.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
+ <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
+ l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
+ ci-dessus auraient pû être condensées en une seule ligne :</p>
+<div class="example"><p><code>Require ldap-user bjenson fuser jmanager</code></p></div>
- <p>Pour l'utilisation de SSL, voir les directives du module
- <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>
- <p>Pour spécifier un serveur LDAP sécurisé, utilisez
- <em>ldaps://</em> au lieu de
- <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="exposed" id="exposed">Mise à disposition des informations de
-connexion</a></h2>
+<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
- <p>Au cours du processus d'authentification, les attributs LDAP
- spécifiés par la directive <code class="directive"><a href="#authldapurl">AuthLDAPUrl</a></code> sont enregistrés
- dans des variables d'environnement préfixées par la chaîne
- "AUTHENTICATE_".</p>
+ <p>Cette directive permet de spécifier un groupe LDAP dont les
+ membres auront l'autorisation d'accès. Elle prend comme argument le
+ DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
+ guillemets. Par exemple, supposons que l'entrée suivante existe dans
+ l'annuaire LDAP :</p>
+<div class="example"><p><code>
+dn: cn=Administrators, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Barbara Jenson, o=Airius<br />
+uniqueMember: cn=Fred User, o=Airius<br />
+</code></p></div>
- <p>Si les champs attribut contiennent le nom, le CN et le numéro de
- téléphone d'un utilisateur, un programme CGI pourra accéder à ces
- informations sans devoir effectuer une autre requête LDAP pour
- les extraire de l'annuaire.</p>
+ <p>La directive suivante autoriserait alors l'accès à Fred et
+ Barbara :</p>
+<div class="example"><p><code>Require ldap-group cn=Administrators, o=Airius</code></p></div>
- <p>Ceci a pour effet de simplifier considérablement le code et la
- configuration nécessaire de certaines applications web.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
- FrontPage avec mod_authnz_ldap</a></h2>
- <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
- spécifiques à FrontPage-web (c'est à dire les modules
- <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
- <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
- l'authentification. Malheureusement, il ne suffit pas de modifier
- l'authentification LDAP en ajoutant les directives appropriées, car
- ceci corromprait les formulaires de <em>Permissions</em> dans le
- client FrontPage, qui sont censés modifier les fichiers
- d'autorisation standards au format texte.</p>
+ <p>Le comportement de cette directive est modifié par les directives
+ <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code> et
+ <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>.</p>
- <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
- l'authentification LDAP consiste à ajouter les directives suivantes
- à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
- le site web :</p>
-<div class="example"><pre>AuthLDAPURL "l'url"
-AuthGroupFile <em>mon-fichier-de-groupes</em>
-Require group <em>mon-fichier-de-groupes</em>
-</pre></div>
-<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
+<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
- <p>FrontPage restreint l'accès à un site web en ajoutant la
- directive <code>Require valid-user</code> aux fichiers
- <code>.htaccess</code>. La directive <code>Require valid-user</code>
- permettra l'accès à tout utilisateur valide <em>du point de vue
- LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
- dans l'annuaire LDAP sera considéré comme valide, alors que
- FrontPage ne considère comme valides que les utilisateurs
- enregistrés dans le fichier des utilisateurs local. En remplaçant
- l'autorisation par groupe LDAP par une autorisation par fichier de
- groupe, Apache sera en mesure de consulter le fichier des
- utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
- - lors du processus d'autorisation des utilisateurs.</p>
+ <p>La directive <code>Require ldap-dn</code> permet à
+ l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
+ Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
+ le DN extrait de
+ l'annuaire correspond au DN spécifié par la directive <code>Require
+ ldap-dn</code>, l'autorisation d'accès est accordée. Note :
+ n'entourez pas Le DN de guillemets.</p>
- <p>Une fois les directives ajoutées selon ce qui précède, les
- utilisateurs FrontPage pourront effectuer toutes les opérations de
- gestion à partir du client FrontPage.</p>
+ <p>La directive suivante accorderait l'accès à un DN spécifique
+ :</p>
+<div class="example"><p><code>Require ldap-dn cn=Barbara Jenson, o=Airius</code></p></div>
+ <p>Le comportement ce cette directive est modifié par la directive
+ <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
-<h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
- <ul>
- <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
- l'authentification doit aussi être valide pour le fichier des
- utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
- l'UID est idéal.</li>
+<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
- <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
- administrateurs de FrontPage doivent choisir des noms
- d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
- raisons évidentes). De même, le mot de passe que l'administrateur
- entre dans le formulaire est ignoré, car pour l'authentification,
- Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
- de passe enregistré dans le fichier des utilisateurs, ce qui peut
- semer la confusion parmi les administrateurs web.</li>
+ <p>La directive <code>Require ldap-attribute</code> permet à
+ l'administrateur d'accorder l'autorisation d'accès en fonction des
+ attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
+ valeur de l'attribut dans l'annuaire correspond à la valeur
+ spécifiée par la directive, l'autorisation d'accès est accordée.</p>
-
- <li>Pour supporter FrontPage, Apache doit être compilé avec
- <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>
- et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
- qu'Apache doit utiliser le fichier de groupes de
- <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
- d'accès d'un utilisateur au site web FrontPage.</li>
+ <p>La directive suivante accorderait l'autorisation d'accès à tout
+ utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
- <li>Les directives doivent être placées dans les fichiers
- <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
- 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
- où se trouve la liste des utilisateurs valides,
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
- la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
- dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
- de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
- même fichier <code>.htaccess</code> que les directives FrontPage,
- la configuration ne fonctionnera pas, car
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
- traiter le fichier <code>.htaccess</code>, et par conséquent ne
- pourra jamais trouver le fichier des utilisateurs géré par
- FrontPage.</li>
- </ul>
+ <div class="example"><p><code>Require ldap-attribute employeeType=actif</code></p></div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a> <a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si d'autres fournisseurs d'authentification
-doivent être utilisés lorsqu'un utilisateur correspond à un DN, alors
-que le serveur ne parvient pas à se connecter avec les données
-d'authentification.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuhtoritative on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible dans les versions supérieures à 2.2.14</td></tr>
-</table>
- <p>Par défaut, d'autres fournisseurs d'authentification ne sont
- sollicités que si l'utilisateur ne correspond à aucun DN, mais pas
- lorsque celui-ci correspond à un DN alors que le serveur ne parvient
- pas à se connecter avec les données d'authentification. Si la
- directive <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
- définie à <em>off</em>, d'autres modules d'authentification seront
- en mesure de valider l'utilisateur si l'identification LDAP (avec
- les données d'authentification courantes) échoue pour une raison
- quelconque.</p>
- <p>Ceci permet à un utilisateur présent à la fois dans LDAP et dans
- <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de
- s'authentifier lorsque le serveur LDAP est disponible alors que son
- compte est bloqué ou que son mot de passe est inutilisable.</p>
+ <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
+ même directive en les séparant par des espaces, ou en définissant
+ plusieurs directives <code>Require ldap-attribute</code>. La logique
+ sous-jacente à une liste de paires attribut/valeur est une opération
+ OU. L'autorisation d'accès sera accordée si au moins une paire
+ attribut/valeur de la liste spécifiée correspond à la paire
+ attribut/valeur de l'utilisateur authentifié. Si elle contient des
+ espaces, la valeur, et seulement la valeur, doit être entourée de
+ guillemets.</p>
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
-<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbinddn" id="authldapbinddn">Directive</a> <a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
-LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Cette directive permet de définir un DN optionnel pour se
- connecter au serveur afin d'y rechercher des entrées. Si aucun DN
- n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
- connexion anonyme.</p>
+ <p>La directive suivante accorderait l'autorisation d'accès à tout
+ utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
+ donc l'attribut status aurait pour valeur "actif" :</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbindpassword" id="authldapbindpassword">Directive</a> <a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
-connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><em>exec:</em> est disponible depuis la version 2.2.25 du
-serveur HTTP Apache.</td></tr>
-</table>
- <p>Cette directive permet de spécifier un mot de passe à utiliser en
- conjonction avec le DN de connexion. Notez que ce mot de passe
- constitue en général une donnée sensible, et doit donc être protégé
- de manière appropriée. Vous ne devez utiliser les directives
- <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
- vous en avez vraiment besoin pour effectuer une recherche dans
- l'annuaire.</p>
+ <div class="example"><p><code>Require ldap-attribute city="San Jose" status=actif</code></p></div>
- <p>Si la chaîne spécifiée comme mot de passe commence par exec: , la
- commande correspondante est exécutée, et c'est la première ligne qui
- sera renvoyée par la commande sur la sortie standard qui sera
- utilisée comme mot de passe.</p>
-<div class="example"><pre># Mot de passe spécifié directement
-AuthLDAPBindPassword secret
-# Exécution de /path/to/program pour obtenir le mot de passe
-AuthLDAPBindPassword exec:/path/to/program
-# Exécution de /path/to/program avec un argument pour obtenir le mot de passe
-AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre></div>
+<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+ <p>La directive <code>Require ldap-filter</code> permet à
+ l'administrateur d'accorder l'autorisation d'accès en fonction d'un
+ filtre de recherche LDAP complexe. L'autorisation d'accès est
+ accordée si le DN renvoyé par le filtre de recherche correspond au
+ DN de l'utilisateur authentifié.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a> <a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
-langage/jeu de caractères</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
- de définir le chemin du fichier de configuration de la
- correspondance langage/jeu de caractères. <var>chemin-fichier</var>
- est un chemin relatif au répertoire défini par la directive
- <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
- de correspondances extension de langage/jeu de caractères. La
- plupart des administrateurs utilisent le fichier
- <code>charset.conv</code> fourni qui associe les extensions de
- langage courantes à leurs jeux de caractères.</p>
+ <p>La directive suivante accorderait l'autorisation d'accès à tout
+ utilisateur possédant un téléphone cellulaire et faisant partie du
+ département "marketing" :</p>
- <p>Le fichier contient des lignes au format suivant :</p>
+ <div class="example"><p><code>Require ldap-filter &(cell=*)(department=marketing)</code></p></div>
- <div class="example"><p><code>
- <var>extension de langage</var> <var>jeu de caractères</var>
- [<var>Nom du langage</var>] ...
- </code></p></div>
+ <p>Alors que la directive <code>Require ldap-attribute</code> se
+ contente d'une simple comparaison d'attributs, la directive
+ <code>Require ldap-filter</code> effectue une opération de recherche
+ dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
+ Si une simple comparaison d'attributs suffit, l'opération de
+ comparaison effectuée par <code>ldap-attribute</code> sera plus
+ rapide que l'opération de recherche effectuée par
+ <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
+ LDAP de grande taille.</p>
- <p>L'extension est insensible à la casse. Les lignes vides et les
- lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a> <a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Lorsque cette directive est définie à on,
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
- comparer les DNs. Il s'agit de la seule méthode infaillible pour
- comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
- dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
- comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
- directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
- simple comparaison de chaînes. Cette dernière approche peut produire
- de faux négatifs, mais elle est beaucoup plus rapide. Notez
- cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
- la comparaison de DNs dans la plupart des situations.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a> <a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>A quel moment le module va déréférencer les
-alias</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases Always</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Cette directive permet de spécifier à quel moment
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
- des opérations liées à LDAP. La valeur par défaut est
- <code>always</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a> <a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
-utilisateur à un groupe.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Cette directive permet de spécifier quel attribut LDAP est
- utilisé pour vérifier l'appartenance d'un utilisateur à un
- groupe. On peut spécifier plusieurs attributs en répétant cette
- directive plusieurs fois. Si la directive n'est pas définie,
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
- <code>member</code> et <code>uniquemember</code>.</p>
+ <ul>
+ <li>
+ Accorde l'autorisation d'accès à tout utilisateur présent dans
+ l'annuaire LDAP, en utilisant son UID pour effectuer la
+ recherche :
+<div class="example"><p><code>
+AuthLDAPURL "ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)"<br />
+Require valid-user
+</code></p></div>
+ </li>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
-appartenance à un groupe</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Lorsqu'elle est définie à <code>on</code>, cette directive
- indique que c'est le DN de l'utilisateur qui doit être utilisé pour
- vérifier son appartenance à un groupe. Dans le cas contraire, c'est
- le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
- le client envoie le nom d'utilisateur <code>bjenson</code>, qui
- correspond au DN LDAP <code>cn=Babs Jenson,o=Airius</code>. Si la
- directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
- vérifier si <code>cn=Babs Jenson, o=Airius</code> est un membre du
- groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
- vérifiera si <code>bjenson</code> est un membre du groupe.</p>
+ <li>
+ L'exemple suivant est similaire au précédent, mais les champs
+ dont les valeurs par défaut conviennent sont omis. Notez aussi
+ la présence d'un annuaire LDAP redondant :
+<div class="example"><p><code>AuthLDAPURL "ldap://ldap1.airius.com ldap2.airius.com/ou=People, o=Airius"<br />
+Require valid-user
+</code></p></div>
+ </li>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a> <a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a></h2>
-<table class="directive">
-<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
-requête de l'utilisateur sera utilisée pour définir la variable
-d'environnement REMOTE_USER</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Lorsque cette directive est définie, la variable d'environnement
- <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
- spécifié. Assurez-vous que cet attribut soit bien inclus dans la
- liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
- le cas contraire, cette directive n'aurait aucun effet. Si elle est
- présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
- peut s'avérer utile par exemple, si vous souhaitez que les
- utilisateurs se connectent à un site web en utilisant leur adresse
- email, alors qu'une application sous-jacente nécessite un nom
- d'utilisateur comme identifiant.</p>
+ <li>
+ Encore un exemple similaire aux précédents, mais cette fois,
+ c'est l'attribut cn qui est utilisé pour la recherche à la place
+ de l'UID. Notez que ceci peut poser problème si plusieurs
+ utilisateurs de l'annuaire partagent le même <code>cn</code>,
+ car une recherche sur le <code>cn</code> <strong>doit</strong>
+ retourner une entrée et une seule. C'est pourquoi cette
+ approche n'est pas recommandée : il est préférable de choisir un
+ attribut de votre annuaire dont l'unicité soit garantie, comme
+ <code>uid</code>.
+<div class="example"><p><code>
+AuthLDAPURL "ldap://ldap.airius.com/ou=People, o=Airius?cn"<br />
+Require valid-user
+</code></p></div>
+ </li>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a> <a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
-d'environnement REMOTE_USER</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Lorsque cette directive est à on, la variable d'environnement
- <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
- de l'utilisateur authentifié, et non plus avec simplement le nom
- d'utilisateur fourni par le client. Elle est définie à off par
- défaut.</p>
+ <li>
+ Accorde l'autorisation d'accès à tout utilisateur appartenant au
+ groupe Administrateurs. Les utilisateurs doivent s'authentifier
+ en utilisant leur UID :
+<div class="example"><p><code>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid<br />
+Require ldap-group cn=Administrators, o=Airius
+</code></p></div>
+ </li>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapurl" id="authldapurl">Directive</a> <a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
-recherche LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
- paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
- syntaxe de l'URL est :</p>
-<div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
- <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
- LDAP, la syntaxe sera :</p>
-<div class="example"><p><code>AuthLDAPUrl "ldap://ldap1.example.com
-ldap2.example.com/dc=..."</code></p></div>
+ <li>
+ Pour l'exemple suivant, on suppose que tout utilisateur de chez
+ Airius qui dispose d'un bippeur alphanumérique possèdera un
+ attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
+ (authentifiés via leur UID) se verront accorder l'autorisation
+ d'accès :
+<div class="example"><p><code>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(qpagePagerID=*)<br />
+Require valid-user
+</code></p></div>
+ </li>
+
+ <li>
+ <p>L'exemple suivant illustre la puissance des filtres pour
+ effectuer des requêtes complexes. Sans les filtres, il aurait
+ été nécessaire de créer un nouveau groupe LDAP et de s'assurer
+ de la synchronisation des membres du groupe avec les
+ utilisateurs possédant un bippeur. Tout devient limpide avec les
+ filtres. Nous avons pour but d'accorder l'autorisation d'accès à
+ tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
+ qui ne possède pas de bippeur, mais doit tout de même pouvoir
+ accéder à la ressource :</p>
+<div class="example"><p><code>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(|(qpagePagerID=*)(uid=jmanager))<br />
+Require valid-user
+</code></p></div>
-<dl>
-<dt>ldap</dt>
+ <p>Ce dernier exemple peut sembler confus au premier abord ; en
+ fait, il permet de mieux comprendre à quoi doit ressembler le
+ filtre en fonction de l'utilisateur qui se connecte. Si Fred
+ User se connecte en tant que <code>fuser</code>, le filtre devra
+ ressembler à :</p>
- <dd>Pour ldap non sécurisé, utilisez la chaîne
- <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
- chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
- Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
+ <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
-<dt>hôte:port</dt>
+ <p>Un recherche avec le filtre ci-dessus ne retournera un
+ résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
+ Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
+ devra ressembler à :</p>
- <dd>
- <p>Il s'agit du nom/port du serveur ldap
- (dont la valeur par défaut est
- <code>localhost:389</code> pour <code>ldap</code>, et
- <code>localhost:636</code> pour <code>ldaps</code>). Pour
- spécifier plusieurs serveurs LDAP redondants, indiquez
- simplement leur liste en les séparant par des espaces.
- <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
- à chacun des serveurs jusqu'à ce qu'il parvienne à se
- connecter avec succès.</p>
+ <div class="example"><p><code>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
- <p>lorsqu'une connection a été établie avec un serveur, elle
- reste active pendant toute la durée de vie du processus
- <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
- cesse de fonctionner.</p>
+ <p>Un recherche avec le filtre ci-dessus retournera un
+ résultat positif que <em>jmanager</em> dispose d'un
+ bippeur ou non</p>
+ </li>
+ </ul>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
- <p>Si le serveur LDAP cesse de fonctionner, et ainsi
- interrompt une
- connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
- de se reconnecter en commençant par le premier serveur de la
- liste, et ainsi de suite avec les serveurs redondants
- suivants. Notez que ce processus n'a rien à voir avec une
- véritable recherche de type round-robin.</p>
- </dd>
+ <p>Pour l'utilisation de TLS, voir les directives du module
+ <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>
-<dt>DN-de-base</dt>
+ <p>Un second paramètre optionnel peut être ajouté à la directive
+ <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
+ remplacer le type de connexion par défaut défini par la directive
+ <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
+ permettra de promouvoir la connexion établie via une URL du type
+ <em>ldap://</em> au statut de connection sécurisée sur le même
+ port.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
- <dd>Le DN de la branche de l'annuaire à partir de laquelle
- toutes les recherches seront lancées. Il doit au moins
- correspondre à la racine de votre annuaire, mais vous pouvez
- aussi indiquer une branche plus spécifique.</dd>
+ <p>Pour l'utilisation de SSL, voir les directives du module
+ <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>
-<dt>attribut</dt>
+ <p>Pour spécifier un serveur LDAP sécurisé, utilisez
+ <em>ldaps://</em> au lieu de
+ <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exposed" id="exposed">Mise à disposition des informations de
+connexion</a></h2>
- <dd>Il s'agit de l'attribut à utiliser pour la recherche.
- Bien que la RFC
- 2255 autorise une liste d'attributs séparés par des virgules,
- seul le premier sera retenu, sans tenir compte des autres
- attributs fournis. Si aucun attribut n'est fourni, l'attribut
- par défaut est <code>uid</code>. Il est judicieux de choisir un
- attribut dont la valeur sera unique parmi toutes les entrées de
- la branche de l'annuaire que vous aurez définie.</dd>
+ <p>Au cours du processus d'authentification, les attributs LDAP
+ spécifiés par la directive <code class="directive"><a href="#authldapurl">AuthLDAPUrl</a></code> sont enregistrés
+ dans des variables d'environnement préfixées par la chaîne
+ "AUTHENTICATE_".</p>
-<dt>portée</dt>
+ <p>Si les champs attribut contiennent le nom, le CN et le numéro de
+ téléphone d'un utilisateur, un programme CGI pourra accéder à ces
+ informations sans devoir effectuer une autre requête LDAP pour
+ les extraire de l'annuaire.</p>
- <dd>Il s'agit de la portée (scope) de la recherche. Elle peut prendre
- les valeurs <code>one</code> ou <code>sub</code>. Notez que la
- RFC 2255 supporte aussi une portée de valeur <code>base</code>,
- mais cette dernière n'est pas supportée par le module. Si la
- portée n'est pas définie, ou si elle est définie à
- <code>base</code>, c'est la valeur de portée par défaut
- <code>sub</code> qui sera utilisée.</dd>
+ <p>Ceci a pour effet de simplifier considérablement le code et la
+ configuration nécessaire de certaines applications web.</p>
-<dt>filtre</dt>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
+ FrontPage avec mod_authnz_ldap</a></h2>
- <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
- filtre n'est spécifié, le filtre par défaut
- <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
- une recherche de tous les types d'objets de l'arborescence. La
- taille des filtres est limitée à environ 8000 caractères (valeur
- de la macro <code>MAX_STRING_LEN</code> dans le code source
- d'Apache), ce qui s'avère plus que suffisant pour la plupart des
- applications.</dd>
-</dl>
+ <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
+ spécifiques à FrontPage-web (c'est à dire les modules
+ <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
+ <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
+ l'authentification. Malheureusement, il ne suffit pas de modifier
+ l'authentification LDAP en ajoutant les directives appropriées, car
+ ceci corromprait les formulaires de <em>Permissions</em> dans le
+ client FrontPage, qui sont censés modifier les fichiers
+ d'autorisation standards au format texte.</p>
- <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
- fournis par le client HTTP sont combinés pour créer un filtre de
- recherche du style :
- <code>(&(<em>filtre</em>)(<em>attribut</em>
- =<em>nom-utilisateur</em>))</code>.</p>
+ <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
+ l'authentification LDAP consiste à ajouter les directives suivantes
+ à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
+ le site web :</p>
+<div class="example"><pre>AuthLDAPURL "l'url"
+AuthGroupFile <em>mon-fichier-de-groupes</em>
+Require group <em>mon-fichier-de-groupes</em>
+</pre></div>
- <p>Par exemple, considérons l'URL
- <code>ldap://ldap.airius.com/o=Airius?cn?sub?(posixid=*)</code>.
- Lorsqu'un client tentera de se connecter en utilisant le nom
- d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
- : <code>(&(posixid=*)(cn=Babs Jenson))</code>.</p>
+<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
- <p>On peut encore ajouter un paramètre optionnel pour permettre à
- l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
- prendre l'une des valeurs suivantes :</p>
+ <p>FrontPage restreint l'accès à un site web en ajoutant la
+ directive <code>Require valid-user</code> aux fichiers
+ <code>.htaccess</code>. La directive <code>Require valid-user</code>
+ permettra l'accès à tout utilisateur valide <em>du point de vue
+ LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
+ dans l'annuaire LDAP sera considéré comme valide, alors que
+ FrontPage ne considère comme valides que les utilisateurs
+ enregistrés dans le fichier des utilisateurs local. En remplaçant
+ l'autorisation par groupe LDAP par une autorisation par fichier de
+ groupe, Apache sera en mesure de consulter le fichier des
+ utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
+ - lors du processus d'autorisation des utilisateurs.</p>
-<dl>
- <dt>NONE</dt>
- <dd>Etablit une connexion non sécurisée sur le port LDAP par
- défaut, ce qui est équivalent à <code>ldap://</code> sur le port
- 389.</dd>
- <dt>SSL</dt>
- <dd>Etablit une connexion sécurisée sur le port LDAP sécurisé
- par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
- <dt>TLS | STARTTLS</dt>
- <dd>Etablit une connexion sécurisée par élévation de niveau sur
- le port LDAP par défaut. Cette connexion sera initialisée sur le
- port 389 par défaut, puis élevée à un niveau de connexion
- sécurisée sur le même port.</dd>
-</dl>
+ <p>Une fois les directives ajoutées selon ce qui précède, les
+ utilisateurs FrontPage pourront effectuer toutes les opérations de
+ gestion à partir du client FrontPage.</p>
- <p>Voir plus haut pour des exemples d'URLs définies par la directive
- <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
- <p>Lorsque la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> a été définie dans
- un contexte particulier, et si un autre module a effectué
- l'authentification correspondant à la requête, le serveur essaiera
- de faire correspondre le nom d'utilisateur à un DN au cours du
- processus d'autorisation, que des prérequis LDAP spécifiques soient
- présents ou non. Pour ignorer les échecs de mise en correspondance
- d'un nom d'utilisateur avec un DN au cours du processus
- d'autorisation, définissez <code class="directive"><a href="#authzldapauthoritative">
- AuthzLDAPAuthoritative</a></code> à "off".</p>
+<h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
+ <ul>
+ <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
+ l'authentification doit aussi être valide pour le fichier des
+ utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
+ l'UID est idéal.</li>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authzldapauthoritative" id="authzldapauthoritative">Directive</a> <a name="AuthzLDAPAuthoritative" id="AuthzLDAPAuthoritative">AuthzLDAPAuthoritative</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Empêche tout autre module d'authentification d'authentifier
-l'utilisateur si le module courant échoue.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzLDAPAuthoritative on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthzLDAPAuthoritative on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
- <p>Cette directive doit être définie à <code>off</code> si ce module
- doit confier l'autorisation de l'utilisateur à d'autres modules
[... 44 lines stripped ...]