| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?> |
| <!-- English Revision : 1546575 --> |
| <!-- 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>Disponible 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/">SDK OpenLDAP</a> (versions 1.x et |
| 2.x), du <a href="http://developer.novell.com/ndk/cldap.htm"> |
| SDK LDAP Novell</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 élaborée d'une mise en cache des opérations LDAP |
| 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="#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>. 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>.</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="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>Construction 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 |
| construit 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="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.</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. Notez que si vous utilisez une valeur <directive |
| module="core">Require</directive> fournie par un autre module |
| d'autorisation, vous devrez vous assurer que la directive <directive |
| module="mod_authnz_ldap">AuthzLDAPAuthoritative</directive> est |
| définie à <code>off</code>, afin de pouvoir confier la phase |
| d'autorisation au module qui a fourni l'autre valeur <directive |
| module="core">Require</directive>. Lorsqu'aucune directive LDAP |
| <directive module="core">Require</directive> spécifique n'est |
| fournie, la phase d'autorisation peut être confiée à d'autres |
| modules, comme si <directive |
| module="mod_authnz_ldap">AuthzLDAPAuthoritative</directive> était |
| définie à <code>off</code>. |
| </p> |
| |
| <ul> |
| <li>L'accès est autorisé à 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> |
| </table> |
| </section> |
| </section> |
| |
| <section id="requiredirectives"><title>Les directives requises</title> |
| |
| <p>Les directives <directive |
| module="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>Le comportement de cette directive est modifié par les directives |
| <directive |
| module="mod_authnz_ldap">AuthLDAPGroupAttribute</directive> et |
| <directive |
| module="mod_authnz_ldap">AuthLDAPGroupAttributeIsDN</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="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_authz_groupfile">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>AuthzLDAPAuthoritative</name> |
| <description>Empêche tout autre module d'authentification d'authentifier |
| l'utilisateur si le module courant échoue.</description> |
| <syntax>AuthzLDAPAuthoritative on|off</syntax> |
| <default>AuthzLDAPAuthoritative on</default> |
| <contextlist><context>directory</context><context>.htaccess</context> |
| </contextlist> |
| <override>AuthConfig</override> |
| |
| <usage> |
| <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 <directive |
| module="core">Require</directive> spécifique n'est utilisée, |
| l'autorisation peut être confiée à d'autres modules, comme si |
| <directive |
| module="mod_authnz_ldap">AuthzLDAPAuthoritative</directive> était |
| définie à <code>off</code>.</p> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>AuthLDAPBindAuthoritative</name> |
| <description>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.</description> |
| <syntax>AuthLDAPBindAuthoritative<em>off|on</em></syntax> |
| <default>AuthLDAPBindAuhtoritative on</default> |
| <contextlist><context>directory</context><context>.htaccess</context> |
| </contextlist> |
| <override>AuthConfig</override> |
| <compatibility>Disponible dans les versions supérieures à 2.2.14</compatibility> |
| |
| <usage> |
| <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 <directive |
| module="mod_authnz_ldap">AuthLDAPBindAuthoritative</directive> 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 |
| <directive module="mod_authn_file">AuthUserFile</directive> de |
| s'authentifier lorsque le serveur LDAP est disponible alors que son |
| compte est bloqué ou que son mot de passe est inutilisable.</p> |
| </usage> |
| <seealso><directive module="mod_authn_file">AuthUserFile</directive></seealso> |
| <seealso><directive module="mod_auth_basic">AuthBasicProvider</directive></seealso> |
| </directivesynopsis> |
| |
| <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> |
| <compatibility><em>exec:</em> est disponible depuis la version 2.2.25 du |
| serveur HTTP Apache.</compatibility> |
| |
| <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> |
| |
| <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> |
| <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></example> |
| |
| </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 |
| de 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>A 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> |
| <default>AuthLDAPGroupAttribute member uniquemember</default> |
| <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>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>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.example.com |
| ldap2.example.com/dc=..."</example> |
| |
| <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.</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.</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 |
| <directive module="mod_authnz_ldap">AuthLDAPURL</directive>.</p> |
| |
| <p>Lorsque la directive <directive |
| module="mod_authnz_ldap">AuthLDAPURL</directive> 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 <directive module="mod_authnz_ldap"> |
| AuthzLDAPAuthoritative</directive> à "off".</p> |
| |
| </usage> |
| </directivesynopsis> |
| |
| </modulesynopsis> |