Erreur HTTP 401 : Unauthorized
Authentification requise : comprendre et résoudre.
L'erreur HTTP 401 "Unauthorized" est le code de réponse standard indiquant que l'authentification est requise pour accéder à une ressource. Malgré son nom, ce code concerne l'authentification (prouver son identité) et non l'autorisation (avoir les droits).
Le code 401 est accompagnĂ© d'un en-tĂȘte WWW-Authenticate qui spĂ©cifie le mĂ©canisme d'authentification acceptĂ© (Basic, Bearer, Digest, etc.). Le client peut alors rĂ©essayer avec les bonnes credentials. C'est le comportement qui dĂ©clenche la popup de login des navigateurs pour les sites protĂ©gĂ©s par Basic Auth.
Pour le monitoring d'APIs protégées, le 401 est un signal critique. Un 401 inattendu peut signifier une expiration de token, une révocation d'accÚs, ou un changement dans la configuration d'authentification. MoniTao permet de monitorer ces endpoints en configurant l'authentification appropriée.
Causes principales des erreurs 401
L'erreur 401 se produit lorsque l'authentification échoue. Voici les causes les plus courantes :
- Credentials manquantes : La requĂȘte ne contient pas d'en-tĂȘte Authorization alors que la ressource l'exige. C'est le cas le plus simple.
- Token expiré : Les JWT et tokens OAuth ont une durée de vie limitée. Passé ce délai, ils sont rejetés avec un 401.
- Token rĂ©voquĂ© : Un token peut ĂȘtre invalidĂ© cĂŽtĂ© serveur (dĂ©connexion, changement de mot de passe, rĂ©vocation manuelle) tout en restant valide cĂŽtĂ© client.
- Identifiants incorrects : Login/mot de passe erronés, clé API mal copiée, ou secret modifié sans mise à jour cÎté client.
Différence entre 401 et 403
Ces deux codes sont souvent confondus mais ont des significations distinctes :
- 401 Unauthorized : "Qui ĂȘtes-vous ?" - L'identitĂ© n'est pas Ă©tablie. Le client doit fournir des credentials valides.
- 403 Forbidden : "Vous n'avez pas le droit" - L'identité est connue mais les permissions sont insuffisantes.
- Action appropriĂ©e : 401 = demander une authentification. 403 = pas la peine de rĂ©essayer avec les mĂȘmes credentials.
- Sémantique correcte : Utilisez 401 pour les endpoints non authentifiés, 403 pour les accÚs authentifiés mais non autorisés.
Résolution des erreurs 401
Selon la cause identifiée, voici les solutions à appliquer :
- Vérifier les credentials : Assurez-vous que le token ou les identifiants sont corrects. Attention aux espaces en début/fin et à la casse.
- Renouveler le token : Si le token est expiré, utilisez le refresh token ou régénérez-en un nouveau via le mécanisme prévu.
- VĂ©rifier le format : L'en-tĂȘte Authorization doit avoir le bon format : "Bearer
" ou "Basic ". - Consulter les logs : Les logs serveur peuvent indiquer la raison exacte du rejet : token malformé, signature invalide, etc.
Exemples d'authentification HTTP
Voici comment configurer l'authentification pour diffĂ©rents types de requĂȘtes :
# cURL - Basic Auth
curl -u username:password https://api.example.com/resource
# cURL - Bearer Token
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." https://api.example.com/resource
# JavaScript fetch - Bearer Token
fetch("https://api.example.com/resource", {
headers: {
"Authorization": "Bearer " + accessToken
}
})
# PHP - Vérification cÎté serveur
$authHeader = $_SERVER["HTTP_AUTHORIZATION"] ?? "";
if (!preg_match("/Bearer\s+(\S+)/", $authHeader, $matches)) {
http_response_code(401);
header("WWW-Authenticate: Bearer");
exit(json_encode(["error" => "Token requis"]));
}
L'en-tĂȘte WWW-Authenticate dans la rĂ©ponse 401 indique au client quel mĂ©canisme d'authentification utiliser.
Monitoring des endpoints authentifiés
Monitorer des APIs protégées nécessite une configuration spécifique :
- Configurer l'authentification : Dans MoniTao, ajoutez vos credentials (Basic Auth ou Bearer Token) dans la configuration du monitor.
- Surveiller l'expiration : Configurez des alertes pour ĂȘtre prĂ©venu avant l'expiration des tokens de monitoring.
- Compte dédié : Créez un compte ou token spécifique pour le monitoring avec des droits minimaux (lecture seule).
- Rotation planifiée : Planifiez la rotation des tokens de monitoring avant leur expiration pour éviter les fausses alertes.
Checklist authentification
- En-tĂȘte Authorization prĂ©sent et bien formatĂ©
- Token/credentials valides et non expirés
- Compte de monitoring avec droits minimaux créé
- Token de monitoring avec longue durée de vie
- Procédure de rotation documentée et planifiée
- Alerte configurée pour 401 inattendu
Questions fréquentes sur HTTP 401
Pourquoi 401 s'appelle "Unauthorized" alors qu'il s'agit d'authentification ?
C'est un abus de langage historique dans la spécification HTTP. Le terme correct serait "Unauthenticated". La RFC 7235 maintient ce nom pour la rétrocompatibilité.
Comment monitorer une API avec authentification JWT ?
Configurez un monitor MoniTao avec un en-tĂȘte Authorization: Bearer
Mon monitor reçoit 401 alors que le token est valide. Pourquoi ?
VĂ©rifiez : 1) Le format exact de l'en-tĂȘte (Bearer avec majuscule, un seul espace). 2) Pas d'espaces invisibles autour du token. 3) Token non rĂ©voquĂ© cĂŽtĂ© serveur.
Comment éviter les fausses alertes 401 dues à l'expiration des tokens ?
Utilisez des tokens avec longue durée de vie pour le monitoring, ou mettez en place une rotation automatique avec alerte N jours avant expiration.
Que faire si mon API retourne 401 au lieu de 403 pour un accÚs non autorisé ?
C'est une erreur d'implĂ©mentation cĂŽtĂ© serveur. 401 devrait ĂȘtre utilisĂ© uniquement quand l'identitĂ© n'est pas Ă©tablie. Pour un utilisateur authentifiĂ© sans droits, c'est 403.
Comment gérer le renouvellement automatique des tokens ?
Implémentez un systÚme de refresh token. Quand le access token expire (401), utilisez le refresh token pour en obtenir un nouveau sans redemander les credentials.
Conclusion
L'erreur HTTP 401 Unauthorized signale un problÚme d'authentification : credentials manquantes, expirées ou invalides. Une bonne compréhension de la différence avec 403 (autorisation) permet d'implémenter des systÚmes de sécurité plus robustes.
MoniTao supporte le monitoring d'APIs protégées avec Basic Auth et Bearer Token. Configurez vos monitors avec des tokens dédiés longue durée et recevez des alertes en cas de 401 inattendu, signalant un problÚme d'authentification à résoudre immédiatement.
Liens utiles
PrĂȘt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.