mod_authz_host.html.fr [plain text]
<?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_authz_host - 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>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/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.2</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.2</a> > <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_authz_host</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_host.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_authz_host.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_authz_host.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_authz_host.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Autorisations de groupe basées sur l'hôte (nom ou adresse
IP)</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>authz_host_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_authz_host.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis les versions 2.1 et supérieures
d'Apache</td></tr></table>
<h3>Sommaire</h3>
<p>Les directives fournies par le module
<code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> s'utilisent dans des sections
<code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>,
<code class="directive"><a href="../mod/core.html#files"><Files></a></code>, et
<code class="directive"><a href="../mod/core.html#location"><Location></a></code>, ou des
fichiers
<code><a href="core.html#accessfilename">.htaccess</a> </code> pour
contrôler l'accès à certaines zones du serveur. Le contrôle d'accès
peut être effectué en fonction du nom d'hôte, de l'adresse IP, ou
d'autres caractéristiques de la requête client, telles qu'elles sont
enregistrées dans des <a href="../env.html">variables
d'environnement</a>. Les directives <code class="directive"><a href="#allow">Allow</a></code> et <code class="directive"><a href="#deny">Deny</a></code> permettent de spécifier
quels clients sont ou ne sont pas autorisés à accéder au serveur,
alors que la directive <code class="directive"><a href="#order">Order</a></code> définit le statut d'accès
par défaut, et détermine la manière dont les directives <code class="directive"><a href="#allow">Allow</a></code> et <code class="directive"><a href="#deny">Deny</a></code> vont interagir.</p>
<p>Les restrictions d'accès basées sur l'hôte et l'authentification
à base de mots de passe peuvent être utilisées conjointement. Dans
ce cas, la directive <code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code>
permet de déterminer la manière dont ces deux méthodes de
restriction interagissent.</p>
<p>En général, les directives de restriction d'accès s'appliquent à
toutes les méthodes d'accès (<code>GET</code>, <code>PUT</code>,
<code>POST</code>, etc...). C'est d'ailleurs ce que l'on souhaite
dans la plupart des cas. Il est cependant possible de ne restreindre
l'accès que pour certaines méthodes, tout en laissant les autres
méthodes sans protection, en plaçant les directives dans une section
<code class="directive"><a href="../mod/core.html#limit"><Limit></a></code>.</p>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#allow">Allow</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#deny">Deny</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#order">Order</a></li>
</ul>
<h3>Voir aussi</h3>
<ul class="seealso">
<li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
<li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li>
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôles quels hôtes peuvent accéder à une certaine zone
du serveur</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> Allow from all|<var>hôte</var>|env=[!]<var>var-env</var>
[<var>hôte</var>|env=[!]<var>var-env</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</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_authz_host</td></tr>
</table>
<p>La directive <code class="directive">Allow</code> permet de contrôler
quels hôtes peuvent
accéder à une zone du serveur. On peut contrôler
l'accès en fonction du nom d'hôte, de l'adresse IP, d'un intervalle
d'adresses IP, ou d'autres caractéristiques de la requête client
enregistrées dans des variables d'environnement.</p>
<p>Le premier argument de cette directive est toujours
<code>from</code>. Les arguments suivants peuvent se présenter sous
trois formes. Si <code>Allow from all</code> est spécifié, tous les
hôtes ont l'autorisation d'accès, sauf si la configuration des
directives <code class="directive"><a href="#deny">Deny</a></code> et
<code class="directive"><a href="#order">Order</a></code> apporte une
restriction quelconque, comme décrit plus loin. Afin de n'accorder
l'accès au serveur qu'à certains hôtes ou groupes d'hôtes,
on peut utiliser l'argument <var>hôte</var> sous les formes
suivantes :</p>
<dl>
<dt>Un nom de domaine, éventuellement partiel</dt>
<dd>
<div class="example"><h3>Exemple :</h3><p><code>
Allow from apache.org<br />
Allow from .net exemple.edu
</code></p></div>
<p>Les hôtes dont les nom correspond à la chaîne spécifiée, ou
se terminant par elle, sont autorisés à accéder. Seuls les
éléments complets du nom de domaine sont comparés, si bien que
l'exemple ci-dessus correspondra à <code>foo.apache.org</code>,
mais pas à <code>fooapache.org</code>. Avec cette configuration,
Apache va effectuer une double recherche DNS sur l'adresse IP du
client, sans tenir compte de la définition de la directive
<code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code>. Il effectue
tout d'abord une recherche DNS inverse sur l'adresse IP afin de
déterminer le nom d'hôte associé, puis une recherche directe sur
le nom d'hôte pour vérifier s'il correspond bien à l'adresse IP
originale. L'accès ne sera accordé que si le nom d'hôte correspond
à la chaîne spécifiée et si les recherches DNS inverse et
directe produisent un résultat cohérent.</p></dd>
<dt>Une adresse IP complète</dt>
<dd>
<div class="example"><h3>Exemple :</h3><p><code>
Allow from 10.1.2.3<br />
Allow from 192.168.1.104 192.168.1.205
</code></p></div>
<p>L'adresse IP d'un hôte qui a l'autorisation d'accès</p></dd>
<dt>Une adresse IP partielle</dt>
<dd>
<div class="example"><h3>Exemple :</h3><p><code>
Allow from 10.1<br />
Allow from 10 172.20 192.168.2
</code></p></div>
<p>Les 1 à 3 premiers octets d'une adresse IP, pour référencer un
sous-réseau.</p></dd>
<dt>Une paire réseau/masque de sous-réseau</dt>
<dd>
<div class="example"><h3>Exemple :</h3><p><code>
Allow from 10.1.0.0/255.255.0.0
</code></p></div>
<p>Un réseau a.b.c.d, et un masque de sous-réseau w.x.y.z. pour la
restriction plus fine d'un sous-réseau.</p></dd>
<dt>Une spécification CIDR réseau/nnn</dt>
<dd>
<div class="example"><h3>Exemple :</h3><p><code>
Allow from 10.1.0.0/16
</code></p></div>
<p>Identique au cas précédent, mais le masque de sous-réseau se
compose des nnn bits de poids forts.</p></dd>
</dl>
<p>Notez que les trois derniers exemples référencent exactement le
même ensemble d'hôtes.</p>
<p>On peut spécifier des adresses et sous-réseaux IPv6 de la manière
suivante :</p>
<div class="example"><p><code>
Allow from 2001:db8::a00:20ff:fea7:ccea<br />
Allow from 2001:db8::a00:20ff:fea7:ccea/10
</code></p></div>
<p>Le troisième format d'arguments de la directive
<code class="directive">Allow</code> permet de contrôler l'accès au
serveur en fonction de l'existence d'une <a href="../env.html">variable d'environnement</a>. Lorsque
<code>Allow from
env=<var>var-env</var></code> est spécifié, la
requête est autorisée si la variable d'environnement
<var>var-env</var> existe. Lorsque <code>Allow from
env=!<var>var-env</var></code> est spécifié, la requête est
autorisée à accéder si la variable d'environnement
<var>var-env</var> n'existe pas. Le serveur fournit la possibilité
de définir des variables d'environnement avec une grande souplesse
en fonction des caractéristiques de la requête client à l'aide des
directives fournies par le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. On
peut ainsi utiliser cette directive pour contrôler l'accès en
fonction de certains en-têtes comme <code>User-Agent</code> (type de
navigateur), <code>Referer</code>, etc...</p>
<div class="example"><h3>Exemple :</h3><p><code>
SetEnvIf User-Agent ^KnockKnock/2\.0 laisse_moi_entrer<br />
<Directory /docroot><br />
<span class="indent">
Order Deny,Allow<br />
Deny from all<br />
Allow from env=laisse_moi_entrer<br />
</span>
</Directory>
</code></p></div>
<p>Dans cet exemple, les navigateurs dont la chaîne de description
de l'en-tête user-agent commence par <code>KnockKnock/2.0</code> se
verront accorder l'accès, alors que tous les autres se le verront
refuser.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Deny" id="Deny">Deny</a> <a name="deny" id="deny">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine quels hôtes ont l'accès au serveur
refusé</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> Deny from all|<var>hôte</var>|env=[!]<var>var-env</var>
[<var>hôte</var>|env=[!]<var>var-env</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</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_authz_host</td></tr>
</table>
<p>Cette directive permet de restreindre l'accès au serveur en
fonction du nom d'hôte, de l'adresse IP, ou de variables
d'environnement. Les arguments de la directive
<code class="directive">Deny</code> sont identiques à ceux de la directive
<code class="directive"><a href="#allow">Allow</a></code>..</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="Order" id="Order">Order</a> <a name="order" id="order">Directive</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine le statut d'accès par défaut et l'ordre dans
lequel les directives <code class="directive">Allow</code> et
<code class="directive">Deny</code> sont évaluées.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code> Order <var>ordre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Order Deny,Allow</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Limit</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_authz_host</td></tr>
</table>
<p>La directive <code class="directive">Order</code>, utilisée avec les
directives <code class="directive"><a href="#allow">Allow</a></code> et
<code class="directive"><a href="#deny">Deny</a></code>, fournit un
système de contrôle d'accès en trois passes. La première passe
traite soit toutes les directives <code class="directive"><a href="#allow">Allow</a></code>, soit toutes les
directives <code class="directive"><a href="#deny">Deny</a></code>,
comme spécifié par la directive <code class="directive">Order</code>. La
seconde passe traite le reste des directives (<code class="directive"><a href="#deny">Deny</a></code> ou <code class="directive"><a href="#allow">Allow</a></code>). La troisième passe
s'applique à toutes les requêtes auxquelles aucune des deux
premières passes ne s'appliquent.</p>
<p>Notez que toutes les directives <code class="directive"><a href="#allow">Allow</a></code> et <code class="directive"><a href="#deny">Deny</a></code> sont traitées, à la
différence d'un pare-feu classique, où seule la première règle qui
convient est traitée. La dernière directive qui convient l'emporte
sur les autres (à la différence là aussi d'un pare-feu classique).
De plus, l'ordre dans lequel les lignes apparaissent dans les
fichiers de configuration n'a aucune importance -- toutes les
directives <code class="directive"><a href="#allow">Allow</a></code> sont traitées comme un
groupe, toutes les directives <code class="directive"><a href="#deny">Deny</a></code> comme un autre, et le
statut d'accès par défaut est indépendant.</p>
<p><em>Ordre</em> peut être soit :</p>
<dl>
<dt><code>Allow,Deny</code></dt>
<dd>Toutes les directives <code class="directive"><a href="#allow">Allow</a></code> sont évaluées en premier
; l'une d'elles au moins doit convenir, faute de quoi la requête
sera rejetée. Vient ensuite le tour des directives <code class="directive"><a href="#deny">Deny</a></code>. Si l'une au moins
convient, le requête est rejetée. Enfin, toute requête à laquelle
ne convient aucune directive <code class="directive"><a href="#allow">Allow</a></code> ou <code class="directive"><a href="#deny">Deny</a></code> sera rejetée par défaut.</dd>
<dt><code>Deny,Allow</code></dt>
<dd>Toutes les directives <code class="directive"><a href="#deny">Deny</a></code> sont évaluées en premier
; si l'une au moins
convient, le requête est rejetée, <strong>sauf</strong> si une
directive <code class="directive"><a href="#allow">Allow</a></code>
convient aussi. Enfin,
toute requête à laquelle
ne convient aucune directive <code class="directive"><a href="#allow">Allow</a></code> ou <code class="directive"><a href="#deny">Deny</a></code> aura l'autorisation
d'accès par défaut.</dd>
<dt><code>Mutual-failure</code></dt>
<dd>Cet ordre est identique à l'ordre <code>Order
Allow,Deny</code> qui le remplace.</dd>
</dl>
<p>Les mots-clés ne doivent être séparés que par des virgules ;
aucun espace ne doit s'intercaler entre eux.</p>
<table class="bordered">
<tr>
<th>Directives qui conviennent</th>
<th>Résultat de Allow,Deny</th>
<th>Résultat de Deny,Allow</th>
</tr><tr>
<th>Allow seulement convient</th>
<td>Requête autorisée</td>
<td>Requête autorisée</td>
</tr><tr>
<th>Deny seulement convient</th>
<td>Requête rejetée</td>
<td>Requête rejetée</td>
</tr><tr>
<th>Aucune directive ne convient</th>
<td>La seconde directive par défaut: Rejet</td>
<td>La seconde directive par défaut: Autorisation</td>
</tr><tr>
<th>Allow & Deny conviennent</th>
<td>La dernière directive qui convient prend le contrôle: Rejet</td>
<td>La dernière directive qui convient prend le contrôle: Autorisation</td>
</tr>
</table>
<p>Dans l'exemple suivant, tous les hôtes du domaine apache.org ont
l'autorisation d'accès ; tous les autres hôtes voient leur accès
refusé.</p>
<div class="example"><p><code>
Order Deny,Allow<br />
Deny from all<br />
Allow from apache.org
</code></p></div>
<p>Dans l'exemple suivant, tous les hôtes du domaine apache.org ont
l'autorisation d'accès, sauf les hôtes du sous-domaine
foo.apache.org qui voient leur accès refusé. Tous les hôtes qui ne
font pas partie du domaine apache.org voient leur accès refusé car
le statut d'accès par défaut est défini à <code class="directive"><a href="#deny">Deny</a></code>.</p>
<div class="example"><p><code>
Order Allow,Deny<br />
Allow from apache.org<br />
Deny from foo.apache.org
</code></p></div>
<p>En revanche, si la directive <code class="directive">Order</code> du
dernier exemple a pour valeur <code>Deny,Allow</code>, tous les
hôtes auront l'autorisation d'accès. Ceci est dû au fait que l'on ne
tient pas compte de l'ordre dans lequel apparaissent les directives
dans le fichier de configuration, et que la directive <code>Allow
from apache.org</code> est évaluée en dernier et l'emporte donc sur
la directive <code>Deny from foo.apache.org</code>. Tous les hôtes
qui ne font pas partie du domaine <code>apache.org</code> auront
aussi l'autorisation d'accès, car le statut d'accès par défaut est
défini à
<code class="directive"><a href="#allow">Allow</a></code>.</p>
<p>Même en l'absence de directives <code class="directive"><a href="#allow">Allow</a></code> et <code class="directive"><a href="#deny">Deny</a></code> associées, la présence
d'une directive <code class="directive">Order</code> peut affecter l'accès à
une partie du serveur, à cause de son effet sur le statut d'accès
par défaut. Par exemple,</p>
<div class="example"><p><code>
<Directory /www><br />
<span class="indent">
Order Allow,Deny<br />
</span>
</Directory>
</code></p></div>
<p>interdira tout accès au répertoire <code>/www</code> car le
statut d'accès par défaut est défini à <code class="directive"><a href="#deny">Deny</a></code>.</p>
<p>La directive <code class="directive">Order</code> ne contrôle l'ordre de
traitement des directives d'accès qu'à l'intérieur de chaque phase
du traitement de la configuration du serveur. Ceci implique, par
exemple, qu'une directive <code class="directive"><a href="#allow">Allow</a></code> ou <code class="directive"><a href="#deny">Deny</a></code> apparaissant dans une
section <code class="directive"><a href="../mod/core.html#location"><Location></a></code>
sera toujours évaluée après une directive <code class="directive"><a href="#allow">Allow</a></code> ou <code class="directive"><a href="#deny">Deny</a></code> apparaissant dans une
section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> ou un fichier
<code>.htaccess</code>, sans tenir compte de la définition de la
directive <code class="directive">Order</code>. Pour plus de détails sur la
fusion des sections de configuration, voir la documentation <a href="../sections.html">Comment fonctionnent les sections Directory,
Location et Files</a>.</p>
</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_host.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/mod/mod_authz_host.html" title="Français"> fr </a> |
<a href="../ja/mod/mod_authz_host.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="../ko/mod/mod_authz_host.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2013 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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>