- Un risque accru d’interception et de réutilisation, puisque les secrets client doivent être transmis entre les parties pour chaque requête.
- Des mécanismes limités pour imposer une date d’expiration et empêcher la réutilisation par des acteurs malveillants.
- Un risque accru de fuite ou d’exposition, puisque les deux parties détiennent le secret client.
Fonctionnement
/oauth/token ou /oauth/par pour vérifier l’identité d’un client auprès du ou du fournisseur OpenID. Avec Private Key JWT Client Authentication, une assertion JWT client signée est transmise au fournisseur OpenID au lieu d’un secret client.
L’assertion JWT client contient les claims suivants :
- Un
aud() qui identifie l’ du fournisseur OpenID. - Un
jti(ID JWT) pour permettre un usage unique ou une protection contre les attaques par rejeu. - Un
exp(heure d’expiration) qui limite la période de validité du jeton. - Un
subet unissqui identifient le .
Flux d’authentification client Private Key JWT

Pour suivre ce flux, vous devez d’abord configurer une connexion OIDC ou Okta Workforce, nouvelle ou existante, avec
token_endpoint_auth_method=private_key_jwt, soit dans votre Auth0 Dashboard, soit au moyen de la Management API. Pour en savoir plus, consultez la section Configurer l’authentification client Private Key JWT.-
Après avoir configuré votre connexion, Auth0 génère et stocke automatiquement deux paires de clés publiques et privées.
- Une paire de clés correspond à l’ensemble actif
current, tandis que l’autre est libelléenextpour prendre en charge la rotation des clés.
- Une paire de clés correspond à l’ensemble actif
-
Selon votre IdP, vous devez ensuite soit :
- Télécharger la clé publique
currentet téléverser le fichier vers le serveur d’autorisation, ou : - Copier et coller le
jwks_uridans le serveur d’autorisation.
- Télécharger la clé publique
- Un utilisateur effectue une action qui nécessite une authentification, par exemple se connecter à votre application.
- Auth0 envoie une requête au serveur d’autorisation pour lancer l’authentification.
- Le serveur d’autorisation affiche à l’utilisateur les écrans d’authentification et de consentement.
- L’utilisateur s’authentifie et donne son consentement au serveur d’autorisation.
- Le serveur d’autorisation envoie un code d’autorisation à Auth0.
-
Auth0 génère une assertion client JWT et la signe à l’aide de la clé privée
current. - Auth0 transmet l’assertion client JWT au serveur d’autorisation.
-
Le serveur d’autorisation recherche le client à partir du
client_idfourni. -
Le serveur d’autorisation récupère les clés publiques à partir d’Auth0 si un
jwks_uria été fourni; sinon, il repère la clé publique enregistrée à l’étape 2. -
Si le
jwks_uria été demandé, Auth0 renvoie les clés publiques au format JWKS. -
Le serveur d’autorisation valide le JWT en vérifiant la signature à l’aide de la clé publique
current, identifiée parkiddans l’en-tête du JWTclient_assertion. - Le serveur d’autorisation génère un jeton d’accès.
- Le serveur d’autorisation transmet le jeton d’accès à Auth0.
- À l’aide du jeton d’accès, Auth0 demande une ressource au serveur de ressources.
- Le serveur de ressources fournit la ressource pour terminer le flux.
Configurer l’authentification client par Private Key JWT
- Les paires de clés de signature privées et publiques sont générées automatiquement par Auth0 pour chaque connexion.
- Vous pouvez utiliser les algorithmes suivants pour signer les JWT d’assertion client :
RS256,RS384,RS512,PS256,PS384,ES256etES384pour les connexions d’entreprise Okta et OIDC. La valeur par défaut estRS256si elle n’est pas précisée. - Les JWT signés expirent automatiquement après 60 secondes.
Auth0 Dashboard
- Nouvelle connexion
- Connexion existante
- Dans votre Auth0 Dashboard, accédez à Authentication > Enterprise.
- À côté de OpenID Connect ou de Okta Workforce, sélectionnez Create.
- Dans la section General, indiquez les détails de votre nouvelle connexion, y compris son nom et son URL de découverte.
-
Configurez les champs suivants pour activer Private Key JWT :
- Réglez Communication Channel sur Back Channel.
- Réglez Authentication Method sur Private Key JWT.
- Sélectionnez Create pour enregistrer votre nouvelle connexion.
Management API
- Nouvelle connexion
- Connexion existante
Pour créer une nouvelle connexion OIDC qui utilise Private Key JWT Client Authentication, appelez le point de terminaison Create a Connection avec les propriétés
connection.options suivantes définies de façon appropriée :Exemple de requête POST
Récupérer les clés de signature
Auth0 Dashboard
Auth0 Dashboard
Pour récupérer les clés de signature dans l’Auth0 Dashboard :
- Accédez à Authentication > Enterprise.
- À côté de OpenID Connect ou Okta Workforce, sélectionnez Browse.
- Choisissez la connexion appropriée, puis accédez à l’onglet Credentials.
- Repérez la section Credentials et sélectionnez l’icône Download à côté de la clé de signature appropriée.
Management API
Management API
Pour afficher les clés publiques au moyen de la Management API, envoyez une requête au point de terminaison Get connection keys à l’aide de l’ID de votre connexion.Exemple de requête GETExemple de réponse
URI JWKS public
URI JWKS public
Certains fournisseurs d’identité permettent de fournir les clés publiques pour
private_key_jwt sous la forme d’un URI JWKS (JSON Web Key Set) public.Si des clés publiques ont été générées pour une connexion, vous pouvez les récupérer en ajoutant l’URI suivant à la configuration de votre IdP :Rotation des clés de signature
Auth0 Dashboard
Auth0 Dashboard
Pour effectuer la rotation de vos clés de signature dans l’Auth0 Dashboard :
- Accédez à Authentication > Enterprise.
- À côté de OpenID Connect ou de Okta Workforce, sélectionnez Browse.
- Choisissez la connexion appropriée, puis accédez à son onglet Credentials.
- Dans la section Credentials, sélectionnez Rotate Keys.
- Dans la fenêtre contextuelle, sélectionnez Save pour confirmer la rotation.
Management API
Management API
Pour afficher les clés publiques au moyen de la Management API, envoyez une requête au point de terminaison Rotate Connection Signing Keys en utilisant l’ID de votre connexion.Après la rotation, tous les JWT en cours signés avec la clé précédente deviennent immédiatement inactifs et leur vérification auprès de votre IdP peut échouer.
Comprendre la rotation des clés
Dans votre connexion OIDC ou Okta Workforce, vos clés de signature se voient attribuer l’un des statuts suivants :
- Current : la clé de signature actuellement utilisée pour l’application.
- Next : la prochaine clé de signature à utiliser pour l’application une fois la clé actuelle révoquée.
- Previous : une clé de signature expirée ou autrement révoquée qui n’est plus utilisée.
current et next est générée. Une clé n’est marquée comme previous qu’après une rotation.Lors de la rotation des clés de signature, les changements suivants se produisent :- La clé
currentest retirée de l’utilisation et révoquée, et tout JWT signé avec cette clé échouera à la vérification auprès de l’IdP si l’IdP a été configuré avec lejwks_uri. - La clé
currentse voit attribuer le statutprevious. - La clé
nextdevient la clé active et se voit attribuer le statutcurrent. Dorénavant, les client assertion JWT seront signés avec cette clé. - Une nouvelle clé de signature est automatiquement générée pour remplacer la clé ayant fait l’objet d’une rotation. La nouvelle clé de signature a le statut
next.