Demandes de jetons Web JSON

Les demandes de Jetons Web JSON (JWT) sont des éléments d’information concernant un sujet. Par exemple, un jeton d’ID (qui est toujours un JWT) peut contenir une demande appelée name qui confirme que le nom de l’utilisateur s’authentifiant est «Pierre Untel». Dans un JWT, une demande se présente sous la forme d’une paire nom/valeur où le nom correspond obligatoirement à une chaîne de caractères et la valeur à n’importe quelle valeur JSON. En règle générale, quand on parle d’une demande dans le contexte d’un JWT, on se réfère au nom (ou à la clé). Par exemple, l’objet JSON suivant contient trois demandes (sub, name, admin) :

{
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }

Was this helpful?

/

Il existe deux types de demandes JWT :

  • Enregistrée : demande standard enregistrée auprès de la Internet Assigned Numbers Authority (IANA) et définie par la spécification JWT pour assurer l’interopérabilité entre applications tierces ou externes. Les demandes OIDC standard sont des demandes réservées.

  • Personnalisée :  demandes publiques ou privées non enregistrées. Les demandes publiques sont résistantes aux collisions, tandis que les demandes privées sont sujettes à d’éventuelles collisions.

Demandes enregistrées

La spécification JWT définit sept demandes réservées qui ne sont pas obligatoires, mais qui sont recommandées pour permettre l’interopérabilité avec des applications tierces. Il s’agit de :

  • iss (issuer) : Émetteur du JWT

  • sub (subject) : Sujet du JWT (l’utilisateur)

  • aud (audience) : Destinataire auquel le JWT est destiné

  • exp (expiration time) : Délai avant l'expiration du JWT

  • nbf (not before time) : Délai avant l'acceptation du JWT pour traitement

  • iat (issued at time) : Heure à laquelle le JWT a été émis; peut être utilisé pour déterminer l’âge du JWT

  • jti (JWT ID) : Identifiant unique; peut être utilisé pour empêcher que le JWT soit rejoué (un jeton ne peut être utilisé qu’une seule fois)

Pour une liste complète des demandes enregistrées, consultez Registre des demandes de jetons Web JSON de l’IANA.

Demandes personnalisées

Vous pouvez définir vos propres demandes personnalisées, que vous contrôlez, et les ajouter à un jeton à l’aide d’actions. Voici quelques exemples :

  • Ajoutez l’adresse courriel d’un utilisateur à un jeton d’accès et utilisez-la pour identifier l’utilisateur de manière unique

  • Ajoutez des informations personnalisées stockées dans un profil utilisateur Auth0 à un jeton d’ID

Tant que l’action est en place, les demandes personnalisées qu’elle ajoute apparaîtront dans des nouveaux jetons émis lors de l’utilisation d’un jeton d’actualisation.

Pour obtenir un exemple montrant comment ajouter des demandes personnalisées à un jeton, voir Exemples de cas d’utilisation : Permissions et demandes.

Demandes publiques

Vous pouvez créer des demandes personnalisées destinées au public, qui peuvent contenir des informations génériques comme le nom et l’adresse de courriel. Si vous créez des demandes publiques, vous devez les enregistrer ou utiliser des noms résistants aux collisions par le biais de l’espace de noms et prendre toute précaution utile pour vous assurer que vous contrôlez l’espace de noms que vous utilisez.

Dans le Registre des demandes de jetons Web JSON de l’IANA, vous pouvez voir quelques exemples de demandes publiques enregistrées par OpenID Connect (OIDC) :

  • auth_time

  • acr

  • nonce

Demandes privées

Vous pouvez créer des demandes personnalisées privées pour partager des informations spécifiques à votre application. Par exemple, une demande publique peut contenir des informations génériques (nom et adresse de courriel), tandis que les demandes privées sont plus spécifiques (ID de l’employé et nom du service).

Restrictions Auth0

Auth0 applique les restrictions générales relatives aux demandes personnalisées :

  • la charge utile des demandes personnalisées est fixée à un maximum de 100 Ko;

  • un sous-ensemble d’OIDC et d’autres demandes standard enregistrées ou des demandes utilisées en interne par Auth0 ne peuvent pas être personnalisées ou modifiées;

  • les jetons d’accès avec une audience Auth0 API, à l’exception du point de terminaison /userinfo, ne peuvent pas avoir de demandes personnalisées privées et sans espace de noms;

  • seules les demandes spécifiées du profil utilisateur de l’OIDC peuvent être ajoutées aux jetons d’accès.

Pour en savoir plus sur les demandes personnalisées, lisez Créer des demandes personnalisées.

En savoir plus