Serveur Apache HTTP Version 2.4
Module Apache mod_auth_basic
Description: | Authentification HTTP de base |
---|---|
Statut: | Base |
Identificateur de Module: | auth_basic_module |
Fichier Source: | mod_auth_basic.c |
Compatibilité: | Disponible depuis la version 2.1 d'Apache |
Sommaire
Ce module permet d'utiliser l'authentification basique HTTP pour
restreindre l'accès en recherchant les utilisateurs dans les
fournisseurs d'authentification spécifiés. Il est en général
combiné avec au moins un module d'authentification comme
mod_authn_file
et un module d'autorisation comme
mod_authz_user
. L'authentification HTTP à
base de condensé (digest), quant à elle, est fournie par le module
mod_auth_digest
.
Directive AuthBasicAuthoritative
Description: | Définit si les processus d'autorisation et d'authentification peuvent être confiés à des modules de plus bas niveau |
---|---|
Syntaxe: | AuthBasicAuthoritative On|Off |
Défaut: | AuthBasicAuthoritative On |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Base |
Module: | mod_auth_basic |
Normalement, chaque module d'autorisation énuméré dans la
directive AuthBasicProvider
va tenter de
vérifier l'utilisateur, et si ce dernier n'est trouvé dans aucun des
fournisseurs, l'accès sera refusé. Définir explicitement la
directive AuthBasicAuthoritative
à
Off
permet de confier l'autorisation et
l'authentification à d'autres modules non basés sur les fournisseurs
si aucun identifiant utilisateur ou aucune
règle ne correspondent à l'identifiant utilisateur
spécifié. Ceci ne peut s'avérer nécessaire que lorsque
mod_auth_basic
est combiné avec des modules tiers
qui n'ont pas été configurés à l'aide de la directive AuthBasicProvider
. Lorsqu'on
utilise de tels modules, l'ordre dans lequel s'effectue le
traitement est défini dans le code source des modules et n'est pas
configurable.
Directive AuthBasicFake
Description: | Authentification de base simulée à l'aide des nom d'utilisateur et mot de passe fournis |
---|---|
Syntaxe: | AuthBasicFake off|nom-utilisateur [mot-de-passe] |
Défaut: | none |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Base |
Module: | mod_auth_basic |
Compatibilité: | Disponible à partir de la version 2.4.5 du serveur HTTP Apache |
Les nom d'utilisateur et mot de passe spécifiés sont rassemblés dans un en-tête d'autorisation qui est transmis au serveur ou au service sous-jacent au serveur. Ces nom d'utilisateur et mot de passe sont interprétés par l'interpréteur d'expression, ce qui permet de les définir en fonction de paramètres de la requête.
Si aucun mot de passe n'est spécifié, la valeur par défaut "password" sera utilisée. Pour désactiver l'authentification de base simulée pour un espace d'URL, définissez AuthBasicFake à "off".
Dans l'exemple suivant, un nom d'utilisateur et un mot de passe prédéfinis sont transmis à un serveur d'arrière-plan :
Exemple de transmission d'un nom d'utilisateur et d'un mot de passe prédéfinis
<Location "/demo"> AuthBasicFake demo demopass </Location>
Dans l'exemple suivant, l'adresse email extraite d'un certificat
client est transmise au serveur, étendant par là-même la
fonctionnalité de l'option FakeBasicAuth de la directive SSLOptions
. Comme avec l'option
FakeBasicAuth, le mot de passe se voit attribué le contenu fixe de
la chaîne "password".
Exemple d'utilisation avec un certificat
<Location "/secure"> AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" </Location>
Pour compléter l'exemple précédent, il est possible de générer la valeur du mot de passe en procédant à un hashage de l'adresse email à partir d'un mot d'une passphrase initial fixée, puis de transmettre le résultat obtenu au serveur d'arrière-plan. Ceci peut s'avérer utile pour donner accès à des serveurs anciens qui ne supportent pas les certificats clients.
Exemple de génération de mot de passe par hashage de l'adresse email
<Location "/secure"> AuthBasicFake "%{SSL_CLIENT_S_DN_Email}" "%{sha1:passphrase-%{SSL_CLIENT_S_DN_Email}}" </Location>
Désactivation de l'authentification simulée
<Location "/public"> AuthBasicFake off </Location>
Directive AuthBasicProvider
Description: | Définit le(les) fournisseur(s) d'authentification pour cette zone du site web |
---|---|
Syntaxe: | AuthBasicProvider nom fournisseur
[nom fournisseur] ... |
Défaut: | AuthBasicProvider file |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Base |
Module: | mod_auth_basic |
La directive AuthBasicProvider
permet de
définir le fournisseur utilisé pour authentifier les utilisateurs
pour la zone du site web concernée. Le fournisseur par défaut
file
est implémenté par le module
mod_authn_file
. Assurez-vous que le module
implémentant le fournisseur choisi soit bien présent dans le
serveur.
Exemple
<Location "/secure"> AuthType basic AuthName "private area" AuthBasicProvider dbm AuthDBMType SDBM AuthDBMUserFile "/www/etc/dbmpasswd" Require valid-user </Location>
Les fournisseurs sont sollicités dans l'ordre jusqu'à ce que l'un d'entre eux trouve une correspondance pour le nom d'utilisateur de la requête ; alors, ce dernier fournisseur sera le seul à vérifier le mot de passe. Un échec dans la vérification du mot de passe n'entraîne pas le passage du contrôle au fournisseur suivant.
Les différents fournisseurs disponibles sont implémentés par les
modules mod_authn_dbm
,
mod_authn_file
, mod_authn_dbd
,
mod_authnz_ldap
et mod_authn_socache
.
Directive AuthBasicUseDigestAlgorithm
Description: | Vérifie les mots de passe auprès des fournisseurs d'authentification à la manière de l'authentification de type Digest. |
---|---|
Syntaxe: | AuthBasicUseDigestAlgorithm MD5|Off |
Défaut: | AuthBasicUseDigestAlgorithm Off |
Contexte: | répertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Base |
Module: | mod_auth_basic |
Compatibilité: | Disponible à partir de la version 2.4.7 du serveur HTTP Apache |
Normalement, lorsqu'on utilise l'authentification basique, les
fournisseurs spécifiés via la directive AuthBasicProvider
tentent de
contrôler l'identité d'un utilisateur en recherchant dans leurs
bases de données l'existence d'un couple utilisateur/mot de passe
correspondant. Les mots de passe enregistrés sont en général
chiffrés, mais ce n'est pas systématique ; chaque fournisseur peut
choisir son propre mode de stockage des mots de passe.
Lorsqu'on utilise l'authentification de type Digest, les
fournisseurs spécifiés par la directive AuthDigestProvider
effectuent
une recherche similaire dans leurs bases de
données pour trouver un couple utilisateur/mot de passe
correspondant. Cependant, à la différence de l'authentification
basique, les données associées à chaque utilisateur et comportant le
nom d'utilisateur, le domaine de protection (realm) et le mot de
passe doivent être contenues dans une chaîne chiffrée (Voir le
document RFC 2617,
Section 3.2.2.2 pour plus de détails à propos du type de
chiffrement utilisé pour cette chaîne).
A cause de la différence entre les méthodes de stockage des données des authentifications de type basique et digest, le passage d'une méthode d'authentification de type digest à une méthode d'authentification de type basique requiert l'attribution de nouveaux mots de passe à chaque utilisateur, car leur mots de passe existant ne peut pas être extrait à partir du schéma de stockage utilisé par les fournisseurs d'authentification de type digest.
Si la directive AuthBasicUseDigestAlgorithm
est
définie à la valeur MD5
, le mot de passe d'un
utilisateur dans le cas de l'authentification basique sera vérifié
en utilisant le même format de chiffrement que dans le cas de
l'authentification de type digest. Tout d'abord, une chaîne
comportant le nom d'utilisateur, le domaine de protection (realm) et
le mot de passe est générée sous forme de condensé (hash) en
utilisant l'algorithme MD5 ; puis le nom d'utilisateur et cette
chaîne chiffrée sont transmis aux fournisseurs spécifiés via la
directive AuthBasicProvider
comme si la
directive AuthType
était définie à Digest
et si l'authentification de type
Digest était utilisée.
Grâce à cette directive, un site peut basculer d'une authentification de type digest à basique sans devoir changer les mots de passe des utilisateurs.
AuthBasicUseDigestAlgorithm
est définie à MD5
. L'utilisation d'un autre
fournisseur provoquera un message d'erreur et le client se verra
refuser l'accès.