Partie 2
Authentification, autorisation et contrôle d'accès
Authentifier, c'est vérifier qui fait la requête. Autoriser, c'est décider ce qu'il a le droit de faire. Trois outils du cours :
- JWT (JSON Web Tokens) : standard ouvert pour transmettre des informations entre deux parties de façon sécurisée, souvent utilisé pour l'authentification et l'autorisation.
- Clés d'API : identifient un utilisateur ou un service qui appelle l'API ; servent à contrôler l'accès.
- MFA (authentification multi-facteurs) : une couche de plus, avec une validation à deux facteurs.
Le cours compare une authentification par cookie et une authentification avec JWT. Dans le TP, le principe est : à la connexion, un token JWT est généré avec une clé secrète et renvoyé ; le client le renvoie ensuite dans l'en-tête Authorization ; le serveur vérifie sa présence et sa validité, sinon il renvoie une erreur.
POST /login Content-Type: application/json { "email": "ana@exemple.com", "password": "..." } HTTP/1.1 200 OK { "token": "eyJhbGciOi..." } GET /plan Authorization: Bearer eyJhbGciOi...
(exemple ajouté ; la forme « Bearer » est la convention usuelle, hors cours)
Vérifie que tu as compris
Où le client renvoie-t-il son token JWT pour accéder à une route protégée, selon le TP ?
Contrôle des accès
| Mécanisme | Idée |
|---|---|
| RBAC (basé sur les rôles) | limiter les actions d'un utilisateur ou d'une application selon son rôle |
| ACL (listes de contrôle d'accès) | spécifier précisément quels utilisateurs ou systèmes peuvent accéder à certaines API ou à certaines parties d'une API |
Rappel de la partie 1 : un token manquant ou invalide mène à une erreur claire (401), un droit insuffisant à un 403.
Vérifie que tu as compris
« Seul le rôle admin peut appeler DELETE sur cette route. » Quel mécanisme est décrit ?