You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by gr...@apache.org on 2009/10/22 23:19:04 UTC
svn commit: r828856 [2/3] - /httpd/httpd/trunk/docs/manual/mod/
Added: httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.fr?rev=828856&view=auto
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.fr (added)
+++ httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.fr Thu Oct 22 21:19:02 2009
@@ -0,0 +1,1253 @@
+<?xml version="1.0"?>
+<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
+<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
+<!-- English Revision : 824049 -->
+<!-- French translation : Lucien GENTIS -->
+<!-- Reviewed by : Vincent Deffontaines -->
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<modulesynopsis metafile="mod_authnz_ldap.xml.meta">
+
+<name>mod_authnz_ldap</name>
+<description>Permet d'utiliser un annuaire LDAP pour l'authentification
+HTTP de base.</description>
+<status>Extension</status>
+<sourcefile>mod_authnz_ldap.c</sourcefile>
+<identifier>authnz_ldap_module</identifier>
+<compatibility>Dosponible depuis les versions 2.1 et supérieures
+d'Apache</compatibility>
+
+<summary>
+ <p>Ce module permet aux frontaux d'authentification comme
+ <module>mod_auth_basic</module> d'authentifier les utilisateurs via
+ un annuaire ldap.</p>
+
+ <p><module>mod_authnz_ldap</module> supporte les fonctionnalités
+ suivantes :</p>
+
+ <ul>
+ <li>Support vérifié du <a
+ href="http://www.openldap.org/">OpenLDAP SDK</a> (versions 1.x et
+ 2.x), du <a href="http://developer.novell.com/ndk/cldap.htm">
+ Novell LDAP SDK</a> et du SDK <a
+ href="http://www.iplanet.com/downloads/developer/">iPlanet
+ (Netscape)</a>.</li>
+
+ <li>Implémentation de politiques d'autorisation complexes en les
+ définissant via des filtres LDAP.</li>
+
+ <li>Mise en oeuvre d'une mise en cache des opérations LDAP
+ élaborée via <a href="mod_ldap.html">mod_ldap</a>.</li>
+
+ <li>Support de LDAP via SSL (nécessite le SDK Netscape) ou TLS
+ (nécessite le SDK OpenLDAP 2.x ou le SDK LDAP Novell).</li>
+ </ul>
+
+ <p>Lorsqu'on utilise <module>mod_auth_basic</module>, ce module est
+ invoqué en affectant la valeur <code>ldap</code> à la directive
+ <directive module="mod_auth_basic">AuthBasicProvider</directive>.</p>
+</summary>
+
+<seealso><module>mod_ldap</module></seealso>
+<seealso><module>mod_auth_basic</module></seealso>
+<seealso><module>mod_authz_user</module></seealso>
+<seealso><module>mod_authz_groupfile</module></seealso>
+
+<section id="contents"><title>Sommaire</title>
+
+ <ul>
+ <li>
+ <a href="#operation">Mode opératoire</a>
+
+ <ul>
+ <li><a href="#authenphase">La phase
+ d'authentification</a></li>
+
+ <li><a href="#authorphase">La phase d'autorisation</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a href="#requiredirectives">Les directives requises</a>
+
+ <ul>
+ <li><a href="#requser">Require ldap-user</a></li>
+ <li><a href="#reqgroup">Require ldap-group</a></li>
+ <li><a href="#reqdn">Require ldap-dn</a></li>
+ <li><a href="#reqattribute">Require ldap-attribute</a></li>
+ <li><a href="#reqfilter">Require ldap-filter</a></li>
+ </ul>
+ </li>
+
+ <li><a href="#examples">Exemples</a></li>
+ <li><a href="#usingtls">Utilisation de TLS</a></li>
+ <li><a href="#usingssl">Utilisation de SSL</a></li>
+ <li><a href="#exposed">Mise à disposition des informations de
+ connexion</a></li>
+ <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
+ <li>
+ <a href="#frontpage">Utilisation de Microsoft FrontPage avec
+ <module>mod_authnz_ldap</module></a>
+
+ <ul>
+ <li><a href="#howitworks">Comment ça marche</a></li>
+ <li><a href="#fpcaveats">Mises en garde</a></li>
+ </ul>
+ </li>
+ </ul>
+</section>
+
+<section id="operation"><title>Mode opératoire</title>
+
+ <p>L'utilisateur se voit accorder l'accès selon un processus en deux
+ phases. La première phase est l'authentification, au cours de
+ laquelle le fournisseur d'authentification
+ <module>mod_authnz_ldap</module> vérifie que les informations de
+ connexion de l'utilisateur sont valides. Elle est aussi connue sous
+ le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
+ dans le code source : <em>search/bind</em>). La deuxième
+ phase est l'autorisation, au cours de laquelle
+ <module>mod_authnz_ldap</module> détermine si l'utilisateur
+ authentifié a la permission d'accéder à la ressource considérée.
+ Elle est aussi connue sous le nom de phase de
+ <em>comparaison</em> (<em>compare</em>).</p>
+
+ <p><module>mod_authnz_ldap</module> comporte un fournisseur
+ d'authentification authn_ldap et un gestionnaire d'autorisation
+ authz_ldap. Le fournisseur d'authentification authn_ldap peut être
+ invoqué en affectant la valeur <code>ldap</code> à la directive
+ <directive module="mod_auth_basic">AuthBasicProvider</directive>. Le
+ gestionnaire d'autorisation authz_ldap enrichit la liste des types
+ d'autorisations de la directive <directive
+ module="mod_authz_core">Require</directive> en y ajoutant les
+ valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
+ <code>ldap-group</code>.</p>
+
+<section id="authenphase"><title>La phase d'authentification</title>
+
+ <p>Au cours de la phase d'authentification,
+ <module>mod_authnz_ldap</module> recherche une entrée de l'annuaire
+ LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
+ Si une correspondance unique est trouvée,
+ <module>mod_authnz_ldap</module> tente de se connecter au serveur
+ hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
+ de passe fourni par le client HTTP. Comme ce processus effectue tout
+ d'abord une recherche, puis une connexion, il est aussi connu sous
+ le nom de phase de recherche/connexion. Voici le détail des étapes
+ constituant la phase de recherche/connexion :</p>
+
+ <ol>
+ <li>Confection d'un filtre de recherche en combinant les attribut
+ et filtre définis par la directive <directive module="mod_authnz_ldap"
+ >AuthLDAPURL</directive> avec le nom d'utilisateur et le mot de
+ passe fournis par le client HTTP.</li>
+
+ <li>Recherche dans l'annuaire LDAP en utilisant le filtre
+ confectionné précédemment. Si le résultat de la recherche est
+ négatif ou comporte plusieurs entrées, refus ou restriction de
+ l'accès.</li>
+
+ <li>Extraction du DN (distinguished name) de l'entrée issue du
+ résultat de la recherche, et tentative de connexion au serveur
+ LDAP en utilisant ce DN et le mot de passe fournis par le client
+ HTTP. Si la connexion échoue, refus ou restriction de
+ l'accès.</li>
+ </ol>
+
+ <p>Les directives utilisées durant la phase de recherche/connexion
+ sont les suivantes :</p>
+
+ <table>
+ <columnspec><column width=".3"/><column width=".7"/></columnspec>
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPURL</directive></td>
+
+ <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
+ utiliser pour la recherche, ainsi que les filtres de recherche
+ supplémentaires.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPBindDN</directive></td>
+
+ <td>Un DN optionnel pour se connecter durant la phase de
+ recherche.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPBindPassword</directive></td>
+
+ <td>Un mot de passe optionnel pour se connecter durant la phase
+ de recherche.</td>
+ </tr>
+ </table>
+</section>
+
+<section id="authorphase"><title>La phase d'autorisation</title>
+
+ <p>Au cours de la phase d'autorisation,
+ <module>mod_authnz_ldap</module> tente de déterminer si
+ l'utilisateur est autorisé à accéder à la ressource considérée. Une
+ grande partie de cette vérification consiste pour
+ <module>mod_authnz_ldap</module> en des opérations de comparaison au
+ niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
+ sous le nom de phase de comparaison.
+ <module>mod_authnz_ldap</module> accepte les directives <directive
+ module="mod_authz_core">Require</directive> suivantes pour
+ déterminer si les informations de connexion permettent d'accorder
+ l'accès à l'utilisateur :</p>
+
+ <ul>
+ <li>Avec la directive <a
+ href="#reqgroup"><code>Require ldap-user</code></a>,
+ l'autorisation d'accès est accordée si le nom d'utilisateur
+ spécifié par la directive correspond au nom d'utilisateur fourni
+ par le client.</li>
+
+ <li>Avec la directive <a href="#reqdn"><code>Require
+ ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
+ spécifié par la directive correspond au DN extrait du résultat de
+ la recherche dans l'annuaire LDAP.</li>
+
+ <li>Avec la directive <a
+ href="#reqgroup"><code>Require ldap-group</code></a>,
+ l'autorisation d'accès est accordée si le DN extrait du résultat de
+ la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
+ par le client) appartient au groupe LDAP spécifié par la
+ directive, ou éventuellement à un de ses sous-groupes.</li>
+
+ <li>Avec la directive <a href="#reqattribute">
+ <code>Require ldap-attribute</code></a>, l'autorisation d'accès
+ est accordée si la valeur de l'attribut extraite de la recherche
+ dans l'annuaire LDAP correspond à la valeur spécifiée par la
+ directive.</li>
+
+ <li>Avec la directive <a href="#reqfilter">
+ <code>Require ldap-filter</code></a>, l'autorisation d'accès
+ est accordée si le filtre de recherche renvoie un objet
+ utilisateur unique qui corresponde au DN de l'utilisateur
+ authentifié.</li>
+
+ <li>dans tous les autres cas, refus ou restriction de
+ l'accès.</li>
+ </ul>
+
+ <p>Sous réserve du chargement de modules d'autorisation
+ supplémentaires, d'autres valeurs de la directive <directive
+ module="mod_authz_core">Require</directive> peuvent être
+ spécifiées.</p>
+
+ <ul>
+ <li>L'accès est accordé à tous les utilisateurs authentifiés si
+ une directive <a href="#requser"><code>Require
+ valid-user</code></a> est présente (nécessite le module
+ <module>mod_authz_user</module>).</li>
+
+ <li>Avec la directive <a
+ href="#reqgroup"><code>Require group</code></a>, l'autorisation
+ d'accès est accordée si le module
+ <module>mod_authz_groupfile</module> a été chargé et si la
+ directive <directive
+ module="mod_authz_groupfile">AuthGroupFile</directive> a été
+ définie.</li>
+
+ <li>etc...</li>
+ </ul>
+
+
+ <p>Durant la phase de comparaison, <module>mod_authnz_ldap</module>
+ utilise les directives suivantes :</p>
+
+ <table>
+ <columnspec><column width=".4"/><column width=".6"/></columnspec>
+ <tr>
+ <td><directive module="mod_authnz_ldap">AuthLDAPURL</directive>
+ </td>
+
+ <td>On utilise l'attribut spécifié dans l'URL pour les
+ opérations de comparaison initiées par la directive
+ <code>Require ldap-user</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPCompareDNOnServer</directive></td>
+
+ <td>Détermine le comportement de la directive <code>Require
+ ldap-dn</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPGroupAttribute</directive></td>
+
+ <td>Détermine l'attribut utilisé pour les opérations de
+ comparaison initiées par la directive <code>Require
+ ldap-group</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPGroupAttributeIsDN</directive></td>
+
+ <td>Spécifie si l'on doit utiliser le DN ou le nom de
+ l'utilisateur lors des opérations de comparaison initiées par la
+ directive <code>Require ldap-group</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive></td>
+
+ <td>Détermine la profondeur maximale de l'arborescence des
+ sous-groupes qui seront évalués au cours des opérations de
+ comparaisons initiées par la directive <code>Require
+ ldap-group</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPSubGroupAttribute</directive></td>
+
+ <td>Détermine l'attribut à utiliser lors de l'extraction de
+ membres de sous-groupes du groupe courant au cours des
+ opérations de comparaison initiées par la directive
+ <code>Require ldap-group</code>.</td>
+ </tr>
+
+ <tr>
+ <td><directive
+ module="mod_authnz_ldap">AuthLDAPSubGroupClass</directive></td>
+
+ <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
+ déterminer si les objets extraits de l'annuaire sont bien des
+ objets de type groupe (et non des objets de type utilisateur),
+ au cours du traitement des sous-groupes initié par la directive
+ <code>Require ldap-group</code>.</td>
+ </tr>
+ </table>
+</section>
+</section>
+
+<section id="requiredirectives"><title>Les directives requises</title>
+
+ <p>Les directives <directive
+ module="mod_authz_core">Require</directive> d'Apache sont utilisées
+ au cours de la phase d'autorisation afin de s'assurer que
+ l'utilisateur est autorisé à accéder à une ressource.
+ mod_authnz_ldap enrichit la liste des types d'autorisations avec les
+ valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
+ <code>ldap-group</code>, <code>ldap-attribute</code> et
+ <code>ldap-filter</code>. D'autres types d'autorisations sont
+ disponibles, sous réserve du chargement de modules d'autorisation
+ supplémentaires.</p>
+
+<section id="requser"><title>Require ldap-user</title>
+
+ <p>La directive <code>Require ldap-user</code> permet de spécifier
+ les noms des utilisateurs autorisés à accéder à la ressource.
+ Lorsque <module>mod_authnz_ldap</module> a extrait un DN unique de
+ l'annuaire LDAP, il effectue une opération de comparaison LDAP en
+ utilisant le nom d'utilisateur spécifié par la directive
+ <code>Require ldap-user</code>, pour vérifier si ce nom
+ d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
+ l'accès à plusieurs utilisateurs en plaçant plusieurs nom
+ 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 <directive
+ module="mod_authnz_ldap">AuthLDAPURL</directive> 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>
+<example>
+Require ldap-user "Barbara Jenson"<br />
+Require ldap-user "Fred User"<br />
+Require ldap-user "Joe Manager"<br />
+</example>
+
+ <p>De par la manière dont <module>mod_authnz_ldap</module> 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>
+<example>Require ldap-user bjenson fuser jmanager</example>
+</section>
+
+<section id="reqgroup"><title>Require ldap-group</title>
+
+ <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>
+<example>
+dn: cn=Administrators, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Barbara Jenson, o=Airius<br />
+uniqueMember: cn=Fred User, o=Airius<br />
+</example>
+
+ <p>La directive suivante autoriserait alors l'accès à Fred et
+ Barbara :</p>
+<example>Require ldap-group cn=Administrators, o=Airius</example>
+
+ <p>Les membres peuvent aussi se trouver dans les sous-groupes du
+ groupe LDAP spécifié si la directive <directive
+ module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive> a été
+ définie à une valeur supérieure à 0. Par exemple, supposons que les
+ entrées suivantes existent dans l'annuaire LDAP :</p>
+<example>
+dn: cn=Employees, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Managers, o=Airius<br />
+uniqueMember: cn=Administrators, o=Airius<br />
+uniqueMember: cn=Users, o=Airius<br />
+<br />
+dn: cn=Managers, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Bob Ellis, o=Airius<br />
+uniqueMember: cn=Tom Jackson, o=Airius<br />
+<br />
+dn: cn=Administrators, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Barbara Jenson, o=Airius<br />
+uniqueMember: cn=Fred User, o=Airius<br />
+<br />
+dn: cn=Users, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Allan Jefferson, o=Airius<br />
+uniqueMember: cn=Paul Tilley, o=Airius<br />
+uniqueMember: cn=Temporary Employees, o=Airius<br />
+<br />
+dn: cn=Temporary Employees, o=Airius<br />
+objectClass: groupOfUniqueNames<br />
+uniqueMember: cn=Jim Swenson, o=Airius<br />
+uniqueMember: cn=Elliot Rhodes, o=Airius<br />
+</example>
+
+ <p>Les directives suivantes autoriseraient alors l'accès à Bob
+ Ellis, Tom Jackson, Barbara Jensen, Fred User, Allan Jefferson, et
+ Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
+ (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
+ :</p>
+<example>
+Require ldap-group cn=Employees, o-Airius<br />
+AuthLDAPSubGroupDepth 1<br />
+</example>
+
+ <p>Le comportement de cette directive est modifié par les directives
+ <directive
+ module="mod_authnz_ldap">AuthLDAPGroupAttribute</directive>,
+ <directive
+ module="mod_authnz_ldap">AuthLDAPGroupAttributeIsDN</directive>,
+ <directive
+ module="mod_authnz_ldap">AuthLDAPMaxSubGroupDepth</directive>,
+ <directive
+ module="mod_authnz_ldap">AuthLDAPSubGroupAttribute</directive>, et
+ <directive
+ module="mod_authnz_ldap">AuthLDAPSubGroupClass</directive>.</p>
+</section>
+
+<section id="reqdn"><title>Require ldap-dn</title>
+
+ <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>
+<example>Require ldap-dn cn=Barbara Jenson, o=Airius</example>
+
+ <p>Le comportement ce cette directive est modifié par la directive
+ <directive
+ module="mod_authnz_ldap">AuthLDAPCompareDNOnServer</directive>.</p>
+</section>
+
+<section id="reqattribute"><title>Require ldap-attribute</title>
+
+ <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>
+
+ <example>Require ldap-attribute employeeType=actif</example>
+
+ <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>
+
+ <example>Require ldap-attribute city="San Jose" status=actif</example>
+
+</section>
+
+<section id="reqfilter"><title>Require ldap-filter</title>
+
+ <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>
+
+ <example>Require ldap-filter &(cell=*)(department=marketing)</example>
+
+ <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>
+
+</section>
+
+</section>
+
+<section id="examples"><title>Exemples</title>
+
+ <ul>
+ <li>
+ Accorde l'autorisation d'accès à tout utilisateur présent dans
+ l'annuaire LDAP, en utilisant son UID pour effectuer la
+ recherche :
+<example>
+AuthLDAPURL "ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)"<br />
+Require valid-user
+</example>
+ </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 :
+<example>AuthLDAPURL "ldap://ldap1.airius.com ldap2.airius.com/ou=People, o=Airius"<br />
+Require valid-user
+</example>
+ </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>.
+<example>
+AuthLDAPURL "ldap://ldap.airius.com/ou=People, o=Airius?cn"<br />
+Require valid-user
+</example>
+ </li>
+
+ <li>
+ Accorde l'autorisation d'accès à tout utilisateur appartenant au
+ groupe Administrateurs. Les utilisateurs doivent s'authentifier
+ en utilisant leur UID :
+<example>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid<br />
+Require ldap-group cn=Administrators, o=Airius
+</example>
+ </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 :
+<example>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(qpagePagerID=*)<br />
+Require valid-user
+</example>
+ </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>
+<example>
+AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(|(qpagePagerID=*)(uid=jmanager))<br />
+Require valid-user
+</example>
+
+ <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>
+
+ <example>(&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</example>
+
+ <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>
+
+ <example>(&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</example>
+
+ <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>
+</section>
+
+<section id="usingtls"><title>Utilisation de TLS</title>
+
+ <p>Pour l'utilisation de TLS, voir les directives du module
+ <module>mod_ldap</module> <directive
+ module="mod_ldap">LDAPTrustedClientCert</directive>, <directive
+ module="mod_ldap">LDAPTrustedGlobalCert</directive> et <directive
+ module="mod_ldap">LDAPTrustedMode</directive>.</p>
+
+ <p>Un second paramètre optionnel peut être ajouté à la directive
+ <directive module="mod_authnz_ldap">AuthLDAPURL</directive> pour
+ remplacer le type de connexion par défaut défini par la directive
+ <directive module="mod_ldap">LDAPTrustedMode</directive>. 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>
+</section>
+
+<section id="usingssl"><title>Utilisation de SSL</title>
+
+ <p>Pour l'utilisation de SSL, voir les directives du module
+ <module>mod_ldap</module> <directive
+ module="mod_ldap">LDAPTrustedClientCert</directive>, <directive
+ module="mod_ldap">LDAPTrustedGlobalCert</directive> et <directive
+ module="mod_ldap">LDAPTrustedMode</directive>.</p>
+
+ <p>Pour spécifier un serveur LDAP sécurisé, utilisez
+ <em>ldaps://</em> au lieu de
+ <em>ldap://</em> dans la directive <directive
+ module="mod_authnz_ldap">AuthLDAPURL</directive>.</p>
+</section>
+
+<section id="exposed"><title>Mise à disposition des informations de
+connexion</title>
+
+ <p>Au cours du processus d'authentification, les attributs LDAP
+ spécifiés par la directive <directive
+ module="mod_authnz_ldap">AuthLDAPUrl</directive> sont enregistrés
+ dans des variables d'environnement préfixées par la chaîne
+ "AUTHENTICATE_".</p>
+
+ <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>Ceci a pour effet de simplifier considérablement le code et la
+ configuration nécessaire de certaines applications web.</p>
+
+</section>
+
+<section id="activedirectory"><title>Utilisation d'Active
+Directory</title>
+
+ <p>Active Directory peut supporter plusieurs domaines à la fois.
+ Pour faire la distinction entre les utilisateurs de plusieurs
+ domaines, on peut ajouter à l'entrée de l'utilisateur dans
+ l'annuaire un identifiant appelé Nom
+ Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
+ compose en général du nom de compte de l'utilisateur, suivi du nom
+ du domaine considéré, par exemple <em>untel@nz.exemple.com</em>.</p>
+
+ <p>Vous voudrez probablement configurer le module
+ <module>mod_authnz_ldap</module> afin de pouvoir authentifier les
+ utilisateurs de n'importe quel domaine de la forêt Active Directory.
+ Ainsi, <em>untel@nz.exemple.com</em> et
+ <em>untel@au.exemple.com</em> pourront être authentifiés en une
+ seule fois par la même requête.</p>
+
+ <p>Pour y parvenir, on utilise le concept de Catalogue Global
+ d'Active Directory. Ce Catalogue Global est une copie en lecture
+ seule des attributs sélectionnés de tous les serveurs de la forêt
+ Active Directory. Une requête vers le
+ Catalogue Global permet donc d'atteindre tous les domaines en une
+ seule fois, sans avoir à se connecter aux différents serveurs, via
+ des liaisons dont certaines peuvent être lentes.</p>
+
+ <p>Lorsqu'il est activé, la Catalogue Global est un serveur
+ d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
+ Pour rechercher un utilisateur, effectuez une recherche sur
+ l'attribut <em>userPrincipalName</em>, avec une base de recherche
+ vide, comme suit :</p>
+
+<example>
+AuthLDAPBindDN apache@exemple.com<br />
+AuthLDAPBindPassword password<br />
+AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub
+</example>
+
+ <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
+ la forme<em>untel@nz.exemple.com</em>.</p>
+
+</section>
+
+<section id="frontpage"><title>Utilisation de Microsoft
+ FrontPage avec mod_authnz_ldap</title>
+
+ <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
+ spécifiques à FrontPage-web (c'est à dire les modules
+ <module>mod_authn_file</module> et
+ <module>mod_authz_groupfile</module>) 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>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>
+<example><pre>
+AuthLDAPURL "l'url"
+AuthGroupFile <em>mon-fichier-de-groupes</em>
+Require group <em>mon-fichier-de-groupes</em>
+</pre></example>
+
+<section id="howitworks"><title>Comment ça marche</title>
+
+ <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>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>
+</section>
+
+<section id="fpcaveats"><title>Avertissements</title>
+
+ <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 <module>mod_authn_file</module>. A cette fin,
+ l'UID est idéal.</li>
+
+ <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>
+
+ <!-- XXX is that true? was mod_auth before the aaa change -->
+ <li>Pour supporter FrontPage, Apache doit être compilé avec
+ <module>mod_auth_basic</module>, <module>mod_authn_file</module>
+ et <module>mod_authz_groupfile</module>. Ceci est dû au fait
+ qu'Apache doit utiliser le fichier de groupes de
+ <module>mod_authz_groupfile</module> pour déterminer le niveau
+ d'accès d'un utilisateur au site web FrontPage.</li>
+
+ <li>Les directives doivent être placées dans les fichiers
+ <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
+ placez dans une section <directive module="core"
+ type="section">Location</directive> ou <directive module="core"
+ type="section">Directory</directive>. Ceci est dû au fait que pour savoir
+ où se trouve la liste des utilisateurs valides,
+ <module>mod_authnz_ldap</module> doit être en mesure d'atteindre
+ la directive <directive
+ module="mod_authn_file">AuthGroupFile</directive> qui se trouve
+ dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
+ de <module>mod_authnz_ldap</module> ne sont pas situées dans le
+ même fichier <code>.htaccess</code> que les directives FrontPage,
+ la configuration ne fonctionnera pas, car
+ <module>mod_authnz_ldap</module> 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>
+</section>
+</section>
+
+<directivesynopsis>
+<name>AuthLDAPBindDN</name>
+<description>Un DN optionnel pour se connecter au serveur
+LDAP</description>
+<syntax>AuthLDAPBindDN <em>dn</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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é, <module>mod_authnz_ldap</module> tentera une
+ connexion anonyme.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPBindPassword</name>
+<description>Mot de passe à utiliser en conjonction avec le DN de
+connexion</description>
+<syntax>AuthLDAPBindPassword <em>mot-de-passe</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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
+ <directive
+ module="mod_authnz_ldap">AuthLDAPBindDN</directive> et <directive
+ module="mod_authnz_ldap">AuthLDAPBindPassword</directive> que si
+ vous en avez vraiment besoin pour effectuer une recherche dans
+ l'annuaire.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPCharsetConfig</name>
+<description>Chemin du fichier de configuration de la correspondance
+langage/jeu de caractères</description>
+<syntax>AuthLDAPCharsetConfig <em>chemin-fichier</em></syntax>
+<contextlist><context>server config</context>
+</contextlist>
+
+<usage>
+ <p>La directive <directive>AuthLDAPCharsetConfig</directive> 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
+ <directive
+ module="core">ServerRoot</directive>. 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>
+
+ <example>
+ <var>extension de langage</var> <var>jeu de caractères</var>
+ [<var>Nom du langage</var>] ...
+ </example>
+
+ <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>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPCompareDNOnServer</name>
+<description>Utilise le serveur LDAP pour comparer les DNs</description>
+<syntax>AuthLDAPCompareDNOnServer on|off</syntax>
+<default>AuthLDAPCompareDNOnServer on</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <p>Lorsque cette directive est définie à on,
+ <module>mod_authnz_ldap</module> utilise le serveur LDAP pour
+ comparer les DNs. Il s'agit de la seule méthode infaillible pour
+ comparer les DNs. <module>mod_authnz_ldap</module> 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, <module>mod_authnz_ldap</module> effectue une
+ simple comparaison de chaînes. Cette dernière approche peut produire
+ des faux négatifs, mais elle est beaucoup plus rapide. Notez
+ cependant que le cache de <module>mod_ldap</module> peut accélérer
+ la comparaison de DNs dans la plupart des situations.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPDereferenceAliases</name>
+<description>À quel moment le module va déréférencer les
+alias</description>
+<syntax>AuthLDAPDereferenceAliases never|searching|finding|always</syntax>
+<default>AuthLDAPDereferenceAliases always</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <p>Cette directive permet de spécifier à quel moment
+ <module>mod_authnz_ldap</module> 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>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPGroupAttribute</name>
+<description>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
+utilisateur à un groupe.</description>
+<syntax>AuthLDAPGroupAttribute <em>attribut</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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,
+ <module>mod_authnz_ldap</module> utilise les attributs
+ <code>member</code> et <code>uniquemember</code>.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPGroupAttributeIsDN</name>
+<description>Utilise le DN de l'utilisateur pour vérifier son
+appartenance à un groupe</description>
+<syntax>AuthLDAPGroupAttributeIsDN on|off</syntax>
+<default>AuthLDAPGroupAttributeIsDN on</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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>, <module>mod_authnz_ldap</module> va
+ vérifier si <code>cn=Babs Jenson, o=Airius</code> est un membre du
+ groupe. Dans le cas contraire, <module>mod_authnz_ldap</module>
+ vérifiera si <code>bjenson</code> est un membre du groupe.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPMaxSubGroupDepth</name>
+<description>Spécifie la profondeur d'imbrication des sous-groupes
+maximale prise en compte avant l'abandon de la recherche de
+l'utilisateur.</description>
+<syntax>AuthLDAPMaxSubGroupDepth <var>Nombre</var></syntax>
+<default>AuthLDAPMaxSubGroupDepth 10</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <p>Lorsque cette directive est définie à une valeur <code>X</code>
+ non nulle, en combinaison avec l'utilisation de la directive
+ <code>Require ldap-group DN-groupe</code>, les données de connexion
+ fournies seront utilisées pour vérifier l'appartenance de
+ l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
+ tout sous-groupe du groupe courant en tenant compte de la profondeur
+ d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
+ <p>Se référer à la section <a href="#reqgroup"><code>Require
+ ldap-group</code></a> pour un exemple plus détaillé.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPRemoteUserAttribute</name>
+<description>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</description>
+<syntax>AuthLDAPRemoteUserAttribute uid</syntax>
+<default>none</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPRemoteUserIsDN</name>
+<description>Utilise le DN de l'utilisateur pour définir la variable
+d'environnement REMOTE_USER</description>
+<syntax>AuthLDAPRemoteUserIsDN on|off</syntax>
+<default>AuthLDAPRemoteUserIsDN off</default>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPSubGroupAttribute</name>
+<description>Spécifie les noms d'attribut, un par directive, utilisés
+pour différencier les membres du groupe courant qui sont eux-mêmes des
+groupes.</description>
+<syntax>AuthLDAPSubGroupAttribute <em>attribut</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <p>Un objet groupe LDAP peut contenir des membres qui sont des
+ utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
+ sous-groupes ou groupes imbriqués). La directive
+ <code>AuthLDAPSubGroupAttribute</code> spécifie l'attribut utilisé
+ pour identifier les groupes, alors que la directive
+ <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
+ pour identifier les utilisateurs. On peut spécifier plusieurs
+ attributs en répétant la directive plusieurs fois. Si elle n'est pas
+ définie, <module>mod_authnz_ldap</module> utilise les attributs
+ <code>member</code> et <code>uniqueMember</code>.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPSubGroupClass</name>
+<description>Spécifie quelles valeurs d'objectClass LDAP identifient les
+objets de l'annuaire qui sont des groupes au cours du traitement des
+sous-groupes.</description>
+<syntax>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <p>Un objet groupe LDAP peut contenir des membres qui sont des
+ utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
+ sous-groupes ou groupes imbriqués). La directive
+ <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
+ membres qui sont des sous-groupes du groupe courant (à l'opposé des
+ membres utilisateurs). La directive
+ <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
+ d'objectClass LDAP utilisées pour vérifier que certains membres sont
+ en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
+ alors faire l'objet d'une recherche d'autres membres utilisateurs ou
+ sous-groupes. On peut spécifier plusieurs attributs en répétant
+ cette directive plusieurs fois. Si cette directive n'est pas
+ définie, <module>mod_authnz_ldap</module> utilise les attributs
+ <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
+</usage>
+</directivesynopsis>
+
+<directivesynopsis>
+<name>AuthLDAPUrl</name>
+<description>L'URL permettant de spécifier les paramètres de la
+recherche LDAP</description>
+<syntax>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></syntax>
+<contextlist><context>directory</context><context>.htaccess</context>
+</contextlist>
+<override>AuthConfig</override>
+
+<usage>
+ <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>
+<example>ldap://hôte:port/DN-de-base?attribut?portée?filtre</example>
+ <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
+ LDAP, la syntaxe sera :</p>
+<example>AuthLDAPUrl "ldap://ldap1.exemple.com
+ldap2.exemple.com/dc=..."</example>
+<p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
+serveurs, vous devez en entourer la liste avec des guillemets ; dans le
+cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
+argument, URL to define LDAP connection..".</em> Vous pouvez bien
+entendu ajouter des paramètres de recherche à chacun des serveurs
+spécifiés.</p>
+
+<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.
+ <module>mod_authnz_ldap</module> tentera alors de se connecter
+ à chacun des serveurs jusqu'à ce qu'il parvienne à se
+ connecter avec succès. Notez qu'en cas de multiples serveurs
+ LDAP, l'ensemble de l'URL LDAP doit être entourée de
+ guillemets.</p>
+
+ <p>lorsqu'une connection a été établie avec un serveur, elle
+ reste active pendant toute la durée de vie du processus
+ <program>httpd</program>, 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, <module>mod_authnz_ldap</module> 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. Tous les
+ attributs spécifiés seront enregistrés dans des variables
+ d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
+ être utilisés par d'autres modules.</dd>
+
+<dt>portée</dt>
+
+ <dd>Il s'agit de la portée 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>Établit 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>Établit 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>Établit 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
+ <directive module="mod_authnz_ldap">AuthLDAPURL</directive>.</p>
+</usage>
+</directivesynopsis>
+
+</modulesynopsis>
Modified: httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.meta
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.meta?rev=828856&r1=828855&r2=828856&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.meta (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_authnz_ldap.xml.meta Thu Oct 22 21:19:02 2009
@@ -8,5 +8,6 @@
<variants>
<variant>en</variant>
+ <variant>fr</variant>
</variants>
</metafile>
Modified: httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html?rev=828856&r1=828855&r2=828856&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html Thu Oct 22 21:19:02 2009
@@ -4,6 +4,10 @@
Content-Language: en
Content-type: text/html; charset=ISO-8859-1
+URI: mod_setenvif.html.fr
+Content-Language: fr
+Content-type: text/html; charset=ISO-8859-1
+
URI: mod_setenvif.html.ja.utf8
Content-Language: ja
Content-type: text/html; charset=UTF-8
Modified: httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.en?rev=828856&r1=828855&r2=828856&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.en (original)
+++ httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.en Thu Oct 22 21:19:02 2009
@@ -22,6 +22,7 @@
<div id="preamble"><h1>Apache Module mod_setenvif</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English"> en </a> |
+<a href="../fr/mod/mod_setenvif.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
@@ -296,6 +297,7 @@
</div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English"> en </a> |
+<a href="../fr/mod/mod_setenvif.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
Added: httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.fr
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.fr?rev=828856&view=auto
==============================================================================
--- httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.fr (added)
+++ httpd/httpd/trunk/docs/manual/mod/mod_setenvif.html.fr Thu Oct 22 21:19:02 2009
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ -->
+<title>mod_setenvif - Serveur Apache HTTP</title>
+<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
+<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
+<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
+<link href="../images/favicon.ico" rel="shortcut icon" /></head>
+<body>
+<div id="page-header">
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
+<p class="apache">Serveur Apache HTTP Version 2.3</p>
+<img alt="" src="../images/feather.gif" /></div>
+<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
+<div id="path">
+<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.3</a> > <a href="./">Modules</a></div>
+<div id="page-content">
+<div id="preamble"><h1>Module Apache mod_setenvif</h1>
+<div class="toplang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
+<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
+</div>
+<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet de définir des variables d'environnement en fonction
+de caractéristiques de la requête</td></tr>
+<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>setenvif_module</td></tr>
+<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_setenvif.c</td></tr></table>
+<h3>Sommaire</h3>
+
+
+ <p>Le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> vous permet de définir
+ des variables d'environnement en fonction du fait que telle ou telle
+ caractéristique de la requête correspond ou non aux expressions
+ rationnelles que vous spécifiez. Ces variables d'environnement
+ peuvent être utilisées par d'autres parties du serveur pour prendre
+ des décisions quant aux actions à entreprendre.</p>
+
+ <p>Les directives sont interprétées selon l'ordre dans lequel elles
+ apparaîssent dans les fichiers de configuration. Ainsi, des
+ séquences plus complexes peuvent être utilisées, comme dans cet
+ exemple qui définit netscape si le navigateur est Mozilla et non
+ MSIE.</p>
+
+<div class="example"><p><code>
+ BrowserMatch ^Mozilla netscape<br />
+ BrowserMatch MSIE !netscape<br />
+</code></p></div>
+</div>
+<div id="quickview"><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#browsermatch">BrowserMatch</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#browsermatchnocase">BrowserMatchNoCase</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#setenvif">SetEnvIf</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#setenvifnocase">SetEnvIfNoCase</a></li>
+</ul>
+<h3>Voir aussi</h3>
+<ul class="seealso">
+<li><a href="../env.html">Les variables d'environnement dans
+Apache</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="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
+contenu de l'en-tête HTTP User-Agent</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatch <em>regex [!]env-variable</em>[=<em>valeur</em>]
+[[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
+</table>
+ <p>La directive <code class="directive">BrowserMatch</code> est un cas
+ particulier de la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, qui définit des variables
+ d'environnement en fonction du contenu de l'en-tête de requête HTTP
+ <code>User-Agent</code>. Les deux lignes suivantes produisent le même
+ effet :</p>
+<div class="example"><p><code>
+ BrowserMatchNoCase Robot est_un_robot<br />
+ SetEnvIfNoCase User-Agent Robot est_un_robot<br />
+</code></p></div>
+
+ <p>Quelques exemples supplémentaires :</p>
+<div class="example"><p><code>
+ BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br />
+ BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br />
+ BrowserMatch MSIE !javascript<br />
+</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="BrowserMatchNoCase" id="BrowserMatchNoCase">BrowserMatchNoCase</a> <a name="browsermatchnocase" id="browsermatchnocase">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction du
+contenu de l'en-tête HTTP User-Agent sans tenir compte de la
+casse</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BrowserMatchNoCase <em>regex [!]env-variable</em>[=<em>valeur</em>]
+ [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Versions 1.2 d'Apache et supérieures (dans Apache 1.2,
+cette directive se trouvait dans le module mod_browser devenu depuis
+obsolète)</td></tr>
+</table>
+
+ <p>La directive <code class="directive">BrowserMatchNoCase</code> est
+ identique sur le plan sémantique à la directive <code class="directive"><a href="#browsermatch">BrowserMatch</a></code>. Elle permet
+ cependant une comparaison insensible à la casse. Par exemple :</p>
+<div class="example"><p><code>
+ BrowserMatchNoCase mac platform=macintosh<br />
+ BrowserMatchNoCase win platform=windows<br />
+</code></p></div>
+
+ <p>Les directives <code class="directive">BrowserMatch</code> et
+ <code class="directive">BrowserMatchNoCase</code> sont des cas particuliers
+ des directives <code class="directive"><a href="#setenvif">SetEnvIf</a></code>
+ et <code class="directive"><a href="#setenvifnocase">SetEnvIfNoCase</a></code>.
+ Ainsi, les deux lignes suivantes produisent le même effet :</p>
+<div class="example"><p><code>
+ BrowserMatchNoCase Robot est_un_robot<br />
+ SetEnvIfNoCase User-Agent Robot est_un_robot<br />
+</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="SetEnvIf" id="SetEnvIf">SetEnvIf</a> <a name="setenvif" id="setenvif">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
+attributs de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIf <em>attribut
+ regex [!]env-variable</em>[=<em>valeur</em>]
+ [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
+</table>
+ <p>La directive <code class="directive">SetEnvIf</code> permet de définir
+ des variables d'environnement en fonction des attributs de la
+ requête. L'<em>attribut</em> spécifié comme premier argument peut
+ se présenter sous l'une des quatre formes suivantes :</p>
+
+<ol>
+<li>Un champ d'en-tête de requête HTTP (voir la <a href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a> pour
+ plus d'information à leur propos) ; par exemple : <code>Host</code>,
+ <code>User-Agent</code>, <code>Referer</code>, ou
+ <code>Accept-Language</code>. Il est possible d'utiliser une
+ expression rationnelle pour spécifier un jeu d'en-têtes de
+ requête.</li>
+
+<li>Une des caractéristiques de la requête suivantes :
+ <ul>
+ <li><code>Remote_Host</code> - le nom d'hôte (s'il est disponible)
+ du client qui effectue la requête</li>
+
+ <li><code>Remote_Addr</code> - l'adresse IP du client qui effectue
+ la requête</li>
+
+ <li><code>Server_Addr</code> - l'adresse IP du serveur qui a reçu
+ la requête (uniquement à partir des versions supérieures à
+ 2.0.43)</li>
+
+ <li><code>Request_Method</code> - Le nom de la méthode HTTP
+ utilisée (<code>GET</code>, <code>POST</code>, <em>et
+ cetera...</em>)</li>
+
+ <li><code>Request_Protocol</code> - le nom et la version du
+ protocole utilisé pour la requête (par exemple "HTTP/0.9",
+ "HTTP/1.1", <em>etc...</em>)</li>
+
+ <li><code>Request_URI</code> - la ressource demandée dans la ligne
+ de requête HTTP -- en général la partie de l'URL suivant le
+ protocole et le nom du serveur, sans la chaîne d'arguments. Voir
+ la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewritecond">RewriteCond</a></code> du module
+ <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour plus d'informations sur la
+ manière de mettre en correspondance votre chaîne d'arguments.</li>
+ </ul>
+</li>
+
+<li>Le nom d'une variable d'environnement parmi la liste de celles qui
+sont associées à la requête. Ceci permet à la directive
+<code class="directive">SetEnvIf</code> d'effectuer des tests en fonction du
+résultat de comparaisons précédentes. Seules les variables
+d'environnement définies par des directives
+<code>SetEnvIf[NoCase]</code> précédentes sont disponibles pour
+effectuer des tests de cette manière. 'Précédentes' signifie qu'elles se
+trouvent à un niveau plus global de la configuration (par exemple au
+niveau du serveur principal), ou plus haut chronologiquement dans le
+contexte de la directive. Les variables d'environnement ne seront prises
+en compte que si aucune correspondance n'a été trouvée parmi les
+caractéristiques de la requête, et si <em>attribut</em> n'a pas été
+spécifié sous la forme d'une expression rationnelle.</li>
+
+<li>La référence à une extension d'un certificat client SSL, localisé
+par son identifiant objet <em>oid</em>. Dans le cas d'une requête non
+SSL, ou en l'absence d'<em>oid</em> configuré, aucune variable ne sera
+définie. Si l'<em>oid</em> est trouvé plusieurs fois, les chaînes
+individuelles seront concaténées, en les séparant par des virgules
+<code>','</code>. L'<em>oid</em> doit faire référence à une extension
+sous forme de chaîne.
+</li>
+</ol>
+
+<p>Le second argument (<em>regex</em>) est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>. Si <em>regex</em>
+correspond à l'<em>attribut</em>, les arguments suivants sont évalués.</p>
+
+<p>Le reste des arguments constitue les noms des variables à définir,
+ainsi que les valeurs optionnelles qui doivent leur être affectées. Ils
+peuvent se présenter sous les formes suivantes :</p>
+
+ <ol>
+ <li><code><em>nom-variable</em></code>, or</li>
+
+ <li><code>!<em>nom-variable</em></code>, or</li>
+
+ <li><code><em>nom-variable</em>=<em>valeur</em></code></li>
+ </ol>
+
+ <p>Dans la première forme, la valeur sera définie à "1". Dans la
+ seconde forme, la variable sera supprimée si elle a été définie au
+ préalable, et dans la troisième forme, la variable sera définie à la
+ valeur littérale spécifiée par <code><em>valeur</em></code>. Depuis
+ la version 2.0.51, Apache reconnaît les occurrences de variables
+ <code>$1</code>..<code>$9</code> à l'intérieur de
+ <code><em>valeur</em></code>, et les remplace par les
+ sous-expressions entre parenthèses correspondantes de
+ <var>regex</var>.</p>
+
+<div class="example"><h3>Example:</h3><p><code>
+
+ SetEnvIf Request_URI "\.gif$" objet_est_une_image=gif<br />
+ SetEnvIf Request_URI "\.jpg$" objet_est_une_image=jpg<br />
+ SetEnvIf Request_URI "\.xbm$" objet_est_une_image=xbm<br />
+ :<br />
+ SetEnvIf Referer www\.mon-domaine\.exemple\.com référant_intra_site<br />
+ :<br />
+ SetEnvIf objet_est_une_image xbm XBIT_PROCESSING=1<br />
+ :<br />
+ SetEnvIf OID("2.16.840.1.113730.1.13") "(.*)" commentaire-netscape=$1<br />
+ :<br />
+ SetEnvIf ^TS* ^[a-z].* HAVE_TS<br />
+</code></p></div>
+
+ <p>Les trois premières lignes définissent la variable
+ d'environnement <code>objet_est_une_image</code> si l'objet de la
+ requête est un fichier image, et la quatrième définit la variable
+ <code>référant_intra_site</code> si la page référante se trouve
+ quelque part dans le site web
+ <code>www.mon-domaine.exemple.com</code>.</p>
+
+ <p>La sixième ligne définit la variable d'environnement
+ <code>commentaire-netscape</code> avec la chaîne trouvée dans le
+ champ du certificat client SSL correspondant.</p>
+
+ <p>La dernière ligne définit la variable d'environnement
+ <code>HAVE_TS</code> si la requête contient un en-tête dont le nom
+ commence par "TS" et dont la valeur commence par tout caractère du
+ jeu [a-z].</p>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><a href="../env.html">Les variables d'environnement dans
+Apache</a> pour des exemples supplémentaires.
+</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="SetEnvIfNoCase" id="SetEnvIfNoCase">SetEnvIfNoCase</a> <a name="setenvifnocase" id="setenvifnocase">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des variables d'environnement en fonction des
+attributs de la requête sans tenir compte de la casse</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SetEnvIfNoCase <em>attribut regex
+ [!]env-variable</em>[=<em>valeur</em>]
+ [[!]<em>env-variable</em>[=<em>valeur</em>]] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Annuler:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_setenvif</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Versions 1.3 d'Apache et supérieures</td></tr>
+</table>
+
+ <p>La directive <code class="directive">SetEnvIfNoCase</code> est identique
+ d'un point de vue sémantique à la directive <code class="directive"><a href="#setenvif">SetEnvIf</a></code>, et ne s'en distingue que
+ par le fait que la comparaison des expressions rationnelles est
+ effectuée sans tenir compte de la casse. Par exemple :</p>
+<div class="example"><p><code>
+ SetEnvIfNoCase Host Apache\.Org site=apache
+</code></p></div>
+
+ <p>Cette ligne va définir la variable d'environnement
+ <code>site</code> avec la valeur "<code>apache</code>" si le champ
+ d'en-tête de requête HTTP <code>Host:</code> est présent et contient
+ <code>Apache.Org</code>, <code>apache.org</code>, ou une autre
+ combinaison des mêmes caractères, sans tenir compte de la casse.</p>
+
+</div>
+</div>
+<div class="bottomlang">
+<p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English"> en </a> |
+<a href="../fr/mod/mod_setenvif.html" title="Français"> fr </a> |
+<a href="../ja/mod/mod_setenvif.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
+<a href="../ko/mod/mod_setenvif.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
+<a href="../tr/mod/mod_setenvif.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
+</div><div id="footer">
+<p class="apache">Copyright 2009 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div>
+</body></html>
\ No newline at end of file