Jetons d’accès

Overview

Principaux concepts

  • Découvrez l’authentification à base de jetons.

  • Lisez comment Auth0 utilise les jetons d’accès Web JSON (JWT) autonomes, conformes à la structure JSON avec demandes standard.

  • Passez en revue l’exemple de jeton d’accès fourni et les paramètres nécessaires.

  • Définissez la durée de vie des jetons d’accès, sur la base de la durée par défaut.

Les jetons d’accès sont utilisés dans l’authentification basée sur les jetons pour permettre à une application d’accéder à une API. L’application reçoit un jeton d’accès après qu’un utilisateur se soit authentifié avec succès et ait autorisé l’accès, puis transmet le jeton d’accès en tant que justificatif lorsqu’elle appelle l’API cible. Le jeton transmis informe l’API que le porteur du jeton a été autorisé à accéder à l’API et à effectuer des actions spécifiques précisées par les autorisations Permission qui lui ont été accordées lors de l’autorisation.

De plus, si vous avez choisi de permettre aux utilisateurs de se connecter via un(e) Fournisseur d’identité (IdP), tel que Facebook, le fournisseur d’identité (IdP) é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 en utilisant Facebook, le jeton d’accès émis par Facebook peut être utilisé pour appeler l’API Graph de Facebook. Ces jetons sont contrôlés par le fournisseur d’identité et peuvent être émis dans n’importe quel format. Consulter Jetons d’accès de fournisseur d’identité pour plus de détails.

Jetons d’accès opaques

Les jetons d’accès opaques sont des jetons dans un format propriétaire auxquels vous ne pouvez pas accéder et contiennent généralement un identifiant pour des informations stockées de manière persistante sur un serveur. Pour valider un jeton opaque, le destinataire du jeton doit appeler le serveur qui a émis le jeton.

Dans le cas d’Auth0, les jetons opaques peuvent être utilisés avec le point de terminaison /userinfo pour renvoyer un profil 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

Les jetons d’accès Web JSON (JWT) sont conformes à la norme JWT et contiennent des informations sur une entité sous la forme de demandes. Ils sont auto-suffisants, il n’est donc pas nécessaire pour le destinataire d’appeler un serveur pour valider le jeton

Les jetons d’accès émis pour Management API et les jetons d’accès émis pour toute API personnalisée que vous avez enregistrée auprès d’Auth0 respectent la norme JWT, ce qui signifie que leur structure de base est conforme à la structure JWT typique et qu’ils contiennent des demandes JWT concernant le jeton lui-même.

Jetons d’accès à Management API

Un jeton d’accès émis pour Management API Auth0 devrait être traité comme opaque (peu importe s’il l’est réellement) : vous n’avez donc pas besoin de le valider. Vous pouvez l’utiliser avec Management API Auth0 et Auth0 s’occupe du reste. Pour en savoir plus, consutez Jetons de Management API Auth0.

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

Si la validation de votre jeton d’accès personnalisé à l’API é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.

Échantillon de jeton d’accès

Cet exemple montre le contenu d’un jeton d’accès. Notez que le jeton ne contient que des informations d’autorisation sur les Actions que l’application est autorisée à effectuer au niveau 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"
}

Was this helpful?

/

Le jeton ne contient aucune information sur l’utilisateur, à l’exception de l’identifiant de l’utilisateur (situé dans la demandesub). Dans de nombreux cas, il peut être utile de récupérer des informations de l’utilisateur supplémentaires. 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 signatureRS256.

Sécurité des jetons d’accès

Vous devez suivre les meilleures pratiques en matière de jetons lorsque vous utilisez des jetons d’accès, et pour les JWT, assurez-vous que vous validez un jeton d’accès avant de supposer que son contenu est digne de confiance.

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

Durée de vie des jetons pour l’API personnalisée

Par défaut, un jeton d’accès pour une API personnalisée est valide pendant 86400 secondes (24 heures). Nous vous conseillons de définir la période de validité de votre jeton en fonction des exigences de sécurité de votre API. Par exemple, un jeton d’accès qui accède à une API bancaire devrait expirer plus rapidement qu’un jeton qui accède à 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 dans le seul but d’accéder au point de terminaison OIDC /userinfo ont une durée de vie par défaut et ne peuvent pas être modifiés. La durée de vie dépend du flux utilisé pour obtenir le jeton :

Flux Durée de vie
Implicite 7200 secondes (2 heures)
Code d’autorisation/Hybride 86400 secondes (24 heures)

En savoir plus