Profils des jetons d’accès

Les profils de jetons d’accès définissent le format et les demandes des jetons d’accès émis pour une API. Auth0 prend en charge les profils de jetons d’accès suivants, également appelés dialectes de jetons :

Profil de jeton Description Dialecte de jeton
Profil de jeton Auth0 Le profil de jeton par défaut. Émet des jetons d’accès formatés en tant que Jeton Web JSON (JWT). Le profil de jeton Auth0 est associé à deux dialectes de jeton :
  • access_token
  • access_token_authz, ou le profil access_token avec la demande de permissions incluse
Profil de jeton RFC 9068 Émet des jetons d’accès formatés en tant que jeton Web JSON (JWT) suivant la norme IETF pour le codage des jetons d’accès OAuth 2.0 au format JWT. Le profil de jeton RFC 9068 est associé à deux dialectes de jeton :
  • rfc9068_profile
  • rfc9068_profile_authz, ou le profil rfc9068_profile avec la demande de permissions incluse

Bien que les deux profils de jeton d’accès émettent des jetons d’accès JSON Web Token (JWT), les JWT ont des formats de jeton différents. Les deux profils de jeton d’accès peuvent activer le contrôle d'accès basé sur les rôles (RBAC) et ajouter la demande d’autorisation au jeton d’accès.

Pour configurer le profil de jeton d’accès pour une API, veuillez consulter l’article Configurer le profil de jeton d’accès.

Exemple de profil de jeton Auth0

{
  "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",
  "my_custom_claim": "my_custom_value"
}

Was this helpful?

/

Exemple de profil de jeton RFC 9068

{
  "iss": "https://my-domain.auth0.com/",
  "sub": "auth0|123456",
  "aud": [
    "https://example.com/health-api",
    "https://my-domain.auth0.com/userinfo"
  ],
  "client_id": "my_client_id",
  "exp": 1311281970,
  "iat": 1311280970,
  "jti":"73WakrfVbNJBaAmhQtEeDv",
  "scope": "openid profile read:patients read:admin",
  "my_custom_claim": "my_custom_value"
}

Was this helpful?

/

Différences de profil de jeton

Le profil Auth0 et le profil RFC 9068 émettent des jetons JWT qui ont des formats de jetons différents. Les principales différences sont les suivantes :

  • Le profil RFC 9068 intègre la demande jti, fournissant un identifiant unique pour le jeton JWT.

  • Le profil Auth0 utilise la demande azp pour représenter l’ID client, tandis que le profil RFC 9068 utilise la demande client_ID.

  • Le profil RFC 9068 n’utilise pas la demande gty, qui est une demande propre à Auth0 qui représente le flux d’authentification.

En-tête

Donnée Profil RFC 9068 Profil Auth0
type at+jwt JWT
alg Algorithme de signature, par exemple, RS256 Algorithme de signature, par exemple, RS256

Demandes

Demande
Description
Présente dans RFC 9068 Profile
Présente dans le profil Auth0
Exemple de demande
iss Identifiant de l’émetteur pour le locataire Auth0 émettant le jeton d’accès. Oui Oui Domaine du locataire : https://tenant.auth0.com/
sub L’objet de la demande indique pour quel utilisateur ou application le jeton d’accès a été émis :
  • Pour les autorisations dans lesquelles un utilisateur final est impliqué, comme le flux de code d’autorisation, la demande sub</code&gt ; est la suivante :user_id.
  • Pour les applications de communication entre machines utilisant l’autorisation d’identifiants client dans lesquelles aucun utilisateur final n’est impliqué, la demande sub est un identifiant unique pour l’application.
Oui Oui
  • Identifiant utilisateur :auth0|6553da60a54af58e29493993
  • ID client avec le suffixe : awZfdIir8YFdGZWkvCejDoUb7SjTDicx@clients
aud La demande audience définit le destinataire prévu pour le jeton d’accès. Oui Oui "https://test-server/api" OU [ "https://test-server/api", "https://test.local.dev.auth0.com/userinfo" ]
client_id L’ID client pour l’application qui fait la requête du jeton d’accès. Oui Non Identifiant client : K1AUPhZq8mRi0Q0pjhkfu1D7y6KjDQja
azp ID client qui fait la requête du jeton d’accès. Non Oui ID client : K1AUPhZq8mRi0Q0pjhkfu1D7y6KjDQja
exp Durée de l’expiration à partir de laquelle le jeton d’accès ne doit pas être accepté pour traitement. Oui Oui Horodatage epoch en millisecondes : 1516238022
iat Horodatage indiquant le moment auquel le jeton a été émis. Oui Oui Horodatage epoch en secondes : 1516239022
scope Permission(s) du jeton d’accès émis. Pour en savoir plus, consultez Permissions. Oui Oui "openid profile offline_access"
jti Identifiant unique pour le jeton d’accès. Oui Non Identifiant à chaîne unique : aBv9njtYfwL4xfPZyEwz9m
gty Type d’autorisation que l’application a utilisé pour demander le jeton d’accès. Présent seulement pour les types de d’autorisation password (mot de passe) et refresh_token (jeton d’actualisation). Non Selon le cas Type d’autorisation : password
permissions Autorisations disponibles pour un utilisateur ou une application selon son rôle. Inclus seulement lorsque les paramètres Enable RBAC and Add permissions in the Access Token sont activés pour l’API. Pour en savoir plus, consultez Activer le contrôle d'accès basé sur les rôles (RBAC) pour les API. Spécifique au cas Selon le cas [ "create:bar", "create:foo", "read:bar", "read:foo" ]
org_id Identifiant d’Organization. Ajouté lorsqu’un utilisateur s’est authentifié via une Organization et que le paramètre Organization Names in Authentication API__ (Noms d’Organization dans Authentication API) est activé. Pour en apprendre davantage, lisez Travailler avec des jetons et Organizations. Selon le cas Selon le cas Identifiant de l’Organization : org_9ybsU1dN2dKfDkBi
org_name Nom de l’ Organization. Ajouté lorsqu’un utilisateur s’est authentifié via une Organization et que le paramètre Organization Names in Authentication API (Noms d’Organization dans Authentication API) est activé. Pour en savoir plus, consultez Utiliser les noms d’Organization dans Authentication API. Selon le cas Selon le cas Nom d’Organization: my_organization
authorization_details Détails d’autorisation utilisés dans les demandes d’autorisation riches (Rich Authorization Requests, RAR). Pour en savoir plus, consultez Flux de code d’autorisation avec RAR. Selon le cas Selon le cas { "type": "money_transfer", "instructedAmount": {"amount": 2500, "currency": "USD"}, "destinationAccount": "xxxxxxxxxxx9876", "beneficiary": "Hanna Herwitz", }
cnf Demande de confirmation prise en charge par la Liaison de jeton mTLS. Selon le cas Selon le cas {"x5t#S256":"A4DtL2JmUMhAsvJj5tKyn64SqzmuXbMrJa0n761y5v0"}
Demandes personnalisées Vous pouvez ajouter des demandes personnalisées aux jetons d'accès via Actions. Pour en savoir plus, consultez Créer des demandes personnalisées. Selon le cas Selon le cas "favorite_color": “blue”