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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Understand this common mistake
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.
Worked example
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="lab-api"
Cache-Control: no-storeLe 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.
Practical exercise
Écrivez une matrice de réponses pour API publique, API authentifiée et action réservée au propriétaire.
View a suggested solution
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.
Verification checklist
- Schéma et profil explicites.
- Transport sécurisé.
- Permission vérifiée sur l’objet.
Knowledge check
Related lesson: 37. Authentification HTTP et autorisation métier ↗Module validation
101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.
Start or resume the 101 questions →This records your own progress and does not certify mastery. Complete the exercise before moving on.
