Separons authentification et autorisation
L'authentification repond a 'qui etes-vous ?'. L'autorisation repond a 'que pouvez-vous faire ?'. Les melanger cree des failles.
Une API REST robuste authentifie d'abord, puis controle les droits sur chaque ressource.
API keys : simple mais limite
Les API keys sont faciles a mettre en place et pratiques pour du server-to-server. Elles sont grossieres : elles representent une application, pas un utilisateur.
Si vous avez besoin de permissions fines ou d'audit, les API keys ne suffisent pas.
OAuth : le standard pour les donnees utilisateur
OAuth permet un acces delegue sans partager de mot de passe. C'est le standard des APIs publiques.
C'est plus complexe, mais plus sur et plus scalable.
JWT : portable mais sensible
Les JWT sont auto-portes et conviennent aux APIs stateless. Ils evitent de stocker des sessions.
Mais ils sont difficiles a revoquer. Utilisez des tokens courts, des refresh tokens, et une rotation des cles.
Scopes et moindre privilege
Les scopes limitent l'acces au minimum. Cela reduit l'impact en cas de fuite.
Concevez des scopes par action ou categorie de ressource, et gardez-les simples.
Gestion des erreurs d'auth
401 pour auth manquante ou invalide, 403 pour auth valide mais insuffisante.
Les messages doivent aider sans divulguer d'informations sensibles.
HTTPS obligatoire
Toujours chiffrer. Les tokens sur HTTP sont l'equivalent du texte clair.
En interne, mTLS ou reseaux prives restent preferables, mais le chiffrement reste la base.
Rotation et audit
Les tokens doivent pouvoir etre rotes sans downtime. Cela rend la revocation possible.
Loggez les evenements d'auth pour detecter les abus et repondre aux exigences de conformite.
