Passer au contenu principal
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 locataires créés à compter du 16 octobre 2023. Les locataires 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 riches, à 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 d’extensibilité. Pour en savoir plus sur ce qu’offrent Actions, consultez Understand How Auth0 Actions Work.Pour vous aider dans votre migration, nous proposons des guides qui vous aideront à migrate from Rules to Actions et à migrate from Hooks to Actions. Nous avons également 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 parcours de 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.
Comme nous prévoyons supprimer les fonctions Rules et Hooks en 2026, vous ne devriez créer de nouveaux Rules ou Hooks que dans votre environnement de développement, et uniquement pour tester la migration vers Actions.Pour savoir comment migrer vos Rules vers Actions, consultez Migrate from Rules to Actions. Pour savoir comment migrer vos Hooks vers Actions, consultez Migrate from Hooks to Actions.
Vous pouvez modifier les scopes et ajouter des claims personnalisés dans les jetons émis au moyen du flux d’identification du client en ajoutant des Hooks. Les Hooks vous permettent de personnaliser le comportement d’Auth0 à l’aide de code Node.js. Ce sont des fonctions sécurisées et autonomes associées à des points d’extensibilité précis de la plateforme Auth0 (comme le flux d’identification du client). Auth0 appelle les Hooks dans l’environnement d’exécution pour exécuter votre logique personnalisée. Vous pouvez gérer les Hooks à l’aide du ou de la .
Bien que vous puissiez créer plusieurs hooks pour un point d’extensibilité donné, chaque point d’extensibilité ne peut avoir qu’un seul hook activé à la fois. Tous les hooks que vous créez ensuite pour ce point d’extensibilité sont automatiquement désactivés; vous devez donc les activer explicitement. Le hook activé sera exécuté pour toutes les applications et API.

Prérequis

Avant de commencer ce tutoriel, vous devez :

Étapes

  1. Créer un Hook : Créez un Hook pour personnaliser votre jeton.
  2. Tester le Hook : Testez votre nouveau Hook en exécutant un flux d’identification du client et en décodant le jeton d’accès.

Créer un Hook

Dans cet exemple, vous allez :
  • ajouter un claim arbitraire (https://foo.com/claim) au Jeton d’accès
  • ajouter une autorisation supplémentaire à l’API que vous avez configurée
Créez un Hook pour personnaliser votre jeton. Lorsque vous serez invité à choisir un point d’extensibilité, sélectionnez Client Credentials Exchange, puis ajoutez le code suivant dans l’éditeur :
module.exports = function(client, scope, audience, context, cb) {
  var access_token = {};
  access_token['https://foo.com/claim'] = 'bar';
  access_token.scope = scope;
  access_token.scope.push('extra');
  cb(null, access_token);
};
Auth0 renvoie les informations de profil sous la forme de revendications structurées, comme le définit la spécification OpenID Connect (OIDC). Cela signifie que les claims personnalisés ajoutés aux ID tokens ou aux jetons d’accès doivent respecter les directives et restrictions afin d’éviter d’éventuelles collisions.

Testez votre Hook

Pour tester le Hook que vous venez de créer, vous devez effectuer un Client Credentials Exchange, obtenir le , le décoder et en examiner le contenu.

Obtenir un jeton

Pour obtenir un jeton, envoyez une requête POST au point de terminaison du flux d’identification du client. Assurez-vous de remplacer les valeurs d’espace réservé CLIENT_ID, CLIENT_SECRET et API_IDENTIFIER par l’ de votre application, le de votre application et l’identifiant de votre API, respectivement. Vous trouverez l’ID client et le Secret client dans les paramètres de votre application, et l’identifiant de l’API dans les paramètres de votre API. Une réponse réussie comprendra :
  • un access_token,
  • sa durée de validité en secondes (expires_in),
  • le type de jeton défini à Bearer (token_type), et
  • une permission extra (scope) (ajoutée par votre Hook)
HTTP/1.1 200 OK
Content-Type: application/json
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik5ESTFNa05DTVRGQlJrVTRORVF6UXpFMk1qZEVNVVEzT1VORk5ESTVSVU5GUXpnM1FrRTFNdyJ9.eyJpc3MiOiJodHRwczovL2RlbW8tYWNjb3VudC5hdXRoMC3jb20vIiwic3ViIjoic0FRSlFpQmYxREw0c2lqSVZCb2pFRUZvcmRoa0o4WUNAY2xpZW50cyIsImF1ZCI6ImRlbW8tYWNjb3VudC5hcGkiLCJleHAiOjE0ODc3NjU8NjYsImlhdCI6MTQ4NzY3OTI2Niwic2NvcGUiOiJyZWFkOmRhdGEgZXh0cmEiLCJodHRwczovL2Zvby5jb20vY2xhaW0iOiKoPXIifQ.da-48mHY_7esfLZpvHWWL8sIH1j_2mUYAB49c-B472lCdsNFvpaLoq6OKQyhnqk9_aW_Xhfkusos3FECTrLFvf-qwQK70QtwbkbVye_IuPSTAYdQ2T-XTzGDm9Nmmy5Iwl9rNYLxVs2OoCdfpVMyda0OaI0AfHBgEdKWluTP67OOnV_dF3KpuwtK3dPKWTCo2j9VCa7X1I4h0CNuM79DHhY2wO7sL8WBej7BSNA3N2TUsp_YTWWfrvsr_vVhJf-32G7w_12ms_PNFUwj2C30ZZIPWc-uEkDztyMLdI-lu9q9TLrLdr0dOhfrtfkdeJx4pUSiHdJHf42kg7UAVK6JcA",
  "expires_in": 86400,
  "scope": "extra",
  "token_type": "Bearer"
}

Décoder le jeton

Le plus simple pour décoder le jeton d’accès et en examiner le contenu est d’utiliser le débogueur JWT.io. Copiez votre jeton d’accès et collez-le dans l’éditeur. Le est décodé automatiquement et son contenu s’affiche. Notez que les deux derniers éléments du payload ont été définis par votre hook :
  • "scope": "extra"
  • "https://foo.com/claim": "bar"

En savoir plus