Avant de commencer
Vous devez créer une nouvelle application dans Auth0 Dashboard ou convertir une application existante avant de continuer. Pour en savoir plus, consultez Configurer l’authentification Private Key JWT.
private_key_jwt:
- Créez l’assertion du client. Cette assertion est un JWT signé à l’aide de la clé privée générée avec la paire de clés. Pour savoir comment générer une paire de clés, consultez Configurer l’authentification Private Key JWT.
- Utilisez l’assertion pour vous authentifier auprès d’Auth0.
Créer l’assertion
Vous pouvez utiliser l’un des SDKs d’Auth0 pour créer automatiquement une assertion. Si vous n’utilisez pas nos SDKs, vous devrez construire l’assertion vous-même. L’assertion est un (JWT) qui doit contenir les propriétés et claims suivants :Tous les claims sont obligatoires, sauf indication contraire. Pour en savoir plus sur les claims JWT, consultez JSON Web Token Claims.
-
En-tête
alg: l’algorithme utilisé pour signer l’assertion. Il doit correspondre à celui indiqué lorsque vous avez créé le credential de votre application.kid: (facultatif) lekidgénéré par Auth0 pour le credential. Lekidest créé au moment de la création du credential.
-
Payload
-
iss: le Client ID de votre application. Vous trouverez cette valeur dans les paramètres de votre application, sous Auth0 Dashboard > Applications > Applications, puis dans l’onglet Settings. -
sub: le Client ID de votre application. Vous trouverez également cette valeur dans les paramètres de votre application, sous Auth0 Dashboard > Applications > Applications, puis dans l’onglet Settings. -
aud: l’URL du tenant Auth0 ou du domaine personnalisé qui reçoit l’assertion. Par exemple :https://{yourTenant}.auth0.com/. Incluez la barre oblique finale.Si vous avez configuré un domaine personnalisé pour votre tenant Auth0, vous pouvez l’utiliser comme claimaud. Dans ce cas, nous vous recommandons d’utiliser le domaine personnalisé. -
iat(facultatif),nbf(facultatif) etexp: les claims Issued At, Not Before et Expiration, définis avec les horodatages appropriés. Un décalage d’horloge maximal de 10 secondes est permis pouriatetnbf(s’ils sont présents) afin d’assurer l’interopérabilité. L’assertion du client est un jeton à usage unique, et nous recommandons la durée d’expiration la plus courte possible. Auth0 prend en charge une durée de vie maximale de 5 minutes pour un jeton. -
jti: un ID de claim unique créé par le client. Nous recommandons d’utiliser le format Universally Unique Identifier (UUID).
-
Exemple
Dans l’exemple ci-dessous, le script Node.js utilise le package jose pour générer l’assertion :
Échanger une assertion contre des jetons d’accès
L’exemple suivant utilise le Client Credential Flow. L’authentification Private Key JWT peut aussi être utilisée avec d’autres types d’octroi qui permettent de remplacer
client_secret par client_assertion.$client_assertion: assertion JWT$resource_server_identifier: identifiant du . Pour en savoir plus, consultez Enregistrer des API.
Points de terminaison pris en charge
En plus du point de terminaison https://$tenant/oauth/token, les points de terminaison suivants de l’API d’authentification Auth0 prennent en charge l’authentificationprivate_key_jwt pour les applications configurées :
Limites de l’assertion
La longueur maximale de l’assertion JWT est de 2 048 octets. Les claims contenus dans l’assertion sont soumis aux limites suivantes :iss: 64 caractèressub: 64 caractèresjti: 64 caractèresalg: 16 caractères