Passer au contenu principal
L’échange de jetons personnalisé permet aux applications d’échanger leurs jetons existants contre des jetons Auth0 lors d’un appel au point de terminaison /oauth/token, comme défini dans la RFC 8693. Voici quelques cas d’utilisation courants de l’échange de jetons personnalisé :
  • Obtenir des jetons Auth0 pour une autre
  • Intégrer un externe
  • Migrer vers Auth0
  • Autorisation déléguée : un principal (comme un service, un agent d’IA ou un agent de soutien) agit pour le compte d’un utilisateur
Pour en savoir plus, consultez Exemples de cas d’utilisation et échantillons de code. Chaque demande d’échange de jetons personnalisé correspond à un profil d’échange de jetons personnalisé, régi par une Action, qui vous permet de :
  • Écrire du code personnalisé pour décoder et valider les subject_tokens transmis au point de terminaison /oauth/token
  • Autoriser l’accès et définir l’utilisateur qui poursuivra la transaction.
Vous pouvez configurer plusieurs profils d’échange de jetons personnalisé pour une application. Une fois que le serveur d’autorisation Auth0 a validé la demande d’échange de jetons personnalisé et établi qu’elle correspond à un profil d’échange de jetons personnalisé existant, le déclencheur d’échange de jetons personnalisé exécute l’unique Action associée à ce profil. L’application peut ensuite tirer parti de l’échange de jetons personnalisé pour authentifier l’utilisateur et obtenir des jetons d’accès, d’identité et d’actualisation Auth0 pour celui-ci.
L’échange de jetons personnalisé vous offre plus de souplesse pour définir l’utilisateur associé à la transaction, en contrepartie de la responsabilité supplémentaire de valider de façon sécuritaire le jeton de sujet correspondant qui identifie cet utilisateur.Gardez à l’esprit que les jetons de sujet et d’acteur utilisés avec l’échange de jetons personnalisé peuvent avoir n’importe quel format ou type de jeton, pourvu que votre code Action puisse les interpréter. Vous devez mettre en œuvre une validation rigoureuse des jetons que vous recevez et acceptez. Sinon, vous vous exposez à différents vecteurs d’attaque, comme l’usurpation ou les attaques par rejeu, ce qui pourrait permettre à des acteurs malveillants de s’authentifier avec l’ID utilisateur d’une autre personne ou d’agir en son nom sans autorisation.Pour en savoir plus sur les différentes options de validation sécuritaire de vos jetons de sujet, consultez et appliquez les recommandations incluses dans Exemples de cas d’utilisation et échantillons de code. Veillez aussi à tenir compte des fonctionnalités de protection contre les attaques et à les appliquer.

Journaux du locataire

Chaque transaction échange de jetons personnalisé génère un événement dans les journaux du locataire :
  • Transactions réussies : journaux secte
  • Transactions échouées : journaux fecte
Lorsqu’un acteur est défini à l’aide de setActor(), la propriété actor (contenant sub et tout actor imbriqué) est incluse dans les entrées de journal secte à des fins d’audit. Utilisez les journaux du locataire pour vous aider à résoudre les problèmes rencontrés lors de votre échange de jetons.

Limites

L’échange de jetons personnalisé ne prend pas en charge les éléments suivants :
  • Les méthodes de l’API MFA api.authentication.challengeWith() et api.authentication.EnrollWith()
  • Les connexions de base de données personnalisées avec le mode d’importation ON ne sont pas prises en charge pour les opérations setUserByConnection()
  • Les applications tierces non conformes à OIDC
  • L’API cible doit avoir l’option Allow Skipping User Consent activée, puisque le consentement ne peut pas être recueilli dans un flux non interactif.