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.
Offres associées
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
- RFC 7519
- RFC 9068
- OAuth 2.0
- OpenID Connect
- JWT
Termes liés
- Autorisation par enrichissement de tokens
- Scope d'autorisation
- Bearer token
- Refresh token
- Autorisation externalisée
- Policy Decision Point
- Policy Enforcement Point
- Autorisation fine
- Contrôle d'accès basé sur les attributs
- Contrôle d'accès basé sur les politiques (PBAC)
- Role explosion — explosion du nombre de rôles
Ressources et liens Ariovis
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.