Avant de commencer
Vous devez créer une nouvelle application dans l’Auth0 Dashboard ou convertir une application existante avant de continuer. Pour en savoir plus, lisez Configurer l’authentification par clé privée JWT.
private_key_jwt
:
- Construire l’assertion client. Cette assertion est un jeton Web JSON signé par la clé privée lorsque vous avez généré la paire de clés. Pour savoir comment générer une paire de clés, lisez Configurer l’authentification par clé privée JWT.
- Utiliser l’assertion pour vous authentifier auprès d’Auth0.
Construire l’assertion
Vous pouvez utiliser l’une des trousses SDK Auth0 pour qu’elle crée une assertion automatiquement pour vous. Si vous n’utilisez pas nos trousses SDK, vous devrez créer l’assertion vous-même. L’assertion est un jeton Web JSON () qui doit contenir les propriétés et les demandes suivantes :Toutes les demandes sont requises sauf si mentionné autrement. Pour en savoir plus sur les demandes JWT, consultez Demandes de jetons Web JSON.
-
En-tête
alg
: L’algorithme utilisé pour signer l’assertion. L’algorithme doit correspondre à l’algorithme spécifié lors de la création de l’identifiant de l’application.kid
: (facultatif) Lekid
de l’identifiant généré par Auth0. Lekid
est créé lors de la création de l’identifiant.
-
Charge utile
-
iss
: L’ID client de votre application. Vous trouverez cette valeur dans les paramètres de votre application sous Auth0 Dashboard > Applications > Applications, onglet Settings (Paramètres). -
sub
: L’ID client de votre application. Vous pouvez également trouver cette valeur dans les paramètres de votre application. Vous trouverez cette valeur dans les paramètres de votre application sous Auth0 Dashboard > Applications > Applications, onglet Settings (Paramètres). -
aud
: L’URL du locataire Auth0 ou du domaine personnalisé qui reçoit l’assertion. Par exemple :https://{yourTenant}.auth0.com/
. Inclure la barre oblique finale.Si vous avez configuré un domaine personnalisé pour votre locataire Auth0, il peut être utilisé en tant que demandeaud
. Nous recommandons dans ce cas d’utiliser le domaine personnalisé. -
iat
(facultatif) etexp
: Les affirmations « Issued At » (Émis le) et « Expiration » (expiré) sont définies sur les horodatages corrects. L’assertion client est un jeton à usage unique, et nous recommandons le délai d’expiration le plus court possible. Auth0 prend en charge un maximum de 5 minutes pour la durée de vie d’un jeton. -
jti
: Un identifiant de demande unique créé par le client. Nous recommandons d’utiliser le format UUID (Identifiant universellement unique).Ce JWT est un jeton à usage unique et doit être considéré comme tel car son délai d’expiration est court. Nous vous conseillons de configurer une durée maximale de 1 minute.
-
Exemple
Dans l’exemple ci-dessous, le script Node.js utilise un jose package pour générer l’assertion :
Échanger une assertion contre des jetons d’accès
L’exemple suivant utilise le Flux Identifiants clients. L’authentification par clé privée JWT peut être utilisée pour les autres types d’autorisation qui autorisent également le remplacement de
client_secret
par client_assertion
.$client_assertion
: Affirmation JWT$resource_server_identifier
: identifiant du serveur de ressources. Pour en savoir plus, lisez Enregistrer des API.
Points de terminaison pris en charge
Outre le point de terminaison https://$tenant/oauth/token, les points de terminaison suivants de l’Authentication API Auth0 prennent en charge l’authentificationprivate_key_jwt
pour les applications configurées :
Limites des assertions
La longueur maximale de l’assertion JWT est de 2048 octets. Les demandes contenues dans l’assertion sont soumises aux limites suivantes :iss
: 64 caractèressub
: 64 caractèresjti
: 64 caractèresalg
: 16 caractères