mod_auth_basic Authentification HTTP de base Base mod_auth_basic.c auth_basic_module

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.

AuthName AuthType Require Mode d'emploi de l'authentification AuthBasicProvider Définit le(les) fournisseur(s) d'authentification pour cette zone du site web AuthBasicProvider nom fournisseur [nom fournisseur] ... AuthBasicProvider file directory.htaccess AuthConfig

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.

AuthBasicAuthoritative Définit si les processus d'autorisation et d'authentification peuvent être confiés à des modules de plus bas niveau AuthBasicAuthoritative On|Off AuthBasicAuthoritative On directory.htaccess AuthConfig

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.

AuthBasicFake Authentification de base simulée à l'aide des nom d'utilisateur et mot de passe fournis AuthBasicFake username password none directory.htaccess AuthConfig

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.

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} password </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>