Skip to main content
Rules se ejecutan como parte de una canalización en la que se generan artefactos de autenticidad, como se describe en Prácticas recomendadas sobre la anatomía de bases de datos personalizadas. Por lo tanto, una Rule habilitada se ejecutará en cada operación de inicio de sesión (interactiva o de otro tipo), en cada autenticación silenciosa y cada vez que se genere un relacionado con las credenciales del usuario para una llamada a la API. Esto significa que, incluso en implementaciones a pequeña escala, el rendimiento puede ser motivo de preocupación, y esto solo se agravará a medida que aumente la escala de la implementación.

Evite la ejecución innecesaria

Es preferible implementar la ejecución con lógica condicional. Por ejemplo, para ejecutar una Rule solo para aplicaciones específicas, compruebe un clientID concreto o un clientMetadata específico, especialmente si va a validar un único valor de clientMetadata común a varias aplicaciones. El uso de clientMetadata también puede facilitar la incorporación de nuevos clientes (así como la lectura del código de la Rule), especialmente si tiene un gran número de aplicaciones definidas, ya que reduce los cambios de código o los valores de configuración necesarios entre entornos. Los metadatos de cliente de una aplicación pueden configurarse manualmente desde el , en Application Settings > Advanced Settings > Application Metadata, o de forma programática mediante el endpoint Update a client endpoint de la Auth0 .

Finalice cuanto antes

Para obtener un rendimiento óptimo, escriba Rules que finalicen lo antes posible. Por ejemplo, si una Rule tiene tres comprobaciones para decidir si debe ejecutarse, use la primera para descartar la mayoría de los casos, seguida de la comprobación que descarte el siguiente conjunto más grande de casos, y así sucesivamente. Al final de cada comprobación, recuerde ejecutar la función de callback, idealmente junto con un return de JavaScript para salir de la función (Rule).

Minimice las solicitudes a la API

Las llamadas a las API, especialmente a API de terceros, pueden ralentizar el tiempo de respuesta del inicio de sesión y provocar errores por tiempo de espera en las Rules debido a la latencia de la llamada, lo que en última instancia puede derivar en errores de autenticación. Recomendamos reducir al mínimo las solicitudes a la API siempre que sea posible dentro de una Rule y evitar las llamadas excesivas a servicios de pago. También recomendamos limitar lo que se envía a cualquier API, ya sea de terceros o no, para evitar una posible exposición de seguridad. El objeto global puede usarse para almacenar en caché información de llamadas a API, que posteriormente puede reutilizarse en todas las Rules que se ejecuten en la canalización. Es preferible usarlo para almacenar información en lugar de llamar repetidamente a una API. Además, el objeto global también puede usarse para almacenar en caché otra información entre la ejecución de las Rules.

Limite las llamadas a servicios de pago

Si tiene Rules que llaman a servicios de pago, como el envío de mensajes SMS a través de Twilio, asegúrese de usar esos servicios solo cuando sea necesario. Esto no solo mejora el rendimiento, sino que también ayuda a evitar cargos adicionales. Para ayudar a reducir las llamadas a servicios de pago:
  • Deshabilite los registros públicos para reducir la cantidad de usuarios que pueden registrarse y desencadenar llamadas a servicios de pago
  • Asegúrese de que una Rule solo se active para un subconjunto autorizado de usuarios o en otras condiciones adecuadas. Por ejemplo, puede que quiera agregar lógica para comprobar si un usuario tiene un dominio de correo electrónico, un rol/grupo o un nivel de suscripción determinados antes de activar la llamada al servicio de pago.

Limite las llamadas a la Management API

Intente evitar hacer llamadas a la Auth0 Management API. La Auth0 Management API está sujeta a límites de tasa, y esto seguirá siendo un factor a tener en cuenta incluso cuando use el objeto auth0 (así que asegúrese de usarlo con moderación). Para obtener más información, consulte Management API Endpoint Rate Limits. Además, las funciones de la Management API tardan distintos tiempos en ejecutarse, por lo que pueden introducir distintos niveles de latencia; por ejemplo, las llamadas al endpoint List or Search users endpoint de la Management API deben reducirse al mínimo y realizarse solo cuando sea absolutamente necesario, incluso cuando se ejecuten mediante el objeto auth0. Hemos ampliado las propiedades relacionadas con la conexión disponibles en el objeto context de Rules, por lo que puede obtener la información de la conexión desde el objeto context en lugar de tener que llamar a la Management API de Auth0. Para obtener más información, consulte Propiedades del objeto Context en Rules. Para ver esto en acción, si está utilizando la plantilla de Rule Check if user email domain matches configured domain, consulte la versión más reciente en Github o vaya a Auth0 Dashboard > Auth Pipeline > Rules y seleccione Create. Nota: los cambios recientes no alterarán la funcionalidad, pero mejorarán el rendimiento de las Rules que antes dependían de llamadas a la Management API. Eliminar las llamadas a la Management API (así como la llamada adicional necesaria para obtener el token de acceso adecuado) hará que el código de su Rule tenga un mejor rendimiento y sea más confiable.

Use tiempos de espera explícitos al realizar llamadas a APIs

Al llamar a APIs o acceder a servicios externos, considere especificar tiempos de espera explícitos. El valor concreto del tiempo de espera que elija variará normalmente según su caso de uso, pero, en general, se recomienda elegir uno lo más bajo posible, teniendo en cuenta las características de rendimiento del servicio externo. Tanto si decide usar tiempos de espera explícitos como tiempos de espera implícitos, asegúrese siempre de contemplar las condiciones de error y/o excepción que puedan producirse como resultado de que venza cualquier tiempo de espera. Para obtener más información, lea Prácticas recomendadas para el manejo de errores.

Reduzca las llamadas a Auth0

Cuando supere sus límites de tasa, deberá reducir la cantidad de llamadas que realiza a Auth0. Los detalles dependen de su caso de uso, pero aquí tiene algunas recomendaciones:
  • Almacene en caché las respuestas de /.well-known/*: esta información no cambia con frecuencia, por lo que normalmente puede almacenarla en caché para reducir la cantidad de veces que necesita llamar a Auth0.
  • Considere solicitar un id_token en lugar de llamar a /userinfo para obtener información del usuario.
  • Reduzca las llamadas masivas, como la eliminación o el desbloqueo masivos.

Más información