Skip to main content
La date de fin de vie (EOL) de Rules et Hooks est fixée au 18 novembre 2026, et ils ne sont plus offerts aux nouveaux tenants créés à compter du 16 octobre 2023. Les tenants existants avec des Hooks actifs conserveront l’accès au produit Hooks jusqu’à sa fin de vie.Nous vous recommandons fortement d’utiliser Actions pour étendre Auth0. Avec Actions, vous avez accès à des informations de type enrichies, à de la documentation intégrée et à des packages npm publics, et vous pouvez connecter des intégrations externes qui améliorent votre expérience globale en matière d’extensibilité. Pour en savoir plus sur ce qu’offre Actions, consultez Understand How Auth0 Actions Work.Pour vous aider dans votre migration, nous proposons des guides pour vous aider à passer de Rules à Actions et à migrer de Hooks à Actions. Nous avons aussi une page dédiée, Move to Actions, qui présente des comparaisons de fonctionnalités, une démo d’Actions et d’autres ressources pour vous accompagner dans votre migration.Pour en savoir plus sur la dépréciation de Rules et Hooks, consultez notre billet de blogue : Preparing for Rules and Hooks End of Life.
Au point d’extensibilité Client Credentials Exchange, Hooks vous permet d’exécuter des actions personnalisées lorsqu’un est émis par l’endpoint 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.
Pour en savoir plus sur les autres points d’extensibilité, consultez Points d’extensibilité.

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.
Veuillez noter :
  • 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 = scope garantit 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.
L’exécution du code avec cet outil nécessite d’enregistrer, ce qui signifie que le code d’origine sera écrasé.
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.
Pour en savoir plus, consultez Scopes.

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é scope de l’objet de réponse
  • Toute propriété dont le nom contient un espace de noms
Le point d’extensibilité ignore toutes les autres propriétés de l’objet de réponse.
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 :
Ensuite, lorsque vous envoyez une demande d’octroi client_credentials au point de terminaison /oauth/token, Auth0 renverra :
Cependant, si vous voulez exercer un contrôle accru sur la réponse d’erreur OAuth2, vous pouvez plutôt utiliser trois objets Error personnalisés.

InvalidScopeError

Ensuite, lorsque vous envoyez une requête d’octroi client_credentials au point de terminaison /oauth/token, Auth0 répond :

InvalidRequestError

Ensuite, lorsque vous demandez un octroi client_credentials au point de terminaison /oauth/token, Auth0 répond :

ServerError

Ensuite, lorsque vous faites une demande d’octroi 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.

En savoir plus