Fédération

Token bloat — gonflement des jetons

Le token bloat apparaît lorsqu'un token d'identité ou d'accès, souvent un JWT, embarque une quantité excessive de rôles, groupes, permissions, scopes, attributs, entitlements et autres claims.

Synonyme
gonflement des jetonsjeton surchargé

Définition

Le problème n'est pas uniquement la taille du token. À mesure que l'on ajoute des informations d'autorisation dans le jeton, celui-ci devient progressivement une copie embarquée du modèle d'habilitation : une information qui aurait parfois intérêt à être évaluée au moment de l'action se retrouve figée dans un token émis auparavant, avec des conséquences sur la fraîcheur, la révocation et l'exposition. Keycloak illustre bien le mécanisme : rôles de realm, rôles applicatifs, rôles composites et claims personnalisés peuvent tous être injectés dans les tokens, donc une role explosion peut provoquer du token bloat si une grande partie de ces rôles est ensuite embarquée. Les deux notions ne sont pourtant pas synonymes : on peut avoir énormément de rôles sans les envoyer dans le token, et un token énorme sans beaucoup de rôles, simplement à cause de nombreux groupes, attributs ou autres claims.

Pourquoi c'est important

Un jeton qui transporte le modèle d'habilitation diffuse des données d'autorisation dans les proxys, les journaux et les navigateurs, et fige des décisions qui auraient dû être recalculées au moment de l'action.

Le point de vue d'Ariovis

Un token doit transporter ce qui est nécessaire à l'échange, pas devenir la base de données des habilitations de l'entreprise. Les informations relativement stables utiles à l'authentification ou à la délégation peuvent y figurer ; lorsque la décision dépend fortement de la ressource, de l'action, de la relation avec l'objet, de la sensibilité de la donnée, du contexte ou du risque, il devient pertinent d'évaluer l'autorisation au moment de l'action via une architecture PDP / PEP plutôt que d'ajouter encore un claim au JWT.

Les pièges courants

  • Croire que le token bloat vient toujours d'un excès de rôles : les groupes, attributs et claims métier le produisent tout aussi facilement.

Standards et protocoles

Standards de référence
  • RFC 7519
  • RFC 9068
Protocoles associés
  • OAuth 2.0
  • OpenID Connect
  • JWT

Explorer la même catégorie

Ces notions prennent tout leur sens dans un projet réel.

Le premier échange permet de comprendre votre contexte, vos systèmes et la prochaine décision utile.