mirror of
https://github.com/apache/httpd.git
synced 2025-05-28 13:41:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1330844 13f79535-47bb-0310-9956-ffa450edef68
679 lines
38 KiB
Plaintext
679 lines
38 KiB
Plaintext
<?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>Authentification et autorisation - 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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
|
||
<script src="../style/scripts/prettify.js" type="text/javascript">
|
||
</script>
|
||
|
||
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
||
<body id="manual-page"><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.5</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.5</a> > <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Authentification et autorisation</h1>
|
||
<div class="toplang">
|
||
<p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../fr/howto/auth.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </a></p>
|
||
</div>
|
||
<div class="outofdate">Cette traduction peut <20>tre p<>rim<69>e. V<>rifiez la version
|
||
anglaise pour les changements r<>cents.</div>
|
||
|
||
<p>L'authentification est un processus qui vous permet de v<>rifier
|
||
qu'une personne est bien celle qu'elle pr<70>tend <20>tre. L'autorisation
|
||
est un processus qui permet <20> une personne d'aller l<> o<> elle veut
|
||
aller, ou d'obtenir les informations qu'elle d<>sire.</p>
|
||
|
||
<p>Pour le contr<74>le d'acc<63>s en g<>n<EFBFBD>ral, voir le How-To <a href="access.html">Contr<74>le d'acc<63>s</a>.</p>
|
||
</div>
|
||
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Modules et directives concern<72>s</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">Les pr<70>requis</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Mise en oeuvre</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Autorisation d'acc<63>s <20>
|
||
plusieurs personnes</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Probl<62>mes possibles</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Autre m<>thode de stockage des mots de
|
||
passe</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Utilisation de plusieurs fournisseurs
|
||
d'authentification</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#beyond">Pour aller plus loin qu'une simple
|
||
autorisation</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#socache">Mise en cache de l'authentification</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">Pour aller plus loin . . .</a></li>
|
||
</ul></div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="related" id="related">Modules et directives concern<72>s</a></h2>
|
||
|
||
<p>Trois groupes de modules sont concern<72>s par le processus
|
||
d'authentification et d'autorisation. Vous devrez utiliser au moins un
|
||
module de chaque groupe.</p>
|
||
|
||
<ul>
|
||
<li>Type d'authentification (voir la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>)
|
||
<ul>
|
||
<li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li>
|
||
</ul>
|
||
</li>
|
||
<li>Fournisseur d'authentification (voir les directives <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> et <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>)
|
||
|
||
<ul>
|
||
<li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li>
|
||
</ul>
|
||
</li>
|
||
<li>Autorisation (voir la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>)
|
||
<ul>
|
||
<li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li>
|
||
<li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>On peut aussi ajouter <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et
|
||
<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>. Ces modules impl<70>mentent des
|
||
directives g<>n<EFBFBD>rales qui op<6F>rent au dessus de tous les modules
|
||
d'authentification.</p>
|
||
|
||
<p>Le module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> est un fournisseur
|
||
d'authentification et d'autorisation. Le module
|
||
<code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> fournit une autorisation et un
|
||
contr<74>le d'acc<63>s bas<61>s sur le nom du serveur, l'adresse IP ou
|
||
certaines caract<63>ristiques de la requ<71>te, mais ne fait pas partie du
|
||
syst<73>me fournisseur d'authentification. Le module
|
||
<code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> a <20>t<EFBFBD> cr<63><72> <20> des fins de
|
||
compatibilit<69> ascendante avec mod_access.</p>
|
||
|
||
<p>Vous devriez aussi jeter un coup d'oeil au manuel de recettes de <a href="access.html">Contr<74>le d'acc<63>s</a>, qui d<>crit les diff<66>rentes
|
||
m<>thodes de contr<74>le d'acc<63>s <20> votre serveur.</p>
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="introduction" id="introduction">Introduction</a></h2>
|
||
<p>Si votre site web contient des informations sensibles ou
|
||
destin<69>es seulement <20> un groupe de personnes restreint, les
|
||
techniques expos<6F>es dans cet article vont vous aider <20> vous assurer
|
||
que les personnes qui ont acc<63>s <20> ces pages sont bien celles
|
||
auxquelles vous avez donn<6E> l'autorisation d'acc<63>s.</p>
|
||
|
||
<p>Cet article d<>crit les m<>thodes "standards" de protection de
|
||
parties de votre site web que la plupart d'entre vous sont appel<65>s <20>
|
||
utiliser.</p>
|
||
|
||
<div class="note"><h3>Note :</h3>
|
||
<p>Si vos donn<6E>es ont un r<>el besoin de s<>curisation, pr<70>voyez
|
||
l'utilisation de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en plus de toute m<>thode
|
||
d'authentification.</p>
|
||
</div>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="theprerequisites" id="theprerequisites">Les pr<70>requis</a></h2>
|
||
<p>Les directives d<>crites dans cet article devront <20>tre ins<6E>r<EFBFBD>es
|
||
soit au niveau de la configuration de votre serveur principal (en
|
||
g<>n<EFBFBD>ral dans une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>), soit au niveau de la
|
||
configuration des r<>pertoires (fichiers <code>.htaccess</code>)</p>
|
||
|
||
<p>Si vous envisagez l'utilisation de fichiers
|
||
<code>.htaccess</code>, la configuration de votre serveur devra
|
||
permettre l'ajout de directives d'authentification dans ces
|
||
fichiers. Pour ce faire, on utilise la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, qui sp<73>cifie quelles
|
||
directives pourront <20>ventuellement contenir les fichiers de
|
||
configuration de niveau r<>pertoire.</p>
|
||
|
||
<p>Comme il est ici question d'authentification, vous aurez besoin
|
||
d'une directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>
|
||
du style :</p>
|
||
|
||
<div class="example"><p><code>
|
||
AllowOverride AuthConfig
|
||
</code></p></div>
|
||
|
||
<p>Si vous avez l'intention d'ajouter les directives directement
|
||
dans le fichier de configuration principal, vous devrez bien entendu
|
||
poss<73>der les droits en <20>criture sur ce fichier.</p>
|
||
|
||
<p>Vous devrez aussi conna<6E>tre un tant soit peu la structure des
|
||
r<>pertoires de votre serveur, ne serait-ce que pour savoir o<> se
|
||
trouvent certains fichiers. Cela ne devrait pas pr<70>senter de grandes
|
||
difficult<6C>s, et nous essaierons de clarifier tout <20>a lorsque le besoin
|
||
s'en fera sentir.</p>
|
||
|
||
<p>Enfin, vous devrez vous assurer que les modules
|
||
<code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
|
||
ont <20>t<EFBFBD> soit compil<69>s avec le binaire httpd, soit charg<72>s par le
|
||
fichier de configuration httpd.conf. Ces deux modules fournissent
|
||
des directives g<>n<EFBFBD>rales et des fonctionnalit<69>s qui sont critiques
|
||
quant <20> la configuration et l'utilisation de l'authentification et
|
||
de l'autorisation au sein du serveur web.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="gettingitworking" id="gettingitworking">Mise en oeuvre</a></h2>
|
||
<p>Nous d<>crivons ici les bases de la protection par mot de passe
|
||
d'un r<>pertoire de votre serveur.</p>
|
||
|
||
<p>Vous devez en premier lieu cr<63>er un fichier de mots de passe. La
|
||
m<>thode exacte selon laquelle vous allez cr<63>er ce fichier va varier
|
||
en fonction du fournisseur d'authentification choisi. Mais nous
|
||
entrerons dans les d<>tails plus loin, et pour le moment, nous nous
|
||
contenterons d'un fichier de mots de passe en mode texte.</p>
|
||
|
||
<p>Ce fichier doit <20>tre enregistr<74> <20> un endroit non accessible
|
||
depuis le web, de fa<66>on <20> ce que les clients ne puissent pas le
|
||
t<>l<EFBFBD>charger. Par exemple, si vos documents sont servis <20> partir de
|
||
<code>/usr/local/apache/htdocs</code>, vous pouvez enregistrer le
|
||
fichier des mots de passe dans
|
||
<code>/usr/local/apache/passwd</code>.</p>
|
||
|
||
<p>L'utilitaire <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> fourni avec Apache
|
||
permet de cr<63>er ce fichier. Vous le trouverez dans le r<>pertoire
|
||
<code>bin</code> de votre installation d'Apache. Si vous avez
|
||
install<6C> Apache <20> partir d'un paquetage tiers, il sera probablement
|
||
dans le chemin par d<>faut de vos ex<65>cutables.</p>
|
||
|
||
<p>Pour cr<63>er le fichier, tapez :</p>
|
||
|
||
<div class="example"><p><code>
|
||
htpasswd -c /usr/local/apache/passwd/passwords rbowen
|
||
</code></p></div>
|
||
|
||
<p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> vous demandera d'entrer le mot de
|
||
passe, et de le retaper pour confirmation :</p>
|
||
|
||
<div class="example"><p><code>
|
||
# htpasswd -c /usr/local/apache/passwd/passwords rbowen<br />
|
||
New password: mot-de-passe<br />
|
||
Re-type new password: mot-de-passe<br />
|
||
Adding password for user rbowen
|
||
</code></p></div>
|
||
|
||
<p>Si <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> n'est pas dans le chemin par
|
||
d<>faut de vos ex<65>cutables, vous devrez bien entendu entrer le chemin
|
||
complet du fichier. Dans le cas d'une installation par d<>faut, il se
|
||
trouve <20> <code>/usr/local/apache2/bin/htpasswd</code>.</p>
|
||
|
||
<p>Ensuite, vous allez devoir configurer le serveur de fa<66>on <20> ce
|
||
qu'il demande un mot de passe et lui pr<70>ciser quels utilisateurs ont
|
||
l'autorisation d'acc<63>s. Pour ce faire, vous pouvez soit <20>diter le
|
||
fichier <code>httpd.conf</code>, soit utiliser un fichier
|
||
<code>.htaccess</code>. Par exemple, si vous voulez prot<6F>ger le
|
||
r<>pertoire <code>/usr/local/apache/htdocs/secret</code>, vous pouvez
|
||
utiliser les directives suivantes, soit dans le fichier
|
||
<code>/usr/local/apache/htdocs/secret/.htaccess</code>, soit dans le
|
||
fichier <code>httpd.conf</code> <20> l'int<6E>rieur d'une section <Directory
|
||
/usr/local/apache/htdocs/secret> :</p>
|
||
|
||
<div class="example"><p><code>
|
||
AuthType Basic<br />
|
||
AuthName "Fichiers r<>serv<72>s"<br />
|
||
# (La ligne suivante est facultative)<br />
|
||
AuthBasicProvider file<br />
|
||
AuthUserFile /usr/local/apache/passwd/passwords<br />
|
||
Require user rbowen
|
||
</code></p></div>
|
||
|
||
<p>Examinons ces directives une <20> une. La directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> d<>finit la m<>thode
|
||
utilis<69>e pour authentifier l'utilisateur. La m<>thode la plus
|
||
courante est <code>Basic</code>, et elle est impl<70>ment<6E>e par
|
||
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. Il faut cependant garder <20> l'esprit
|
||
que l'authentification Basic transmet le mot de passe depuis le
|
||
client vers le serveur en clair. Cette m<>thode ne devra donc pas
|
||
<20>tre utilis<69>e pour la transmission de donn<6E>es hautement sensibles si
|
||
elle n'est pas associ<63>e au module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. Apache
|
||
supporte une autre m<>thode d'authentification : <code>AuthType
|
||
Digest</code>. Cette m<>thode est impl<70>ment<6E>e par le module <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> et est beaucoup plus s<>curis<69>e. La plupart
|
||
des navigateurs r<>cents supportent l'authentification Digest.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> d<>finit
|
||
l'<dfn>Identificateur</dfn> (Realm) <20> utiliser avec
|
||
l'authentification. L'identificateur poss<73>de deux fonctions. Tout
|
||
d'abord, le client pr<70>sente en g<>n<EFBFBD>ral cette information <20>
|
||
l'utilisateur dans le cadre de la bo<62>te de dialogue de mot de passe.
|
||
Ensuite, le client l'utilise pour d<>terminer quel mot de passe
|
||
envoyer pour une zone authentifi<66>e donn<6E>e.</p>
|
||
|
||
<p>Ainsi par exemple, une fois un client authentifi<66> dans la zone
|
||
<code>"Fichiers r<>serv<72>s"</code>, il soumettra <20> nouveau
|
||
automatiquement le m<>me mot de passe pour toute zone du m<>me serveur
|
||
marqu<71>e de l'identificateur <code>"Fichiers r<>serv<72>s"</code>. De
|
||
cette fa<66>on, vous pouvez <20>viter <20> un utilisateur d'avoir <20> saisir
|
||
plusieurs fois le m<>me mot de passe en faisant partager le m<>me
|
||
identificateur entre plusieurs zones r<>serv<72>es. Bien entendu et pour
|
||
des raisons de s<>curit<69>, le client devra redemander le mot
|
||
de passe chaque fois que le nom d'h<>te du serveur sera modifi<66>.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> est, dans ce
|
||
cas, facultative, car <code>file</code> est la valeur par d<>faut
|
||
pour cette directive. Par contre, cette directive sera obligatoire
|
||
si vous utilisez une autre source d'authentification comme
|
||
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou
|
||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> d<>finit le chemin
|
||
du fichier de mots de passe que nous venons de cr<63>er avec
|
||
<code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. Si vous poss<73>dez un grand nombre
|
||
d'utilisateurs, la dur<75>e de la recherche dans un fichier texte pour
|
||
authentifier un utilisateur <20> chaque requ<71>te va augmenter
|
||
rapidement, et pour pallier cet inconv<6E>nient, Apache peut aussi
|
||
stocker les donn<6E>es relatives aux
|
||
utilisateurs dans des bases de donn<6E>es rapides. Le module
|
||
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> fournit la directive <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>. Le programme <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> permet de cr<63>er et manipuler ces fichiers. Vous
|
||
trouverez de nombreuses options d'autres types d'authentification
|
||
fournies par des modules tiers dans la <a href="http://modules.apache.org/">Base de donn<6E>es des modules
|
||
d'Apache</a>.</p>
|
||
|
||
<p>Enfin, la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> impl<70>mente la partie
|
||
autorisation du processus en d<>finissant l'utilisateur autoris<69> <20>
|
||
acc<63>der <20> cette zone du serveur. Dans la section suivante, nous
|
||
d<>crirons les diff<66>rentes m<>thodes d'utilisation de la directive
|
||
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Autorisation d'acc<63>s <20>
|
||
plusieurs personnes</a></h2>
|
||
<p>Les directives ci-dessus n'autorisent qu'une personne (quelqu'un
|
||
poss<73>dant le nom d'utilisateur <code>rbowen</code>) <20> acc<63>der au
|
||
r<>pertoire. Dans la plupart des cas, vous devrez autoriser
|
||
l'acc<63>s <20> plusieurs personnes. C'est ici
|
||
qu'intervient la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>.</p>
|
||
|
||
<p>Si vous voulez autoriser l'acc<63>s <20> plusieurs personnes, vous
|
||
devez cr<63>er un fichier de groupes qui associe des noms de groupes
|
||
avec une liste d'utilisateurs de ce groupe. Le format de ce fichier
|
||
est tr<74>s simple, et vous pouvez le cr<63>er avec votre <20>diteur favori.
|
||
Son contenu se pr<70>sente comme suit :</p>
|
||
|
||
<div class="example"><p><code>
|
||
Nom-de-groupe: rbowen dpitts sungo rshersey
|
||
</code></p></div>
|
||
|
||
<p>Il s'agit simplement une liste des membres du groupe sous la
|
||
forme d'une ligne s<>par<61>e par des espaces.</p>
|
||
|
||
<p>Pour ajouter un utilisateur <20> votre fichier de mots de passe
|
||
pr<70>existant, entrez :</p>
|
||
|
||
<div class="example"><p><code>
|
||
htpasswd /usr/local/apache/passwd/passwords dpitts
|
||
</code></p></div>
|
||
|
||
<p>Vous obtiendrez le m<>me effet qu'auparavant, mais le mot de passe
|
||
sera ajout<75> au fichier, plut<75>t que d'en cr<63>er un nouveau (C'est le
|
||
drapeau <code>-c</code> qui permet de cr<63>er un nouveau fichier de
|
||
mots de passe)..</p>
|
||
|
||
<p>Maintenant, vous devez modifier votre fichier
|
||
<code>.htaccess</code> comme suit :</p>
|
||
|
||
<div class="example"><p><code>
|
||
AuthType Basic<br />
|
||
AuthName "By Invitation Only"<br />
|
||
# Ligne facultative :<br />
|
||
AuthBasicProvider file<br />
|
||
AuthUserFile /usr/local/apache/passwd/passwords<br />
|
||
AuthGroupFile /usr/local/apache/passwd/groups<br />
|
||
Require group Nom-de-groupe
|
||
</code></p></div>
|
||
|
||
<p>Maintenant, quiconque appartient au groupe
|
||
<code>Nom-de-groupe</code>, et poss<73>de une entr<74>e dans le fichier
|
||
<code>password</code> pourra acc<63>der au r<>pertoire s'il tape le bon
|
||
mot de passe.</p>
|
||
|
||
<p>Il existe une autre m<>thode moins contraignante pour autoriser
|
||
l'acc<63>s <20> plusieurs personnes. Plut<75>t que de cr<63>er un fichier de
|
||
groupes, il vous suffit d'ajouter la directive suivante :</p>
|
||
|
||
<div class="example"><p><code>
|
||
Require valid-user
|
||
</code></p></div>
|
||
|
||
<p>Le remplacement de la ligne <code>Require user rbowen</code> par
|
||
la ligne <code>Require valid-user</code> autorisera l'acc<63>s <20>
|
||
quiconque poss<73>dant une entr<74>e dans le fichier password, et ayant
|
||
tap<61> le bon mot de passe. Vous pouvez m<>me simuler le comportement
|
||
des groupes en associant un fichier de mots de passe diff<66>rent pour
|
||
chaque groupe. L'avantage de cette approche r<>side dans le fait
|
||
qu'Apache ne doit consulter qu'un fichier au lieu de deux. Par
|
||
contre, vous devez maintenir un nombre plus ou moins important de
|
||
fichiers de mots de passe, et vous assurer de faire r<>f<EFBFBD>rence au bon
|
||
fichier dans la directive <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="possibleproblems" id="possibleproblems">Probl<62>mes possibles</a></h2>
|
||
<p>L'authentification Basic est sp<73>cifi<66>e d'une telle mani<6E>re que
|
||
vos nom d'utilisateur et mot de passe doivent <20>tre v<>rifi<66>s chaque
|
||
fois que vous demandez un document au serveur, et ceci m<>me si vous
|
||
rechargez la m<>me page, et pour chaque image contenue dans la page
|
||
(si elles sont situ<74>es dans un r<>pertoire prot<6F>g<EFBFBD>). Comme vous
|
||
pouvez l'imaginer, ceci ralentit un peu le fonctionnement. La mesure
|
||
dans laquelle le fonctionnement est ralenti est proportionnelle <20> la
|
||
taille du fichier des mots de passe, car ce dernier doit <20>tre ouvert
|
||
et la liste des utilisateurs parcourue jusqu'<27> ce que votre nom soit
|
||
trouv<75>, et ceci chaque fois qu'une page est charg<72>e.</p>
|
||
|
||
<p>En cons<6E>quence, ce ralentissement impose une limite pratique au
|
||
nombre d'utilisateurs que vous pouvez enregistrer dans un fichier de
|
||
mots de passe. Cette limite va varier en fonction des performances
|
||
de votre serveur, mais vous commencerez <20> remarquer un
|
||
ralentissement lorsque vous atteindrez quelques centaines
|
||
d'utilisateurs, et serez alors appel<65>s <20> utiliser une m<>thode
|
||
d'authentification diff<66>rente.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="dbmdbd" id="dbmdbd">Autre m<>thode de stockage des mots de
|
||
passe</a></h2>
|
||
|
||
<p>Suite au probl<62>me <20>voqu<71> pr<70>c<EFBFBD>demment et induit par le stockage
|
||
des mots de passe dans un fichier texte, vous pouvez <20>tre appel<65> <20>
|
||
stocker vos mots de passe d'une autre mani<6E>re, par exemple dans une
|
||
base de donn<6E>es.</p>
|
||
|
||
<p>Pour y parvenir, on peut utiliser les modules
|
||
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
|
||
Vous pouvez choisir comme format de stockage <code>dbm</code> ou
|
||
<code>dbd</code> <20> la place de <code>file</code> pour la directive
|
||
<code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
|
||
|
||
<p>Par exemple, pour s<>lectionner un fichier dbm <20> la place d'un
|
||
fichier texte :</p>
|
||
|
||
<div class="example"><p><code>
|
||
<Directory /www/docs/private><br />
|
||
<span class="indent">
|
||
AuthName "Private"<br />
|
||
AuthType Basic<br />
|
||
AuthBasicProvider dbm<br />
|
||
AuthDBMUserFile /www/passwords/passwd.dbm<br />
|
||
Require valid-user<br />
|
||
</span>
|
||
</Directory>
|
||
</code></p></div>
|
||
|
||
<p>D'autres options sont disponibles. Consultez la documentation de
|
||
<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> pour plus de d<>tails.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="multprovider" id="multprovider">Utilisation de plusieurs fournisseurs
|
||
d'authentification</a></h2>
|
||
|
||
<p>Depuis l'arriv<69>e des nouvelles architecture d'autorisation et
|
||
d'authentification bas<61>es sur les fournisseurs, vous n'<27>tes plus
|
||
limit<69> <20> une m<>thode d'authentification et d'autorisation
|
||
unique. En fait, on peut panacher autant de fournisseurs que l'on
|
||
veut, ce qui vous permet d'<27>laborer l'architecture qui correspond
|
||
exactement <20> vos besoins. Dans l'exemple suivant, on utilise
|
||
conjointement les fournisseurs d'authentification
|
||
file et LDAP :</p>
|
||
|
||
<div class="example"><p><code>
|
||
<Directory /www/docs/private><br />
|
||
<span class="indent">
|
||
AuthName "Private"<br />
|
||
AuthType Basic<br />
|
||
AuthBasicProvider file ldap<br />
|
||
AuthUserFile /usr/local/apache/passwd/passwords<br />
|
||
AuthLDAPURL ldap://ldaphost/o=yourorg<br />
|
||
Require valid-user<br />
|
||
</span>
|
||
</Directory>
|
||
</code></p></div>
|
||
|
||
<p>Dans cet exemple, le fournisseur file va tenter d'authentifier
|
||
l'utilisateur en premier. S'il n'y parvient pas, le fournisseur LDAP
|
||
sera sollicit<69>. Ceci permet l'<27>largissement des possibilit<69>s
|
||
d'authentification si votre organisation impl<70>mente plusieurs types
|
||
de bases d'authentification. D'autres sc<73>narios d'authentification
|
||
et d'autorisation peuvent associer un type d'authentification avec
|
||
un autre type d'autorisation. Par exemple, une authentification
|
||
bas<61>e sur un fichier de mots de passe peut permettre l'attribution
|
||
d'autorisations bas<61>e sur un annuaire LDAP.</p>
|
||
|
||
<p>Tout comme plusieurs fournisseurs d'authentification peuvent <20>tre
|
||
impl<70>ment<6E>s, on peut aussi utiliser plusieurs m<>thodes
|
||
d'autorisation. Dans l'exemple suivant, on utilise <20> la fois une
|
||
autorisation <20> base de fichier de groupes et une autorisation <20> base
|
||
de groupes LDAP.</p>
|
||
|
||
<div class="example"><p><code>
|
||
<Directory /www/docs/private><br />
|
||
<span class="indent">
|
||
AuthName "Private"<br />
|
||
AuthType Basic<br />
|
||
AuthBasicProvider file<br />
|
||
AuthUserFile /usr/local/apache/passwd/passwords<br />
|
||
AuthLDAPURL ldap://ldaphost/o=yourorg
|
||
AuthGroupFile /usr/local/apache/passwd/groups<br />
|
||
Require group GroupName<br />
|
||
Require ldap-group cn=mygroup,o=yourorg<br />
|
||
</span>
|
||
</Directory>
|
||
</code></p></div>
|
||
|
||
<p>Pour un sc<73>nario d'autorisation un peu plus avanc<6E>, des
|
||
directives de conteneur d'autorisation comme <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> et
|
||
<code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> permettent d'appliquer une
|
||
logique telle que l'ordre dans lequel les autorisations sont
|
||
appliqu<71>es peut <20>tre enti<74>rement contr<74>l<EFBFBD> au niveau de la
|
||
configuration. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs
|
||
d'autorisations</a> pour un exemple de ce contr<74>le.</p>
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="beyond" id="beyond">Pour aller plus loin qu'une simple
|
||
autorisation</a></h2>
|
||
|
||
<p>La mani<6E>re dont les autorisations sont accord<72>es est d<>sormais
|
||
beaucoup plus souple qu'une simple v<>rification aupr<70>s d'une seule
|
||
base de donn<6E>es. Il est maintenant possible de choisir l'ordre, la
|
||
logique et la mani<6E>re selon lesquels une autorisation est
|
||
accord<72>e.</p>
|
||
|
||
<h3><a name="authandororder" id="authandororder">Appliquer logique et
|
||
ordonnancement</a></h3>
|
||
<p>Le contr<74>le de la mani<6E>re et de l'ordre selon lesquels le
|
||
processus d'autorisation <20>tait appliqu<71>
|
||
constituait une sorte de myst<73>re par
|
||
le pass<73>. Dans Apache 2.2, un m<>canisme d'authentification bas<61>
|
||
sur les fournisseurs a <20>t<EFBFBD> d<>velopp<70> afin de s<>parer le
|
||
v<>ritable processus d'authentification de l'autorisation et ses
|
||
diff<66>rentes fonctionnalit<69>s. Un des avantages colat<61>raux
|
||
r<>sidait dans le fait que les fournisseurs d'authentification
|
||
pouvaient <20>tre configur<75>s et appel<65>s selon un ordre particulier
|
||
ind<6E>pendant de l'ordre de chargement du module auth proprement
|
||
dit. Ce m<>canisme bas<61> sur les fournisseurs a <20>t<EFBFBD> <20>tendu au
|
||
processus d'autorisation. Ceci signifie que la directive
|
||
<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d<>finit
|
||
non seulement quelles m<>thodes d'autorisation doivent <20>tre
|
||
utilis<69>es, mais aussi l'ordre dans lequel elles sont appel<65>es.
|
||
Les m<>thodes d'autorisation sont appel<65>es selon l'ordre dans
|
||
lequel les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> apparaissent dans la
|
||
configuration.</p>
|
||
|
||
<p>Avec l'introduction des directives de conteneur
|
||
d'autorisations <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code>
|
||
et <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>, la
|
||
configuration contr<74>le aussi le moment o<> les m<>thodes
|
||
d'autorisation sont appel<65>es, et quels crit<69>res d<>terminent
|
||
l'autorisation d'acc<63>s. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs
|
||
d'autorisations</a> pour un exemple de la mani<6E>re de les
|
||
utiliser pour exprimer des logiques d'autorisation
|
||
complexes.</p>
|
||
|
||
<p>Par d<>faut, toutes les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> sont
|
||
trait<69>es comme si elles <20>taient contenues dans une directive
|
||
<code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>. En d'autres termes, il
|
||
suffit
|
||
qu'une m<>thode d'autorisation s'applique avec succ<63>s pour que
|
||
l'autorisation soit accord<72>e.</p>
|
||
|
||
|
||
|
||
<h3><a name="reqaccessctrl" id="reqaccessctrl">Utilisation de fournisseurs
|
||
d'autorisation pour le contr<74>le d'acc<63>s</a></h3>
|
||
<p>La v<>rification du nom d'utilisateur et du mot de passe ne
|
||
constituent qu'un aspect des m<>thodes d'authentification.
|
||
Souvent, le contr<74>le d'acc<63>s <20> certaines personnes n'est pas
|
||
bas<61> sur leur identit<69> ; il peut d<>pendre, par exemple de leur
|
||
provenance.</p>
|
||
|
||
<p>Les fournisseurs d'autorisation <code class="directive"><a href="../mod/mod_authz_host.html# all">
|
||
all</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html# env">
|
||
env</a></code>, <code class="directive"><a href="../mod/mod_authz_host.html# host">
|
||
host</a></code> et <code class="directive"><a href="../mod/mod_authz_host.html# ip">
|
||
ip</a></code> vous permettent d'accorder ou refuser l'acc<63>s en
|
||
fonction de crit<69>res tels que le nom d'h<>te ou l'adresse
|
||
IP de la machine qui effectue la requ<71>te.</p>
|
||
|
||
<p>L'utilisation de ces fournisseurs est sp<73>cifi<66>e <20> l'aide de
|
||
la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>. Cette directive
|
||
permet d'enregistrer quels fournisseurs d'autorisation
|
||
seront appel<65>s dans le processus d'autorisation au cours du
|
||
traitement de la requ<71>te. Par exemple :</p>
|
||
|
||
<div class="example"><p><code>
|
||
Require ip <var>adresse</var>
|
||
</code></p></div>
|
||
|
||
<p>o<> <var>adresse</var> est une adresse IP (ou une adresse IP
|
||
partielle) ou :</p>
|
||
|
||
<div class="example"><p><code>
|
||
Require host <var>nom_domaine</var>
|
||
</code></p></div>
|
||
|
||
<p>o<> <var>nom_domaine</var> est un nom de domaine enti<74>rement
|
||
qualif<69> (ou un nom de domaine partiel) ; vous pouvez indiquer
|
||
plusieurs adresses ou noms de domaines, si vous le d<>sirez.</p>
|
||
|
||
<p>Par exemple, si vous voulez rejeter les spams dont une
|
||
machine vous inonde, vous pouvez utiliser ceci :</p>
|
||
|
||
<div class="example"><p><code>
|
||
<RequireAll>
|
||
<span class="indent">
|
||
Require all granted<br />
|
||
Require not ip 10.252.46.165
|
||
</span>
|
||
</RequireAll>
|
||
</code></p></div>
|
||
|
||
<p>Ainsi, les visiteurs en provenance de cette adresse ne
|
||
pourront pas voir le contenu concern<72> par cette directive. Si,
|
||
par contre, vous connaissez le nom de la machine, vous pouvez
|
||
utiliser ceci :</p>
|
||
|
||
<div class="example"><p><code>
|
||
<RequireAll>
|
||
<span class="indent">
|
||
Require all granted<br />
|
||
Require not host <var>serveur.example.com</var>
|
||
</span>
|
||
</RequireAll>
|
||
</code></p></div>
|
||
|
||
<p>Et si vous voulez interdire l'acc<63>s <20> toutes les machines
|
||
d'un domaine, vous pouvez sp<73>cifier une partie seulement de
|
||
l'adresse ou du nom de domaine :</p>
|
||
|
||
<div class="example"><p><code>
|
||
<RequireAll>
|
||
<span class="indent">
|
||
Require all granted<br />
|
||
<RequireNone>
|
||
<span class="indent">
|
||
Require ip 192.168.205<br />
|
||
Require host phishers.example.com autres-idiots.exemple<br />
|
||
Require host ke
|
||
</span>
|
||
</RequireNone>
|
||
</span>
|
||
</RequireAll>
|
||
</code></p></div>
|
||
|
||
<p>Dans l'exemple ci-dessus, on utilise la directive du
|
||
conteneur <code class="directive"><a href="../mod/mod_authz_core.html#requirenone"><RequireNone></a></code> afin de s'assurer
|
||
qu'aucune des directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> qu'il contient ne
|
||
fasse correspondre ses param<61>tres avant d'accorder
|
||
l'autorisation.</p>
|
||
|
||
|
||
|
||
<h3><a name="filesystem" id="filesystem">Compatibilit<69> ascendante du contr<74>le
|
||
d'acc<63>s</a></h3>
|
||
<p>L'adoption d'un m<>canisme <20> base de fournisseurs pour
|
||
l'authentification, a pour effet colat<61>ral de rendre inutiles
|
||
les directives <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> et <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code>. Cependant, et <20>
|
||
des fins de compatibilit<69> ascendante vers les anciennes
|
||
configurations, ces directives ont <20>t<EFBFBD> d<>plac<61>es vers le module
|
||
<code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>.</p>
|
||
|
||
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="socache" id="socache">Mise en cache de l'authentification</a></h2>
|
||
<p>Dans certains cas, l'authentification constitue une charge
|
||
inacceptable pour un fournisseur d'authentification ou votre r<>seau.
|
||
Ceci est susceptible d'affecter les utilisateurs du module
|
||
<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> (ou les fournisseurs
|
||
tiers/personnalis<69>s). Pour r<>soudre ce probl<62>me, HTTPD 2.3/2.4
|
||
propose un nouveau fournisseur de mise en cache,
|
||
<code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>, qui permet de mettre en cache
|
||
les donn<6E>es d'authentification, et ainsi r<>duire la charge du/des
|
||
fournisseurs(s) originels.</p>
|
||
<p>Cette mise en cache apportera un gain en performance substantiel
|
||
<20> certains utilisateurs.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="moreinformation" id="moreinformation">Pour aller plus loin . . .</a></h2>
|
||
<p>Vous pouvez aussi lire la documentation de
|
||
<code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> et <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>
|
||
qui contient des informations suppl<70>mentaires <20> propos du
|
||
fonctionnement de tout ceci.
|
||
Certaines configurations d'authentification peuvent aussi <20>tre
|
||
simplifi<66>es <20> l'aide de la directive <code class="directive"><a href="../mod/mod_authn_core.html#<authnprovideralias>"><AuthnProviderAlias></a></code>.</p>
|
||
|
||
<p>Les diff<66>rents algorithmes de chiffrement support<72>s par Apache
|
||
pour authentifier les donn<6E>es sont expliqu<71>s dans <a href="../misc/password_encryptions.html">PasswordEncryptions</a>.</p>
|
||
|
||
<p>Enfin vous pouvez consulter la recette <a href="access.html">Contr<74>le
|
||
d'acc<63>s</a>, qui d<>crit un certain nombre de situations en relation
|
||
avec le sujet.</p>
|
||
|
||
</div></div>
|
||
<div class="bottomlang">
|
||
<p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../fr/howto/auth.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </a></p>
|
||
</div><div id="footer">
|
||
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autoris<69> 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><script type="text/javascript">
|
||
if (typeof(prettyPrint) !== undefined) {
|
||
prettyPrint();
|
||
}
|
||
</script>
|
||
</body></html> |