← HTTP — sécurité avancée, 40 leçons de cours

Module 37 / 40 · 90 min

37. Authentification HTTP et autorisation métier

Interpréter les challenges sans réduire tous les refus au mot de passe.

Votre progression apparaîtra ici lorsque JavaScript est actif.

La progression et le meilleur score sont enregistrés uniquement dans ce navigateur. Aucun compte n’est nécessaire ; effacer les données du navigateur les supprime. Les durées de modules sont indicatives et incluent les exercices.

Comprendre le mécanisme

WWW-Authenticate décrit un challenge selon un schéma d’authentification. Le client et le serveur doivent partager le contrat du schéma et le contexte auquel l’identité s’applique. Une réponse signalant l’absence d’authentification ne se confond pas avec un refus d’action pour un acteur déjà identifié. Des règles de non-divulgation peuvent aussi influencer la réponse publique. Dans tous les cas, les événements internes restent corrélables sans exposer les secrets.

Raisonner et vérifier

Un encodage de credentials n’est pas un chiffrement ; le canal sécurisé et la validation restent nécessaires. Un bearer token accorde une capacité à son détenteur selon le profil prévu : le transport, le stockage, la durée et la validation du jeton font partie du modèle. Un client authentifié doit encore prouver la permission sur l’objet et l’opération demandés. Testez identité absente, jeton invalide et permission insuffisante séparément.

Challenge

WWW-Authenticate porte un challenge selon un schéma. Le champ décrit un mécanisme d’authentification. WWW-Authenticate annonce un challenge selon le schéma utilisé. Le client et le serveur doivent partager ce contrat ; un texte arbitraire ne met pas en œuvre un protocole d’authentification complet.

Erreur fréquente à comprendre

WWW-Authenticate chiffre automatiquement le mot de passe.

Le champ décrit un mécanisme d’authentification.

Bearer validé

Un bearer token doit être validé. Le nom du schéma ne vérifie pas la valeur. Recevoir Authorization: Bearer indique seulement une valeur présentée. Vérifiez preuve ou introspection, profil, durée et retrait selon le mécanisme avant de construire une identité utilisable par le métier.

Erreur fréquente à comprendre

La présence du mot Bearer prouve la validité.

Le nom du schéma ne vérifie pas la valeur.

Permission

Une identité valide ne donne pas tous les droits. L’autorisation porte sur l’objet et l’opération. Un utilisateur reconnu peut rester interdit sur une réservation. Contrôlez l’action sur cet objet après authentification, avec test propriétaire et tiers ; la connexion ne suffit pas à prouver cette relation.

Erreur fréquente à comprendre

Un login réussi autorise toute réservation tierce.

L’autorisation porte sur l’objet et l’opération.

Basic et base64

Base64 est un encodage. L’encodage est réversible sans secret. La représentation base64 du schéma Basic est réversible sans secret. Elle ne chiffre pas lab:public ; le canal doit protéger les credentials et leurs copies doivent être exclues des traces ordinaires.

Erreur fréquente à comprendre

Base64 rend les credentials confidentiels contre le lecteur.

L’encodage est réversible sans secret.

Transport

Le canal doit protéger les credentials sensibles. La signature ne protège pas contre toute interception et réutilisation. Utilisez un canal authentifié et chiffré selon le contrat. Une politique de header correcte ne répare pas une transmission vers une mauvaise destination ou une validation TLS désactivée.

Erreur fréquente à comprendre

Un token signé dispense de HTTPS.

La signature ne protège pas contre toute interception et réutilisation.

Catégories de refus

Une politique peut distinguer identité absente et droit insuffisant. Le contrat public doit aussi tenir compte de la non-divulgation. Distinguez dans la politique identité absente ou invalide et permission insuffisante. Le choix de réponse publique doit rester cohérent sans divulguer inutilement l’existence de ressources confidentielles.

Erreur fréquente à comprendre

Tous les refus doivent révéler les détails internes du compte.

Le contrat public doit aussi tenir compte de la non-divulgation.

Profil partagé

Le schéma et son profil doivent être partagés. Les règles de validation doivent être explicites. Bearer ne dit pas si le token est JWT ou opaque ni quelle audience est attendue. Documentez la validation convenue avec l’émetteur et refusez les profils qui ressemblent seulement au bon format.

Erreur fréquente à comprendre

Une chaîne longue suffit à définir un protocole sûr.

Les règles de validation doivent être explicites.

Logs

Les journaux doivent éviter les credentials bruts. Le diagnostic peut utiliser des catégories et corrélations. Retirez Authorization et cookies des événements ordinaires. Une trace de diagnostic qui conserve la valeur entière peut fournir à son lecteur la même capacité que le porteur légitime.

Erreur fréquente à comprendre

Déboguer un challenge exige de publier les tokens.

Le diagnostic peut utiliser des catégories et corrélations.

Redirections

Un client doit éviter de transmettre ses secrets à toute redirection. La destination et le périmètre doivent être contrôlés. Réévaluez credentials lors d’un changement de destination du client HTTP. Vérifiez les règles de la bibliothèque et les sauts admis ; un secret ne doit pas suivre librement toute URL retournée.

Erreur fréquente à comprendre

Les credentials suivent automatiquement toute destination admise visuellement.

La destination et le périmètre doivent être contrôlés.

Tests distincts

Les tests doivent distinguer token invalide et permission insuffisante. Authentification et autorisation sont deux décisions. Utilisez un token invalide pour l’authentification et un token valide d’un tiers pour l’autorisation. Ces cas isolent deux propriétés différentes et évitent qu’un rejet précoce masque une règle d’objet absente.

Erreur fréquente à comprendre

Un seul test connecté couvre les deux frontières.

Authentification et autorisation sont deux décisions.

Atelier guidé : lire, expliquer et vérifier le code

Authorization: Basic bGFiOnB1YmxpYw==

Fixture publique : lab:public ; aucune requête réelle n’est envoyée.

La valeur Basic encode les credentials publics de laboratoire, sans les chiffrer. Décodez-la localement puis expliquez pourquoi HTTPS et minimisation des traces restent nécessaires. Aucun appel réel n’est requis pour comprendre la différence entre représentation du header, protection du canal et décision de permission.

Le schéma et l’encodage ne protègent pas seuls le secret sur le canal. Il n’y a pas cette clé de chiffrement. Le canal reste une protection nécessaire. Le serveur doit valider identité et permissions.

Travail pratique : Écrivez une matrice de réponses pour API publique, API authentifiée et action réservée au propriétaire.

Critères de correction : Testez le challenge et les messages publics sans enregistrer le token. Vérifiez que le refus de droit ne relance pas inutilement une authentification et qu’aucune mutation ne précède la décision d’autorisation.

Exemple commenté

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="lab-api"
Cache-Control: no-store

Le schéma annonce le contexte d’authentification de ce laboratoire. La présence d’un champ Bearer côté client ne valide pas son contenu.

Exercice de mise en pratique

Écrivez une matrice de réponses pour API publique, API authentifiée et action réservée au propriétaire.

Voir une proposition de correction

Testez le challenge et les messages publics sans enregistrer le token. Vérifiez que le refus de droit ne relance pas inutilement une authentification et qu’aucune mutation ne précède la décision d’autorisation.

Points de vérification

  • Schéma et profil explicites.
  • Transport sécurisé.
  • Permission vérifiée sur l’objet.

Contrôle de connaissances

Cours associé : 37. Authentification HTTP et autorisation métier ↗
La réception d’un bearer token suffit-elle à identifier un utilisateur autorisé ?

Documentation de référence ↗

Validation du module

101 questions, objectif pédagogique de 75 %. Durée conseillée de 150 minutes, sans limite imposée. Les questions et les choix sont mélangés ; le corrigé apparaît après validation. Le contrôle rapide de la leçon et l’examen final du cours restent des exercices distincts.

Commencer ou reprendre les 101 questions →