/oauth/token endpoint, as defined in RFC 8693. Common use cases for the Custom Token Exchange include:
- Getting Auth0 tokens for another
- Integrating with an external
- Migrating to Auth0
- Write custom code to decode and validate
subject_tokenspassed to the/oauth/tokenendpoint - Authorize access and set the user to proceed with the transaction.
Custom Token Exchange gives you the added flexibility to set the user for the transaction by taking on the additional responsibility of securely validating the corresponding subject token that identifies the user for the transaction.Remember that subject tokens used with Custom Token Exchange can be any token format or type you require, as long as your Action code can interpret them. You must implement strong validation of the tokens you receive and accept. If you fail to do so, you open yourself up to different attack vectors, such as spoofing or replay attacks, resulting in bad actors being able to authenticate with someone else’s user ID.To learn about different options for implementing secure validation of your subject tokens, read and apply the recommendations included in Example Use Cases and Code Samples. Make sure you also take into consideration and apply Attack Protection capabilities.
Tenant logs
Each Custom Token Exchange transaction generates a tenant event log:- Successful transactions:
sectelogs - Failed transactions:
fectelogs
Limitations
Custom Token Exchange in Early Access does not support the following:- MFA API methods
api.authentication.challengeWith()andapi.authentication.EnrollWith() - When a Custom Token Exchange transaction is associated with an Organization,
api.multifactor.enable()and MFA policies are not supported - Custom DB Connections with import mode
ONare not supported forsetUserByConnection()operations - Specific delegation support (e.g.
actor_tokenandactorclaim) - Third-party and non-OIDC conformant clients