Sécurité

HTTP Basic Authentication

L'authentification HTTP Basic est le mécanisme de contrôle d'accès défini par l'IETF dans la RFC 7617 (2015). Le serveur répond avec un en-tête WWW-Authenticate : Basic, le navigateur affiche sa propre fenêtre de connexion puis envoie l'identifiant et le mot de passe encodés en Base64 à chaque requête. Elle ne dépose aucun cookie et ne charge aucune ressource tierce : aucun consentement n'est requis, mais elle doit être utilisée uniquement en HTTPS, car les identifiants ne sont pas chiffrés.

Présentation

Que fait HTTP Basic Authentication ?

Qu'est-ce que l'authentification HTTP Basic ?

L'authentification HTTP Basic est le mécanisme de contrôle d'accès le plus simple intégré au protocole HTTP. Elle est spécifiée par l'IETF dans la RFC 7617, publiée en septembre 2015 par Julian Reschke, qui remplace l'ancienne définition de la RFC 2617. Il ne s'agit ni d'un produit ni d'un service fourni par un éditeur : tous les serveurs web courants (Apache, Nginx, IIS, Caddy) et la plupart des frameworks la prennent en charge nativement. On la rencontre surtout sur les sites de préproduction, les espaces d'administration, les outils internes et les API.

Comment elle apparaît sur un site

Quand un visiteur demande une page protégée, le serveur répond avec un code 401 et un en-tête WWW-Authenticate : Basic, souvent accompagné d'un nom de domaine de protection (realm). Les outils de détection de technologies repèrent le mécanisme grâce à cet en-tête. Le navigateur affiche alors sa propre boîte de connexion. L'identifiant et le mot de passe sont réunis par deux-points, encodés en Base64 et transmis dans l'en-tête Authorization de chaque requête suivante. Aucun JavaScript n'est chargé et aucun domaine externe n'est contacté.

Cookies et données personnelles

L'authentification Basic n'utilise pas de cookie. Le navigateur garde les identifiants en mémoire pendant la session et les renvoie automatiquement, ce qui explique aussi l'absence de véritable déconnexion. Les données personnelles concernées sont l'identifiant, le mot de passe et l'adresse IP du visiteur, généralement inscrite dans les journaux d'accès du serveur. Le Base64 est un encodage, pas un chiffrement : quiconque intercepte une requête non chiffrée peut lire le mot de passe.

RGPD et consentement

Aucun consentement n'est nécessaire. Le mécanisme sert uniquement à donner accès à un utilisateur autorisé au service qu'il a demandé, ce qui relève de l'exemption « strictement nécessaire » de l'article 5(3) de la directive ePrivacy (article 82 de la loi Informatique et Libertés). Le traitement des identifiants et des journaux repose sur le contrat avec l'utilisateur ou sur l'intérêt légitime de l'éditeur à sécuriser l'accès. Le mécanisme n'envoie aucune donnée à un tiers ni hors de l'UE. L'obligation de sécurité de l'article 32 du RGPD reste applicable.

Bonnes pratiques

  • Servez les zones protégées uniquement en HTTPS, jamais en HTTP simple.
  • Stockez les mots de passe hachés sur le serveur (bcrypt ou Argon2 dans les fichiers htpasswd).
  • Limitez la durée de conservation des journaux d'accès et mentionnez-les dans votre politique de confidentialité.
  • Pour des comptes utilisateurs publics, préférez une connexion par session ou un fournisseur d'identité, et réservez l'authentification Basic aux accès internes ou temporaires.
  • Ajoutez une limitation de débit ou un filtrage par IP contre les attaques par force brute.
Conformité

HTTP Basic Authentication et le RGPD

Base légale
Performance of a contract or legitimate interest (Art. 6(1)(b) or 6(1)(f) GDPR); storage of credentials in the browser is exempt from consent as strictly necessary (Art. 5(3) ePrivacy Directive)
Niveau de risque
low
Textes applicables
GDPR, ePrivacy Directive

Analyse d'impact (AIPD)

Une AIPD n'est pas requise pour l'authentification Basic elle-même : elle ne traite que des identifiants de connexion et des journaux pour un groupe restreint d'utilisateurs autorisés. Les points de vigilance sont la sécurité du transport (HTTPS obligatoire, le Base64 n'offrant aucune protection), le stockage des mots de passe sur le serveur et la durée de conservation des journaux d'accès.

Exemple de texte pour votre bannière

Cet espace est protégé par une authentification HTTP standard. Votre navigateur transmet vos identifiants à chaque requête pour maintenir votre connexion : aucun cookie n'est déposé et rien n'est partagé avec des tiers.
Cookies et traceurs

Ce que HTTP Basic Authentication dépose et contacte

Méthode de suivi
Server-side HTTP authentication scheme, detected through a WWW-Authenticate: Basic response header (usually with a 401 status). No script, no cookie.
Localisation des serveurs
Not applicable (handled by the website's own web server)
Mode sans cookie disponible
Oui
Questions

Questions fréquentes sur HTTP Basic Authentication

Une question qui n'est pas dans la liste ? Écrivez-nous, on répond vite.

L'authentification HTTP Basic dépose-t-elle des cookies ?

Non. Le navigateur garde les identifiants en mémoire et les renvoie dans l'en-tête Authorization de chaque requête. Rien n'est écrit dans un cookie ni dans le stockage local.

Faut-il un bandeau cookies pour une page protégée par authentification Basic ?

Non. Le mécanisme est strictement nécessaire pour donner accès à un utilisateur autorisé au service qu'il a demandé, il est donc exempté de consentement. Le traitement des identifiants et des journaux doit tout de même figurer dans votre politique de confidentialité.

L'authentification Basic est-elle sûre ?

Seulement en HTTPS. L'identifiant et le mot de passe sont encodés en Base64, que n'importe qui peut décoder : en HTTP simple, ils circulent en clair. Avec TLS, une limitation des tentatives et des mots de passe robustes hachés, elle convient pour des outils internes ou des sites de préproduction.

Pourquoi ne peut-on pas se déconnecter d'un espace protégé par authentification Basic ?

Le navigateur conserve les identifiants pendant la session et le protocole ne prévoit aucune commande de déconnexion. Il faut en général fermer le navigateur, ce qui est une raison de préférer une connexion par session pour les comptes publics.

Quelle norme définit l'authentification HTTP Basic ?

La RFC 7617, publiée par l'IETF en septembre 2015. Elle rend obsolète la partie Basic de la RFC 2617 et ajoute un paramètre charset permettant au serveur d'annoncer des identifiants en UTF-8.

Mettez votre site en conformité aujourd'hui.

Gratuit jusqu'à 25 000 sessions par mois. Sans carte bancaire, sans engagement.