Serveur Apache HTTP Version 2.4

| Description: | Autorisation basique | 
|---|---|
| Statut: | Base | 
| Identificateur�de�Module: | authz_core_module | 
| Fichier�Source: | mod_authz_core.c | 
| Compatibilit�: | Disponible depuis la version 2.3 d'Apache HTTPD | 
Ce module fournit des fonctionnalit�s d'autorisation basiques
    permettant d'accorder ou refuser l'acc�s � certaines zones du site
    web aux utilisateurs authentifi�s. mod_authz_core
    donne la possibilit� d'enregistrer divers fournisseurs
    d'autorisation. Il est en g�n�ral utilis� avec un module fournisseur
    d'authentification comme mod_authn_file, et un
    module d'autorisation comme mod_authz_user. Il
    permet aussi l'application d'une logique �labor�e au d�roulement du
    processus d'autorisation.
 AuthMerging
 AuthMerging <AuthzProviderAlias>
 <AuthzProviderAlias> AuthzSendForbiddenOnFailure
 AuthzSendForbiddenOnFailure Require
 Require <RequireAll>
 <RequireAll> <RequireAny>
 <RequireAny> <RequireNone>
 <RequireNone>Il est possible de cr�er des fournisseurs d'autorisation �tendus
    dans le fichier de configuration et de leur assigner un nom d'alias.
    On peut ensuite utiliser ces fournisseurs alias�s dans une
    directive Require de
    la m�me mani�re qu'on le ferait pour des fournisseurs d'autorisation
    de base. En plus de la possibilit� de cr�er et d'aliaser un
    fournisseur �tendu, le m�me fournisseur d'autorisation �tendu peut
    �tre r�f�renc� par plusieurs localisations.
    
Dans l'exemple suivant, on cr�e deux alias de fournisseur d'autorisation ldap diff�rents bas�s sur le fournisseur d'autorisation ldap-group. Il est ainsi possible pour un seul r�pertoire de v�rifier l'appartenance � un groupe dans plusieurs serveurs ldap :
<AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx>
    AuthLDAPBindDN cn=youruser,o=ctx
    AuthLDAPBindPassword yourpassword
    AuthLDAPURL ldap://ldap.host/o=ctx
</AuthzProviderAlias>
<AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev>
    AuthLDAPBindDN cn=yourotheruser,o=dev
    AuthLDAPBindPassword yourotherpassword
    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
</AuthzProviderAlias>
Alias /secure /webpages/secure
<Directory /webpages/secure>
    Require all granted
    
    AuthBasicProvider file
    
    AuthType Basic
    AuthName LDAP_Protected_Place
    
    #implied OR operation
    Require ldap-group-alias1
    Require ldap-group-alias2
</Directory>
    
Les directives de conteneur d'autorisation <RequireAll>,
    <RequireAny> et <RequireNone>
    peuvent �tre combin�es entre elles et avec la directive Require pour confectionner une
    logique d'autorisation complexe.
L'exemple ci-dessous illustre la logique d'autorisation suivante.
    Pour pouvoir acc�der � la ressource, l'utilisateur doit �tre
    l'utilisateur superadmin, ou appartenir aux deux
    groupes LDAP admins et Administrateurs et
    soit appartenir au groupe ventes ou avoir
    ventes comme valeur de l'attribut LDAP
    dept. De plus, pour pouvoir acc�der � la ressource,
    l'utilisateur ne doit appartenir ni au groupe temps, ni
    au groupe LDAP Employ�s temporaires.
<Directory /www/mydocs>
    <RequireAll>
        <RequireAny>
            Require user superadmin
            <RequireAll>
            Require group admins
            Require ldap-group cn=Administrators,o=Airius
                <RequireAny>
                Require group sales
                Require ldap-attribute dept="sales"
                </RequireAny>
            </RequireAll>
        </RequireAny>
        <RequireNone>
            Require group temps
            Require ldap-group cn=Temporary Employees,o=Airius
        </RequireNone>
    </RequireAll>
</Directory>
Le module mod_authz_core met � disposition des
  fournisseurs d'autorisation g�n�riques utilisables avec la directive
  Require.
Le fournisseur env permet de contr�ler l'acc�s au
    serveur en fonction de l'existence d'une variable d'environnement. Lorsque Require
    env env-variable est sp�cifi�, la requ�te se voit
    autoriser l'acc�s si la variable d'environnement
    env-variable existe. Le serveur permet de d�finir
    facilement des variables d'environnement en fonction des
    caract�ristiques de la requ�te du client via les directives fournies
    par le module mod_setenvif. Cette directive Require
    env permet donc de contr�ler l'acc�s en fonction des
    valeurs des en-t�tes de la requ�te HTTP tels que
    User-Agent (type de navigateur), Referer,
    entre autres.
SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
<Directory /docroot>
    Require env let_me_in
</Directory>
    Avec cet exemple, les navigateurs dont la cha�ne user-agent
    commence par KnockKnock/2.0 se verront autoriser
    l'acc�s, alors que tous les autres seront rejet�s.
Lorsque le serveur cherche un chemin via une sous-requ�te interne (par exemple la
   recherche d'un DirectoryIndex), ou lorsqu'il g�n�re un
   listing du contenu d'un r�pertoire via le module
   mod_autoindex, la sous-requ�te n'h�rite pas des
   variables d'environnement sp�cifiques � la requ�te. En outre, � cause
   des phases de l'API auxquelles mod_setenvif prend
   part, les directives SetEnvIf ne sont pas �valu�es
   s�par�ment dans la sous-requ�te.
Le fournisseur all reproduit la fonctionnalit�
    pr�c�demment fournie par les directives 'Allow from all' et 'Deny
    from all'. Il accepte un argument dont les deux valeurs possibles
    sont : 'granted' ou 'denied'. Les exemples suivants autorisent ou
    interdisent l'acc�s � toutes les requ�tes.
Require all granted
Require all denied
Le fournisseur method permet d'utiliser la m�thode
    HTTP dans le processus d'autorisation. Les m�thodes GET et HEAD sont
    ici consid�r�es comme �quivalentes. La m�thode TRACE n'est pas
    support�e par ce fournisseur ; utilisez � la place la directive
    TraceEnable.
Dans l'exemple suivant, seules les m�thodes GET, HEAD, POST, et OPTIONS sont autoris�es :
Require method GET POST OPTIONS
Dans l'exemple suivant, les m�thodes GET, HEAD, POST, et OPTIONS sont autoris�es sans authentification, alors que toutes les autres m�thodes n�cessitent un utilisateur valide :
<RequireAny>
    �Require method GET POST OPTIONS
    �Require valid-user
</RequireAny>
  
  Le fournisseur expr permet d'accorder l'autorisation
  d'acc�s en fonction d'expressions arbitraires.
Require expr "%{TIME_HOUR} -ge 9 && %{TIME_HOUR} -le 17"
    La syntaxe de l'expression est d�crite dans la documentation de ap_expr.
Normalement, l'expression est �valu�e avant l'authentification.
    Cependant, si l'expression renvoie false et se r�f�re � la variable
    %{REMOTE_USER}, le processus d'authentification sera
    engag� et l'expression r��valu�e.
| Description: | D�finit la mani�re dont chaque logique d'autorisation des sections de configuration se combine avec celles des sections de configuration pr�c�dentes. | 
|---|---|
| Syntaxe: | AuthMerging Off | And | Or | 
| D�faut: | AuthMerging Off | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | AuthConfig | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Lorsque l'autorisation est activ�e, elle est normalement h�rit�e
    par chaque section de
    configuration suivante, � moins qu'un jeu de directives
    d'autorisations diff�rent ne soit sp�cifi�. Il s'agit du
    comportement par d�faut, qui correspond � la d�finition explicite
    AuthMerging Off.
Dans certaines situations cependant, il peut �tre souhaitable de
    combiner la logique d'autorisation d'une section de configuration
    avec celle de la section pr�c�dente lorsque les sections de
    configuration se combinent entre elles. Dans ce cas, deux options
    sont disponibles, And et Or.
Lorsqu'une section de configuration contient AuthMerging
    And ou AuthMerging Or, sa logique d'autorisation
    se combine avec celle de la section de configuration qui la pr�c�de
    (selon l'ordre g�n�ral des sections de configuration), et qui
    contient aussi une logique d'autorisation, comme si les deux
    sections �taient concat�n�es respectivement dans une directive
    <RequireAll> ou <RequireAny>.
AuthMerging ne concerne que la section de
    configuration dans laquelle elle appara�t. Dans l'exemple suivant,
    seuls les utilisateurs appartenant au groupe alpha sont
    autoris�s � acc�der � /www/docs. Les utilisateurs
    appartenant au groupe alpha ou au groupe
    beta sont autoris�s � acc�der �
    /www/docs/ab. Cependant, la d�finition implicite �
    Off de la directive AuthMerging
    s'applique � la section de configuration <Directory> concernant le r�pertoire
    /www/docs/ab/gamma, ce qui implique que les directives
    d'autorisation de cette section l'emportent sur celles des sections
    pr�c�dentes. Par voie de cons�quence, seuls les utilisateurs
    appartenant au groupe gamma sont autoris�s � acc�der �
    /www/docs/ab/gamma.<Directory /www/docs>
    AuthType Basic
    AuthName Documents
    AuthBasicProvider file
    AuthUserFile /usr/local/apache/passwd/passwords
    Require group alpha
</Directory>
<Directory /www/docs/ab>
    AuthMerging Or
    Require group beta
</Directory>
<Directory /www/docs/ab/gamma>
    Require group gamma
</Directory>
| Description: | Regroupe des directives repr�sentant une extension d'un fournisseur d'autorisation de base qui pourra �tre r�f�renc�e � l'aide de l'alias sp�cifi� | 
|---|---|
| Syntaxe: | <AuthzProviderAlias fournisseur-de-base Alias
Param�tres-Require>
... </AuthzProviderAlias>
 | 
| Contexte: | configuration du serveur | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Les balises <AuthzProviderAlias> et
    </AuthzProviderAlias> permettent de regrouper des
    directives d'autorisation auxquelles on pourra faire r�f�rence �
    l'aide de l'alias sp�cifi� dans une directive Require.
| Description: | Envoie '403 FORBIDDEN' au lieu de '401 UNAUTHORIZED' si l'authentification r�ussit et si l'autorisation a �t� refus�e. | 
|---|---|
| Syntaxe: | AuthzSendForbiddenOnFailure On|Off | 
| D�faut: | AuthzSendForbiddenOnFailure Off | 
| Contexte: | r�pertoire, .htaccess | 
| Statut: | Base | 
| Module: | mod_authz_core | 
| Compatibilit�: | Disponible depuis la version 2.3.11 d'Apache HTTPD | 
Par d�faut, si l'authentification r�ussit, alors que
    l'autorisation est refus�e, Apache HTTPD renvoie un code de r�ponse
    HTTP '401 UNAUTHORIZED'. En g�n�ral, les navigateurs proposent alors
    une nouvelle fois � l'utilisateur la bo�te de dialogue de saisie du
    mot de passe, ce qui n'est pas toujours souhaitable. La directive
    AuthzSendForbiddenOnFailure permet de changer
    le code de r�ponse en '403 FORBIDDEN'.
La modification de la r�ponse en cas de refus d'autorisation diminue la s�curit� du mot de passe, car elle indique � un �ventuel attaquant que le mot de passe qu'il a saisi �tait correct.
| Description: | V�rifie si un utilisateur authentifi� a une autorisation d'acc�s accord�e par un fournisseur d'autorisation. | 
|---|---|
| Syntaxe: | Require [not] nom-entit� [nom-entit�]
... | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | AuthConfig | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Cette directive permet de v�rifier si un utilisateur authentifi�
    a l'autorisation d'acc�s accord�e pour un certain fournisseur
    d'autorisation et en tenant compte de certaines restrictions.
    mod_authz_core met � disposition les fournisseurs
    d'autorisation g�n�riques suivants :
Require all grantedRequire all deniedRequire env env-var [env-var]
      ...Require method http-method [http-method]
      ...Require expr expression Voici quelques exemples de syntaxes autoris�es par
    mod_authz_user, mod_authz_host et
    mod_authz_groupfile :
Require user identifiant utilisateur
      [identifiant utilisateur]
      ...Require group nom groupe [nom
      groupe]
      ...Require valid-userRequire ip 10 172.20 192.168.2D'autres modules d'autorisation comme
    mod_authnz_ldap, mod_authz_dbm,
    mod_authz_dbd,
    mod_authz_owner et mod_ssl
    impl�mentent des options de la directive Require.
Pour qu'une configuration d'authentification et d'autorisation
    fonctionne correctement, la directive Require
    doit �tre accompagn�e dans la plupart des cas de directives AuthName, AuthType et AuthBasicProvider ou AuthDigestProvider, ainsi que
    de directives telles que AuthUserFile et AuthGroupFile (pour la
    d�finition des utilisateurs et des groupes). Exemple :
AuthType Basic AuthName "Restricted Resource" AuthBasicProvider file AuthUserFile /web/users AuthGroupFile /web/groups Require group admin
Les contr�les d'acc�s appliqu�s de cette mani�re sont effectifs
    pour toutes les m�thodes. C'est d'ailleurs
    ce que l'on souhaite en g�n�ral. Si vous voulez n'appliquer
    les contr�les d'acc�s qu'� certaines m�thodes, tout en laissant les
    autres m�thodes sans protection, placez la directive
    Require dans une section <Limit>.
Le r�sultat de la directive Require peut
    �tre invers� en utilisant l'option not. Comme dans le
    cas de l'autre directive d'autorisation invers�e <RequireNone>, si la directive
    Require est invers�e, elle ne peut qu'�chouer
    ou produire un r�sultat neutre ; elle ne peut donc alors pas
    autoriser une requ�te de mani�re ind�pendante.
Dans l'exemple suivant, tous les utilisateurs appartenant aux
    groupes alpha et beta ont l'autorisation
    d'acc�s, � l'exception de ceux appartenant au groupe
    reject.
<Directory /www/docs>
    <RequireAll>
        Require group alpha beta
        Require not group reject
    </RequireAll>
</Directory>
    Lorsque plusieurs directives Require sont
    plac�es dans une m�me section de
    configuration, et ne se trouvent pas dans une autre directive
    d'autorisation comme <RequireAll>, elles sont implicitement
    contenues dans une directive <RequireAny>. Ainsi, la premi�re directive
    Require qui autorise l'acc�s � un utilisateur
    autorise l'acc�s pour l'ensemble de la requ�te, et les directives
    Require suivantes sont ignor�es.
Prettez une attention particuli�re aux directives d'autorisation
    d�finies
    au sein des sections Location
    qui se chevauchent avec des contenus servis depuis le syst�me de
    fichiers. Par d�faut, les configurations d�finies dans ces sections l'emportent sur les
    configurations d'autorisations d�finies au sein des sections
    Directory et Files sections.
La directive AuthMerging permet de contr�ler
    la mani�re selon laquelle les configurations d'autorisations sont
    fusionn�es au sein des sections pr�cit�es.
| Description: | Regroupe plusieurs directives d'autorisation dont aucune ne doit �chouer et dont au moins une doit retourner un r�sultat positif pour que la directive globale retourne elle-m�me un r�sultat positif. | 
|---|---|
| Syntaxe: | <RequireAll> ... </RequireAll> | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | AuthConfig | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Les balises <RequireAll> et
    </RequireAll> permettent de regrouper des
    directives d'autorisation dont aucune ne doit �chouer, et dont au
    moins une doit retourner un r�sultat positif pour que la directive
    <RequireAll> retourne elle-m�me
    un r�sultat positif.
Si aucune des directives contenues dans la directive <RequireAll> n'�choue, et si au moins une
    retourne un r�sultat positif, alors la directive <RequireAll> retourne elle-m�me un r�sultat
    positif. Si aucune ne retourne un r�sultat positif, et si aucune
    n'�choue, la directive globale retourne un r�sultat neutre. Dans
    tous les autres cas, elle �choue.
| Description: | Regroupe des directives d'autorisation dont au moins une doit retourner un r�sultat positif pour que la directive globale retourne elle-m�me un r�sultat positif. | 
|---|---|
| Syntaxe: | <RequireAny> ... </RequireAny> | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | AuthConfig | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Les balises <RequireAny> et
    </RequireAny> permettent de regrouper des
    directives d'autorisation dont au moins une doit retourner un
    r�sultat positif pour que la directive <RequireAny> retourne elle-m�me un r�sultat
    positif.
Si une ou plusieurs directives contenues dans la directive
    <RequireAny> retournent un
    r�sultat positif, alors la directive <RequireAny> retourne elle-m�me un r�sultat
    positif. Si aucune ne retourne un r�sultat positif et aucune
    n'�choue, la directive globale retourne un r�sultat neutre. Dans
    tous les autres cas, elle �choue.
<RequireAny> (elles pourraient tout au plus
    faire �chouer la directive dans le cas o� elles �choueraient
    elles-m�mes, et o�
    toutes les autres directives retourneraient un r�sultat neutre).
    C'est pourquoi il n'est pas permis d'utiliser les directives
    d'autorisation invers�es dans une directive <RequireAny>.| Description: | Regroupe des directives d'autorisation dont aucune ne doit retourner un r�sultat positif pour que la directive globale n'�choue pas. | 
|---|---|
| Syntaxe: | <RequireNone> ... </RequireNone> | 
| Contexte: | r�pertoire, .htaccess | 
| AllowOverride: | AuthConfig | 
| Statut: | Base | 
| Module: | mod_authz_core | 
Les balises <RequireNone> et
    </RequireNone> permettent de regrouper des
    directives d'autorisation dont aucune ne doit retourner un r�sultat
    positif pour que la directive <RequireNone> n'�choue pas.
Si une ou plusieurs directives contenues dans la directive
    <RequireNone> retournent un
    r�sultat positif, la directive <RequireNone> �chouera. Dans tous les
    autres cas, cette derni�re retournera un r�sultat neutre. Ainsi,
    comme pour la directive d'autorisation invers�e Require
    not, elle ne peut jamais autoriser une requ�te de mani�re
    ind�pendante car elle ne pourra jamais retourner un r�sultat
    positif. Par contre, on peut l'utiliser pour restreindre l'ensemble
    des utilisateurs autoris�s � acc�der � une ressource.
<RequireNone>.
    C'est pourquoi il n'est pas permis d'utiliser les directives
    d'autorisation invers�es dans une directive <RequireNone>.