Passer au contenu principal

Vue d’ensemble

Concepts clés
  • Découvrez l’authentification par jeton.
  • Découvrez comment Auth0 utilise des jetons d’accès autonomes au format JSON Web Token (JWT), conformes à une structure JSON avec des revendications standard.
  • Passez en revue l’exemple de jeton d’accès fourni et les paramètres requis.
  • Définissez la durée de validité du jeton d’accès selon la valeur par défaut.
sont utilisés dans l’authentification par jeton pour permettre à une application d’accéder à une API. L’application reçoit un jeton d’accès une fois que l’utilisateur s’est authentifié avec succès et a autorisé l’accès, puis le transmet comme justificatif lorsqu’elle appelle l’API cible. Le jeton transmis indique à l’API que son porteur est autorisé à accéder à l’API et à effectuer les actions précises définies par le accordé pendant l’autorisation. De plus, si vous avez choisi de permettre aux utilisateurs d’ouvrir une session au moyen d’un , comme Facebook, le émettra son propre jeton d’accès pour permettre à votre application d’appeler l’API de l’IdP. Par exemple, si votre utilisateur s’authentifie avec Facebook, le jeton d’accès émis par Facebook peut servir à appeler l’API Graph de Facebook. Ces jetons sont contrôlés par l’IdP et peuvent être émis dans n’importe quel format. Consultez Jetons d’accès du fournisseur d’identité pour en savoir plus.

Jetons d’accès opaques

Les jetons d’accès opaques sont des jetons dans un format propriétaire dont vous ne pouvez pas interpréter le contenu et qui contiennent généralement un identifiant pointant vers des informations stockées de façon persistante sur un serveur. Pour valider un jeton opaque, le destinataire du jeton doit appeler le serveur qui l’a émis. Dans le cas d’Auth0, les jetons opaques peuvent être utilisés avec le point de terminaison /userinfo pour renvoyer le profil d’un utilisateur. Si vous recevez un Jeton d’accès opaque, vous n’avez pas besoin de le valider. Vous pouvez l’utiliser avec le point de terminaison /userinfo, et Auth0 s’occupe du reste. Pour en savoir plus, consultez Obtenir des jetons d’accès.

Jetons d’accès JWT

(JWT) Les jetons d’accès sont conformes à la norme JWT et contiennent des informations sur une entité sous forme de revendications. Ils sont autonomes; le destinataire n’a donc pas besoin d’appeler un serveur pour valider le jeton. Les jetons d’accès émis pour la , ainsi que ceux émis pour toute API personnalisée que vous avez enregistrée avec Auth0, suivent la norme JWT. Cela signifie que leur structure de base correspond à la structure JWT habituelle et qu’ils contiennent des revendications JWT standard sur le jeton lui-même.

Jetons d’accès de la Management API

Un jeton d’accès émis pour l’Auth0 Management API doit être traité comme opaque (qu’il le soit réellement ou non). Vous n’avez donc pas besoin de le valider. Vous pouvez l’utiliser avec l’Auth0 Management API, et Auth0 s’occupe du reste. Pour en savoir plus, consultez Jetons de l’Auth0 Management API.

Jetons d’accès d’API personnalisés

Si la validation de votre jeton d’accès d’API personnalisé échoue, assurez-vous qu’il a été émis avec votre API personnalisée comme audience. Pour en savoir plus, consultez Obtenir des jetons d’accès.

Exemple de jeton d’accès

Cet exemple montre le contenu d’un jeton d’accès. Notez que le jeton contient uniquement des informations d’autorisation sur les actions que l’application est autorisée à effectuer au moyen de l’API (ces autorisations sont appelées scopes).
{
  "iss": "https://my-domain.auth0.com/",
  "sub": "auth0|123456",
  "aud": [
    "https://example.com/health-api",
    "https://my-domain.auth0.com/userinfo"
  ],
  "azp": "my_client_id",
  "exp": 1311281970,
  "iat": 1311280970,
  "scope": "openid profile read:patients read:admin"
}
Le jeton ne contient aucune information sur l’utilisateur, à l’exception de l’ID utilisateur (situé dans la revendication sub). Dans de nombreux cas, il peut être utile de récupérer des informations supplémentaires sur l’utilisateur. Vous pouvez le faire en appelant le point de terminaison userinfo de l’API avec le Jeton d’accès. Assurez-vous que l’API pour laquelle le Jeton d’accès est émis utilise l’algorithme de signature RS256.

Sécurité des jetons d’accès

Lorsque vous utilisez des jetons d’accès, suivez les bonnes pratiques relatives aux jetons et, pour les JWT, assurez-vous de valider un jeton d’accès avant de supposer que son contenu est fiable.

Durée de vie du jeton d’accès

Durée de vie du jeton d’accès d’une API personnalisée

Par défaut, un jeton d’accès pour une API personnalisée est valide pendant 86 400 secondes (24 heures). Nous vous recommandons de définir la durée de validité de votre jeton en fonction des exigences de sécurité de votre API. Par exemple, un jeton d’accès permettant d’accéder à une API bancaire devrait expirer plus rapidement qu’un jeton d’accès permettant d’accéder à une API de liste de tâches. Pour en savoir plus, consultez Mettre à jour la durée de vie du jeton d’accès.

Durée de vie du jeton pour le point de terminaison /userinfo

Les jetons d’accès émis uniquement pour accéder au point de terminaison OIDC /userinfo ont une durée de vie par défaut qui ne peut pas être modifiée. Cette durée de vie dépend du flux utilisé pour obtenir le jeton :
FluxDurée de vie
Implicite7200 secondes (2 heures)
Code d’autorisation/Hybride86400 secondes (24 heures)

Pour en savoir plus