<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_authnz_fcgi - Serveur HTTP Apache Version 2.4</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.min.js">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_authnz_fcgi</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_fcgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_authnz_fcgi.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Permet &agrave; une application d'autorisation FastCGI de g&eacute;rer
l'authentification et l'autorisation httpd.</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur&nbsp;de&nbsp;Module:</a></th><td>authnz_fcgi_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier&nbsp;Source:</a></th><td>mod_authnz_fcgi.c</td></tr>
<tr><th><a href="module-dict.html#Compatibility">Compatibilit&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.4.10 du serveur HTTP
Apache</td></tr></table>
<h3>Sommaire</h3>

    <p>Ce module permet aux applications d'autorisation FastCGI
    d'authentifier les utilisateurs et de contr&ocirc;ler leur acc&egrave;s aux
    ressources. Il supporte les syst&egrave;mes d'autorisation FastCGI
    g&eacute;n&eacute;riques qui participent en une seule phase &agrave; l'authentification
    et &agrave; l'autorisation, ainsi que les processus d'authentification et
    d'autorisation sp&eacute;cifiques &agrave; Apache httpd qui interviennent en une
    ou plusieurs phases.</p>

    <p>Les processus d'autorisation FastCGI peuvent authentifier un
    utilisateur via son identificateur et son mot de passe comme dans le
    processus d'authentification basique, ou via un m&eacute;canisme
    arbitraire.</p>
</div>
<div id="quickview"><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif"> <a href="#invocations">Modes d'invocation</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#examples">Exemples suppl&eacute;mentaires</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#limitations">Limitations</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#logging">Journalisation</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif"> <a href="#authnzfcgicheckauthnprovider">AuthnzFcgiCheckAuthnProvider</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_authnz_fcgi">Probl&egrave;mes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_authnz_fcgi">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="../howto/auth.html">Authentification, autorisation et
contr&ocirc;le d'acc&egrave;s</a></li>
<li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
<li><code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code></li>
<li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="invocations">Modes d'invocation <a title="Lien permanent" href="#invocations" class="permalink">&para;</a></h2>

    <p>Les modes d'invocation des processus d'autorisation FastCGI que
    ce module supporte se distinguent par deux caract&eacute;ristiques : le
    <em>type</em> et le <em>m&eacute;canisme</em> d'authentification.</p>

    <p>Le <em>Type</em> est simplement <code>authn</code> pour
    l'authentification, <code>authz</code> pour l'autorisation et
    <code>authnz</code> l'authentification et l'autorisation.</p>

    <p>Le <em>m&eacute;canisme</em> d'authentification fait r&eacute;f&eacute;rence aux
    m&eacute;canismes d'authentification et aux phases de traitement de la
    configuration de Apache httpd, et peut &ecirc;tre
    <code>AuthBasicProvider</code>, <code>Require</code>, ou
    <code>check_user_id</code>. Les deux premiers m&eacute;canismes
    correspondent aux directives utilis&eacute;es pour participer aux phases de
    traitement appropri&eacute;es.</p>

    <p>Description de chaque mode:</p>

    <dl>
      <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
      <code>AuthBasicProvider</code></dt>

      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est d&eacute;finie &agrave;
      <code>AUTHORIZER</code>, et la variable
      <code>FCGI_APACHE_ROLE</code> &agrave; <code>AUTHENTICATOR</code>.
      L'application doit &ecirc;tre sp&eacute;cifi&eacute;e en tant que fournisseur de type
      <em>authn</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>, et
      activ&eacute;e via la directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Lorsqu'elle
      est invoqu&eacute;e, l'application est cens&eacute;e authentifier le client &agrave;
      l'aide de l'identifiant et du mot de passe de l'utilisateur.
      Exemple d'application :

<pre class="prettyprint lang-perl">#!/usr/bin/perl
use FCGI;
my $request = FCGI::Request();
while ($request-&gt;Accept() &gt;= 0) {
    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
    die if $ENV{'FCGI_ROLE'}        ne "AUTHORIZER";
    die if !$ENV{'REMOTE_PASSWD'};
    die if !$ENV{'REMOTE_USER'};

    print STDERR "This text is written to the web server error log.\n";

    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
        $ENV{'REMOTE_PASSWD'} eq "bar" ) {
        print "Status: 200\n";
        print "Variable-AUTHN_1: authn_01\n";
        print "Variable-AUTHN_2: authn_02\n";
        print "\n";
    }
    else {
        print "Status: 401\n\n";
    }
}</pre>


      Exemple de configuration httpd :
<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/
&lt;Location "/protected/"&gt;
  AuthType Basic
  AuthName "Restricted"
  AuthBasicProvider FooAuthn
  Require ...
&lt;/Location&gt;</pre>

      </dd>

      <dt><em>Type</em> <code>authz</code>, <em>mechanism</em>
      <code>Require</code></dt>
      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est d&eacute;finie &agrave;
      <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> &agrave;
      <code>AUTHORIZER</code>. L'application doit &ecirc;tre sp&eacute;cifi&eacute;e en tant
      que fournisseur de type <em>authz</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>.
      Lorsqu'elle est invoqu&eacute;e, l'application est cens&eacute;e contr&ocirc;ler les
      acc&egrave;s du client &agrave; l'aide de l'identifiant utilisateur et d'autres
      donn&eacute;es contenues dans la requ&ecirc;te. Exemple d'application :
<pre class="prettyprint lang-perl">#!/usr/bin/perl
use FCGI;
my $request = FCGI::Request();
while ($request-&gt;Accept() &gt;= 0) {
    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHORIZER";
    die if $ENV{'FCGI_ROLE'}        ne "AUTHORIZER";
    die if $ENV{'REMOTE_PASSWD'};

    print STDERR "This text is written to the web server error log.\n";

    if ($ENV{'REMOTE_USER'} eq "foo1") {
        print "Status: 200\n";
        print "Variable-AUTHZ_1: authz_01\n";
        print "Variable-AUTHZ_2: authz_02\n";
        print "\n";
    }
    else {
        print "Status: 403\n\n";
    }
}</pre>


      Exemple de configuration httpd :
<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/
&lt;Location "/protected/"&gt;
  AuthType ...
  AuthName ...
  AuthBasicProvider ...
  Require FooAuthz
&lt;/Location&gt;</pre>

      </dd>

      <dt><em>Type</em> <code>authnz</code>, <em>mechanism</em>
      <code>AuthBasicProvider</code> <em>+</em> <code>Require</code></dt>

      <dd>Dans ce mode qui supporte le protocole d'autorisation web
      server-agnostic FastCGI, la variable <code>FCGI_ROLE</code> est
      d&eacute;finie &agrave; <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code>
      n'est pas d&eacute;finie. L'application doit &ecirc;tre sp&eacute;cifi&eacute;e en tant que
      fournisseur de type <em>authnz</em> via la directive <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>.
      L'application est cens&eacute;e assurer l'authentification et
      l'autorisation au cours d'une m&ecirc;me invocation &agrave; l'aide de
      l'identifiant et du mot de passe de l'utilisateur et d'autres
      donn&eacute;es contenues dans la requ&ecirc;te. L'invocation de l'application
      intervient au cours de la phase d'authentification de l'API Apache
      httpd. Si l'application renvoie le code 200, et si le m&ecirc;me
      fournisseur est invoqu&eacute; au cours de la phase d'autorisation (via
      une directive <code class="directive">Require</code>), mod_authnz_fcgi
      renverra un code de type success pour la phase d'autorisation sans
      invoquer l'application. Exemple d'application :
<pre class="prettyprint lang-perl">#!/usr/bin/perl
use FCGI;
my $request = FCGI::Request();
while ($request-&gt;Accept() &gt;= 0) {
    die if $ENV{'FCGI_APACHE_ROLE'};
    die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";
    die if !$ENV{'REMOTE_PASSWD'};
    die if !$ENV{'REMOTE_USER'};

    print STDERR "This text is written to the web server error log.\n";

    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
        $ENV{'REMOTE_PASSWD'} eq "bar" &amp;&amp;
        $ENV{'REQUEST_URI'} =~ m%/bar/.*%) {
        print "Status: 200\n";
        print "Variable-AUTHNZ_1: authnz_01\n";
        print "Variable-AUTHNZ_2: authnz_02\n";
        print "\n";
    }
    else {
        print "Status: 401\n\n";
    }
}</pre>


      Exemple de configuration httpd :
<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
&lt;Location "/protected/"&gt;
  AuthType Basic
  AuthName "Restricted"
  AuthBasicProvider FooAuthnz
  Require FooAuthnz
&lt;/Location&gt;</pre>

      </dd>

      <dt><em>Type</em> <code>authn</code>, <em>mechanism</em>
      <code>check_user_id</code></dt>

      <dd>Dans ce mode, la variable <code>FCGI_ROLE</code> est d&eacute;finie &agrave;
      <code>AUTHORIZER</code> et <code>FCGI_APACHE_ROLE</code> &agrave;
      <code>AUTHENTICATOR</code>. L'application doit &ecirc;tre sp&eacute;cifi&eacute;e en
      tant que fournisseur de type <em>authn</em> via une directive
      <code class="directive"><a href="#authnzfcgidefineprovider">AuthnzFcgiDefineProvider</a></code>. La
      directive <code class="directive"><a href="#authnzfcgicheckauthnprovider">AuthnzFcgiCheckAuthnProvider</a></code>
      permet de l'invoquer. Exemple d'application :
<pre class="prettyprint lang-perl">#!/usr/bin/perl
use FCGI;
my $request = FCGI::Request();
while ($request-&gt;Accept() &gt;= 0) {
    die if $ENV{'FCGI_APACHE_ROLE'} ne "AUTHENTICATOR";
    die if $ENV{'FCGI_ROLE'} ne "AUTHORIZER";

    # This authorizer assumes that the RequireBasicAuth option of 
    # AuthnzFcgiCheckAuthnProvider is On:
    die if !$ENV{'REMOTE_PASSWD'};
    die if !$ENV{'REMOTE_USER'};

    print STDERR "This text is written to the web server error log.\n";

    if ( ($ENV{'REMOTE_USER' } eq "foo" || $ENV{'REMOTE_USER'} eq "foo1") &amp;&amp;
        $ENV{'REMOTE_PASSWD'} eq "bar" ) {
        print "Status: 200\n";
        print "Variable-AUTHNZ_1: authnz_01\n";
        print "Variable-AUTHNZ_2: authnz_02\n";
        print "\n";
    }
    else {
        print "Status: 401\n\n";
        # If a response body is written here, it will be returned to
        # the client.
    }
}</pre>


      Exemple de configuration httpd :
<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/
&lt;Location "/protected/"&gt;
  AuthType ...
  AuthName ...
  AuthnzFcgiCheckAuthnProvider FooAuthn \
                               Authoritative On \
                               RequireBasicAuth Off \
                               UserExpr "%{reqenv:REMOTE_USER}"
  Require ...
&lt;/Location&gt;</pre>

      </dd>

    </dl>
    
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="examples">Exemples suppl&eacute;mentaires <a title="Lien permanent" href="#examples" class="permalink">&para;</a></h2>

  <ol>
    <li>Si votre application supporte s&eacute;par&eacute;ment les r&ocirc;les
    d'authentification et d'autorisation (<code>AUTHENTICATOR</code> et
    <code>AUTHORIZER</code>), vous pouvez d&eacute;finir des fournisseurs
    s&eacute;par&eacute;s comme suit, m&ecirc;me s'ils correspondent &agrave; la m&ecirc;me application :

<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn  FooAuthn  fcgi://localhost:10102/
AuthnzFcgiDefineProvider authz  FooAuthz  fcgi://localhost:10102/</pre>


    Sp&eacute;cifie le fournisseur authn via la directive 
    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
    et le fournisseur authz via la directive
    <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>:

<pre class="prettyprint lang-config">AuthType Basic
AuthName "Restricted"
AuthBasicProvider FooAuthn
Require FooAuthz</pre>

    </li>

    <li>Si votre application supporte le r&ocirc;le g&eacute;n&eacute;rique
    <code>AUTHORIZER</code> (authentification et autorisation en une
    seule invocation), vous pouvez d&eacute;finir un fournisseur unique comme
    suit :

<pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/</pre>


    Sp&eacute;cifie le fournisseur authnz via les directives
    <code class="directive">AuthBasicProvider</code> et
    <code class="directive">Require</code> :

<pre class="prettyprint lang-config">AuthType Basic
AuthName "Restricted"
AuthBasicProvider FooAuthnz
Require FooAuthnz</pre>

    </li>
</ol>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="limitations">Limitations <a title="Lien permanent" href="#limitations" class="permalink">&para;</a></h2>

    <p>Les fonctionnalit&eacute;s suivantes ne sont pas encore impl&eacute;ment&eacute;es :</p>

    <dl>
      <dt>V&eacute;rificateur d'acc&egrave;s d'Apache httpd</dt>
      <dd>La phase <em>access check</em> de l'API Apache httpd est
      distincte des phases d'authentification et d'autorisation.
      Certaines autres impl&eacute;mentations de FastCGI supportent cette phase
      et lorsque c'est le cas, la variable <code>FCGI_APACHE_ROLE</code>
      est d&eacute;finie &agrave; <code>ACCESS_CHECKER</code>.</dd>

      <dt>Redirections (pipes) ou sockets locaux (Unix)</dt>
      <dd>Seuls les sockets TCP sont actuellement support&eacute;s.</dd>

      <dt>Support de mod_authn_socache</dt>
      <dd>Le support de l'interaction avec mod_authn_socache pour les
      applications qui interviennent dans le processus
      d'authentification d'Apache httpd serait souhaitable.</dd>

      <dt>Support de l'authentification de type digest &agrave; l'aide de AuthDigestProvider</dt>
      <dd>Cette limitation ne sera probablement jamais franchie car il
      n'existe aucun flux de donn&eacute;es d'autorisation capable de lire dans
      un condens&eacute; de type hash.</dd>

      <dt>Gestion des processus applicatifs</dt>
      <dd>Cette fonctionnalit&eacute; restera probablement hors de port&eacute;e de ce
      module. Il faudra donc g&eacute;rer les processus applicatifs d'une autre
      mani&egrave;re ; par exemple, <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code> permet de
      les d&eacute;marrer.</dd>

      <dt>AP_AUTH_INTERNAL_PER_URI</dt>
      <dd>Tous les fournisseurs sont actuellement enregistr&eacute;s en tant
      que AP_AUTH_INTERNAL_PER_CONF, ce qui signifie que les
      v&eacute;rifications ne sont pas effectu&eacute;es pour les
      sous-requ&ecirc;tes internes avec la m&ecirc;me configuration de contr&ocirc;le
      d'acc&egrave;s que la requ&ecirc;te initiale.</dd>

      <dt>Conversion du jeu de caract&egrave;res des donn&eacute;es de protocole</dt>
      <dd>Si mod_authnz_fcgi s'ex&eacute;cute dans un environnement de
      compilation EBCDIC, toutes les donn&eacute;es de protocole FastCGI sont
      &eacute;crites en EBCDIC et doivent &ecirc;tre disponibles en EBCDIC.</dd>

      <dt>Plusieurs requ&ecirc;tes pour une connexion</dt>
      <dd>Actuellement, la connexion au fournisseur d'autorisation
      FastCGI est ferm&eacute;e apr&egrave;s chaque phase de traitement. Par exemple,
      si le fournisseur d'autorisation g&egrave;re s&eacute;par&eacute;ment les phases
      <em>authn</em> et <em>authz</em>, deux connexions seront
      n&eacute;cessaires.</dd>

      <dt>Redirection de certains URIs</dt>
      <dd>Les URIs en provenance des clients ne peuvent pas &ecirc;tre
      redirig&eacute;s selon une table de redirection, comme avec la directive
      <code class="directive">ProxyPass</code> utilis&eacute;e avec les r&eacute;pondeurs
      FastCGI.</dd>

    </dl>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="logging">Journalisation <a title="Lien permanent" href="#logging" class="permalink">&para;</a></h2>

    <ol>
        <li>Les erreurs de traitement sont journalis&eacute;es &agrave; un niveau
	<code>error</code> ou sup&eacute;rieur.</li>
        <li>Les messages envoy&eacute;s par l'application sont journalis&eacute;s au
	niveau <code>warn</code>.</li>
        <li>Les messages de deboguage &agrave; caract&egrave;re g&eacute;n&eacute;ral sont
	journalis&eacute;s au niveau <code>debug</code>.</li>
        <li>Les variables d'environnement transmises &agrave; l'application
	sont journalis&eacute;es au niveau <code>trace2</code>. La valeur de la
	variable <code>REMOTE_PASSWD</code> sera occult&eacute;e, mais
	<strong>toute autre donn&eacute;e sensible sera visible dans le
	journal</strong>.</li>
        <li>Toutes les entr&eacute;es/sorties entre le module et l'application
	FastCGI, y compris les variables d'environnement, seront
	journalis&eacute;es au format imprimable et hexad&eacute;cimal au niveau
	<code>trace5</code>. <strong>Toutes les donn&eacute;es sensibles seront
	visibles dans le journal.</strong></li>
    </ol>

    <p>La directive <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> permet
    de configurer un niveau de journalisation sp&eacute;cifique &agrave;
    mod_authnz_fcgi. Par exemple :</p>

<pre class="prettyprint lang-config">LogLevel info authnz_fcgi:trace8</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="authnzfcgicheckauthnprovider">Directive <span id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</span> <a title="Lien permanent" href="#authnzfcgicheckauthnprovider" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet &agrave; une application FastCGI de g&eacute;rer l'accroche
d'authentification check_authn.</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
<em>option</em> ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>r&eacute;pertoire</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
    <p>Cette directive permet de confier &agrave; une application FastCGI la
    gestion d'une phase sp&eacute;cifique du processus d'authentification ou
    d'autorisation.</p>

    <p>Certaines fonctionnalit&eacute;s des fournisseurs d'autorisation FastCGI
    n&eacute;cessitent cette directive en lieu et place de
    <code class="directive">AuthBasicProvider</code> pour pouvoir &ecirc;tre activ&eacute;es :</p>

    <ul>
      <li>L'authentification de type autre que basique ; en g&eacute;n&eacute;ral,
      d&eacute;termination de l'identifiant utilisateur et renvoi de sa valeur
      depuis le fournisseur d'autorisation ; voir l'option
      <code>UserExpr</code> ci-dessous</li>
      <li>S&eacute;lection d'un code de r&eacute;ponse personnalis&eacute; ; en cas de
      code de r&eacute;ponse autre que 200 en provenance du fournisseur
      d'autorisation, c'est ce code qui sera utilis&eacute; comme code d'&eacute;tat
      de la r&eacute;ponse</li>
      <li>D&eacute;finition du corps d'une r&eacute;ponse autre que 200 ; si le
      fournisseur d'autorisation renvoie un corps de r&eacute;ponse avec un
      code autre que 200, c'est ce corps de r&eacute;ponse qui sera renvoy&eacute; au
      client ; la longueur du texte est limit&eacute;e &agrave; 8192 octets</li>
    </ul>

    <dl>
      <dt><em>provider-name</em></dt>
      <dd>C'est le nom du fournisseur d&eacute;fini au pr&eacute;alable via la
      directive <code class="directive">AuthnzFcgiDefineProvider</code>.</dd>

      <dt><code>None</code></dt>
      <dd>Sp&eacute;cifiez <code>None</code> pour d&eacute;sactiver un fournisseur
      activ&eacute; avec cette m&ecirc;me directive dans une autre port&eacute;e, par
      exemple dans un r&eacute;pertoire parent.</dd>

      <dt><em>option</em></dt>
      <dd>Les options suivantes sont support&eacute;es :
      
      <dl>
         <dt>Authoritative On|Off (par d&eacute;faut On)</dt>
         <dd>Cette option permet de d&eacute;finir si l'appel &agrave; d'autres
	 modules est autoris&eacute; lorsqu'un fournisseur d'autorisation FastCGI a
	 &eacute;t&eacute; configur&eacute; et si la requ&ecirc;te &eacute;choue.</dd>

         <dt>DefaultUser <em>id utilisateur</em></dt>
         <dd>Lorsque le fournisseur d'autorisation donne son accord, et
	 si <code>UserExpr</code> est d&eacute;fini et correspond &agrave; une cha&icirc;ne
	 vide, (par exemple, si le fournisseur d'autorisation ne renvoie
	 aucune variable), c'est cette valeur qui sera utilis&eacute;e comme id
	 utilisateur par d&eacute;faut. Cela se produit souvent lorsqu'on se trouve dans
	 un contexte d'invit&eacute;, ou d'utilisateur non authentifi&eacute; ;
	 les utilisateurs et invit&eacute;s se voient alors attribu&eacute; un id
	 utilisateur sp&eacute;cifique qui permettra de se connecter et
	 d'acc&eacute;der &agrave; certaines ressources.</dd>

         <dt>RequireBasicAuth On|Off (par d&eacute;faut Off)</dt>
         <dd>Cette option permet de d&eacute;finir si l'authentification
	 basique est requise avant de transmettre la requ&ecirc;te au
	 fournisseur d'autorisation. Dans l'affirmative, le fournisseur
	 d'autorisation ne sera invoqu&eacute; qu'en pr&eacute;sence d'un id
	 utilisateur et d'un mot de passe ; si ces deux &eacute;l&eacute;ments ne sont
	 pas pr&eacute;sents, un code d'erreur 401 sera renvoy&eacute;</dd>

         <dt>UserExpr <em>expr</em> (pas de valeur par d&eacute;faut)</dt>
         <dd>Lorsque le client ne fournit pas l'authentification basique
	 et si le fournisseur d'autorisation d&eacute;termine l'id utilisateur,
	 cette expression, &eacute;valu&eacute;e apr&egrave;s l'appel au fournisseur
	 d'autorisation, permet de d&eacute;terminer l'id utilisateur. Cette
	 expression se conforme &agrave; la <a href="../expr.html">syntaxe
	 ap_expr</a> et doit correspondre &agrave; une cha&icirc;ne de caract&egrave;res.
	 Une utilisation courante consiste &agrave; r&eacute;f&eacute;rencer la d&eacute;finition
	 d'une <code>Variable-<em>XXX</em></code> renvoy&eacute;e par le
	 fournisseur d'autorisation via une option du style
	 <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>. Si cette option
	 est sp&eacute;cifi&eacute;e, et si l'id utilisateur ne peut pas &ecirc;tre d&eacute;finie
	 via l'expression apr&egrave;s une authentification r&eacute;ussie, la requ&ecirc;te
	 sera rejet&eacute;e avec un code d'erreur 500.</dd>

       </dl>
      </dd>
     </dl>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="authnzfcgidefineprovider">Directive <span id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</span> <a title="Lien permanent" href="#authnzfcgidefineprovider" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>D&eacute;finit une application FastCGI en tant que fournisseur
d'authentification et/ou autorisation</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
<em>backend-address</em></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>none</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
</table>
    <p>Cette directive permet de d&eacute;finir une application FastCGI en tant
    que fournisseur pour une phase particuli&egrave;re d'authentification ou
    d'autorisation.</p>

    <dl>
      <dt><em>type</em></dt>
      <dd>Les valeurs de ce param&egrave;tre sont <em>authn</em> pour
      l'authentification, <em>authz</em> pour l'autorisation, ou
      <em>authnz</em> pour un fournisseur d'autorisation g&eacute;n&eacute;rique
      FastCGI qui effectue les deux v&eacute;rifications.</dd>

      <dt><em>provider-name</em></dt>
      <dd>Ce param&egrave;tre permet d'associer un nom au fournisseur ; ce nom
      pourra &ecirc;tre utilis&eacute; dans des directives comme <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> et
      <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>

      <dt><em>backend-address</em></dt>
      <dd>Ce param&egrave;tre permet de sp&eacute;cifier l'adresse de l'application
      sous la forme <em>fcgi://hostname:port/</em>. Le ou les processus
      de l'application doivent &ecirc;tre g&eacute;r&eacute;s ind&eacute;pendamment comme avec
      <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd>
    </dl>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_authnz_fcgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_authnz_fcgi.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>