Passer au contenu principal
Le déclencheur Machine to Machine s’exécute lorsqu’un est émis au moyen du flux d’identifiants de l’application.
Schéma montrant le flux Machine to Machine des Actions et à quel moment ses déclencheurs s’exécutent.
Les Actions de ce flux sont bloquantes (synchrones), ce qui signifie qu’elles s’exécutent dans le cadre du processus d’un déclencheur et empêchent le reste du pipeline Auth0 de s’exécuter tant que l’Action n’est pas terminée.

Déclencheurs

M2M / Client Credentials

Le déclencheur credentials-exchange est une fonction exécutée avant le renvoi du jeton d’accès.

Références

  • Objet d’événement : Fournit des renseignements contextuels sur la demande d’échange des identifiants de l’application.
  • Objet API : Fournit des méthodes permettant de modifier le comportement du flux.

Cas d’utilisation courants

Contrôle d’accès

Une Action d’échange d’identifiants peut servir à refuser l’émission d’un jeton d’accès selon une logique personnalisée.
/**
 * @param {Event} event - Détails sur la demande d'octroi de l’identifiant de l’application.
 * @param {CredentialsExchangeAPI} api - Interface dont les méthodes peuvent être utilisées pour modifier le comportement de l'octroi de l’identifiant de l’application.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  if (event.request.geoip.continentCode === "NA") {
    api.access.deny('invalid_request', "Access from North America is not allowed.");
  }
};

Ajouter des revendications personnalisées au jeton d’accès

Une Action d’échange d’identifiants peut servir à ajouter des revendications personnalisées à un jeton d’accès.
/**
 * @param {Event} event - Détails sur la demande d'octroi des identifiants d'application.
 * @param {CredentialsExchangeAPI} api - Interface dont les méthodes peuvent être utilisées pour modifier le comportement de l'octroi des identifiants d'application.
 */
exports.onExecuteCredentialsExchange = async (event, api) => {
  api.accessToken.setCustomClaim("https://my-api.exampleco.com/request-ip", event.request.ip);  
};
Nous recommandons vivement d’utiliser une revendication personnalisée avec espace de noms sous forme d’URI. Pour en savoir plus sur les revendications personnalisées avec et sans espace de noms, consultez Créer des revendications personnalisées.