POST /oauth/token de l’Authentication API à l’aide du Client Credentials Flow. Par exemple, vous pouvez empêcher l’émission du token, ajouter des claims personnalisées au jeton d’accès ou modifier ses scopes. Pour en savoir plus, consultez Client Credentials Flow.
Les Hooks à ce point d’extensibilité sont bloquants (synchrones), ce qui signifie qu’ils s’exécutent dans le cadre du processus du trigger et empêchent le reste du pipeline Auth0 de s’exécuter tant que le Hook n’est pas terminé.
Le
triggerId du point d’extensibilité Client Credentials Exchange est credentials-exchange. Pour savoir comment créer des hooks pour ce point d’extensibilité, consultez Create Hooks.Code de départ et paramètres
Lorsque vous créez un Hook exécuté au point d’extensibilité Client Credentials Exchange, le code de départ ci-dessous peut vous être utile. Les paramètres pouvant être transmis à la fonction Hook et utilisés par celle-ci sont indiqués au début de l’exemple de code.-
La fonction de rappel (
cb) à la fin de l’exemple de code signale la fin du traitement et doit être incluse. -
La ligne
access_token.scope = scopegarantit que tous les scopes accordés seront présents dans le jeton d’accès. Si vous la supprimez, tous les scopes seront réinitialisés, et le jeton ne comprendra que les scopes que vous ajoutez avec le script.
Réponse par défaut
Lorsque vous exécutez un Hook au point d’extensibilité Client Credentials Exchange, l’objet de réponse par défaut est le suivant :Réponse du code de départ
Une fois le code de départ personnalisé avec vos scopes et des claims supplémentaires, vous pouvez tester le Hook à l’aide de l’outil d’exécution intégré à l’éditeur de Hook. Cet outil simule une requête au Hook avec le même corps et la même réponse que ceux obtenus lors d’un Client Credentials Exchange. Lorsque vous exécutez un Hook basé sur le code de départ, l’objet de réponse est :Exemple de script : Ajouter un scope supplémentaire au jeton d’accès
Dans cet exemple, nous utilisons un Hook pour ajouter un scope supplémentaire à ceux déjà présents dans le jeton d’accès.Réponse
Lorsque nous exécutons ce Hook, l’objet de réponse est :Exemple de script : Ajouter un claim au jeton d’accès
Dans cet exemple, nous ajoutons un claim personnalisé avec espace de noms et sa valeur au jeton d’accès. Pour en savoir plus, consultez Create Namespaced Custom Claims. Vous pouvez ajouter les éléments suivants comme claims au jeton émis :- La propriété
scopede l’objet de réponse - Toute propriété dont le nom contient un espace de noms
Pour accéder à un Hook Secret configuré depuis un hook, utilisez
context.webtask.secrets.SECRET_NAME.Réponse
Lorsque nous exécutons ce Hook, l’objet de réponse renvoyé est :Exemple de script : générer une erreur ou rejeter un jeton d’accès
Dans cet exemple, nous utilisons des objets Error personnalisés pour générer des réponses d’erreur OAuth2. (Pour en savoir plus, consultez OAuth2 RFC - Section 5.2 de l’IETF Datatracker.) Si une simple erreur JavaScript est renvoyée dans la fonction de rappel, comme :client_credentials au point de terminaison /oauth/token, Auth0 renverra :
InvalidScopeError
client_credentials au point de terminaison /oauth/token, Auth0 répond :
InvalidRequestError
client_credentials au point de terminaison /oauth/token, Auth0 répond :
ServerError
client_credentials au point de terminaison /oauth/token, Auth0 répond :
À l’heure actuelle, le comportement de la classe JavaScript intégrée
Error et de ServerError est identique, mais la classe ServerError vous permet de préciser explicitement l’erreur OAuth2 qui sera renvoyée.