Aller au contenu principal

Sécurité

Nous utilisons le JWT pour avoir une application Stateless, ici donc pas de Session côté back-end qui serait récupérée via un id de session (envoyé par un cookie par exemple).

  • On met l'id technique de l'utilisateur dans le token avec un encryptage. On peut donc récupérer les informations de l'utilisateur depuis son jeton JWT qui est d'abord validé, ce qui permet de se fier au contenu.
  • On va se baser sur le fait que le token a une durée de vie restreinte (de l'ordre de la minute) pour assurer la mise à jour.

Note : ce n'est pas un compte qui peut avoir plusieurs utilisateurs, mais un utilisateur qui peut avoir plusieurs comptes. Cela ne pose pas de problème car on va chercher l'utilisateur depuis le compte. Les recherches dans l'autre sens ne devraient concerner que des besoins pour de l'administration qui ne requièrent pas que l'on ne retourne qu'un seul compte pour un utilisateur donné.

Gestion des privilèges dans le JWT

Exemple avec le privilège de "Création de convention" :

  • Calcul du privilège CREATE_CONVENTION lors de la création du jeton selon la règle métier adéquate.
  • Regroupement dans le jeton JWT des rôles et des privilèges sous la propriété authorities.
    • ROLE avec le prefixe ROLE_
    • PRIVILEGE sans prefixe
{
"sub": "jean.bui-quang@u-bordeaux.fr",
"p_id": "bbf2cc095b5d11d6c39d811da5f6f6f680926fff920dbf5e1561617fc549ceff0d",
"a_id": "d712ada98a459db1173d0e3f0703047f6aeb18198a6c75eda86c8b599b2599d0c0",
"authorities": [
"ROLE_ADMIN_TECHNIQUE", "CREATE_CONVENTION"
],
"given_name": "User",
"family_name": "Test",
"iat": 1695027931,
"exp": 1695071131
}
  • Accès à la page de création conditionné à la présence du privilège CREATE_CONVENTION dans le jeton JWT
  • Lors du chargement de la page création de conventions, on charge les données sélectionnables par l'utilisateur (basées sur le contexte de son rôle de créateur de convention). Le back récupère les droits de l'utilisateur pour retourner les structures/domaines autorisés.
  • Lors de la création de la convention, on force la vérification d'un rôle de créateur de convention valide et on vérifie que les données sélectionnées correspondent à celles autorisées

Voir la FQR