401 vs 403 : la différence entre authentification et autorisation

Explique comment distinguer « vous devez vous connecter » de « vous n'avez pas la permission ».

Malgré son nom, 401 Unauthorized signifie en réalité « non authentifié ». Il indique que les identifiants sont absents ou invalides, et le serveur utilise l'en-tête WWW-Authenticate pour signaler quel type d'authentification est requis. Cela se résout souvent en se connectant ou en renouvelant le jeton.

403 Forbidden signifie que vous êtes authentifié, mais que vous n'avez pas la permission d'accéder à la ressource. Se reconnecter donne le même résultat. Il faut vérifier les rôles et permissions de l'utilisateur, la propriété de la ressource, les règles d'IP et de pare-feu (WAF) et les portées OAuth.

En résumé, 401 signifie « je ne sais pas qui vous êtes », tandis que 403 signifie « je sais qui vous êtes, mais je ne peux pas l'autoriser ». Pour des raisons de sécurité, certains serveurs renvoient 404 au lieu de 403 afin de masquer l'existence même d'une ressource.