Évitez les exécutions inutiles
clientID précis ou des valeurs précises de clientMetadata — en particulier si vous vérifiez une seule valeur de clientMetadata commune à plusieurs applications. L’utilisation de clientMetadata peut aussi faciliter l’ajout de nouvelles applications (ainsi que la lecture du code de la Rule), surtout si vous avez un grand nombre d’applications définies, en réduisant les modifications de code ou les valeurs de configuration requises d’un environnement à l’autre.
Les métadonnées d’une application peuvent être définies manuellement dans le en accédant à Application Settings > Advanced Settings > Application Metadata ou de façon programmatique à l’aide de la d’Auth0 et de son point de terminaison Update a client endpoint.
Terminez dès que possible
return (JavaScript) pour quitter la fonction (Rule).
Réduire au minimum les requêtes aux API
global peut être utilisé pour mettre en cache les informations provenant d’appels aux API, qui pourront ensuite être réutilisées dans toutes les Rules exécutées dans le pipeline. Il est préférable de l’utiliser pour stocker ces informations plutôt que d’appeler une API de façon répétée. De plus, l’objet global peut aussi servir à mettre en cache d’autres informations entre l’exécution des Rules.
Limiter les appels aux services payants
- Désactivez les inscriptions publiques afin de réduire le nombre d’utilisateurs pouvant s’inscrire et déclencher des appels à des services payants
- Assurez-vous qu’une Rule ne se déclenche que pour un sous-ensemble autorisé d’utilisateurs ou dans d’autres conditions appropriées. Par exemple, vous pouvez ajouter une logique qui vérifie si le courriel d’un utilisateur appartient à un domaine particulier, ou si l’utilisateur a un rôle/groupe ou un niveau d’abonnement précis, avant de déclencher l’appel au service payant.
Limitez les appels à la Management API
auth0 (veillez donc à l’utiliser avec parcimonie). Pour en savoir plus, consultez les limites de débit des points de terminaison de la Management API.
De plus, les fonctions de la Management API prennent plus ou moins de temps à s’exécuter et entraînent donc des niveaux de latence variables; par exemple, les appels au point de terminaison Lister ou rechercher des utilisateurs de la Management API doivent être réduits au minimum et effectués uniquement lorsque cela est absolument nécessaire, même lorsqu’ils sont exécutés au moyen de l’objet auth0.
Nous avons élargi les propriétés liées aux connexions disponibles dans l’objet context des Rules, afin que vous puissiez obtenir les renseignements sur la connexion à partir de l’objet context sans avoir à appeler le Management API d’Auth0. Pour en savoir plus, consultez les propriétés de l’objet Context dans les Rules.
Pour voir cela en pratique, si vous utilisez le modèle de Rule Check if user email domain matches configured domain, consultez la plus récente version sur GitHub ou accédez à Auth0 Dashboard > Auth Pipeline > Rules, puis sélectionnez Create. Remarque : les changements récents ne modifieront pas le fonctionnement, mais amélioreront les performances des Rules qui reposaient auparavant sur des appels au Management API.
Supprimer les appels au Management API (ainsi que l’appel supplémentaire requis pour obtenir le Jeton d’accès approprié) rendra votre code de Rule plus performant et plus fiable.
Utilisez des délais d’attente explicites lors des appels d’API
Réduire les appels à Auth0
- Mettez en cache les réponses
/.well-known/*: ces informations changent peu souvent; vous pouvez donc généralement les mettre en cache afin de réduire le nombre d’appels à Auth0. - Envisagez de demander un
id_tokenau lieu d’appeler/userinfopour obtenir des renseignements sur l’utilisateur. - Réduisez les appels groupés, comme la suppression ou le déverrouillage groupés.