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.
L'erreur 401 se produit lorsque l'authentification échoue. Voici les causes les plus courantes :
Ces deux codes sont souvent confondus mais ont des significations distinctes :
Selon la cause identifiée, voici les solutions à appliquer :
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.
Monitorer des APIs protégées nécessite une configuration spécifique :
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é.
Configurez un monitor MoniTao avec un en-tête Authorization: Bearer
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.
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.
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.
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.
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.
Commencez gratuitement, sans carte bancaire.