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
<AuthzProviderAlias>
AuthzSendForbiddenOnFailure
Require
<RequireAll>
<RequireAny>
<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.
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>.