es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo manejar la autenticación MFA en JMeter.

Estoy probando una aplicación que está configurada con Microsoft AD MFA. Cada vez que inicio sesión en la aplicación con mi ID de usuario y contraseña, recibo una notificación push en mi teléfono móvil desde la aplicación Microsoft Authenticator que dice “Aprobar” o “Denegar” la solicitud.

Aquí necesitamos encontrar soluciones para los siguientes dos problemas:

1) ¿Cómo podemos manejar la notificación push que recibimos en el móvil al iniciar sesión usando JMeter?
2) ¿Cómo realizar la ejecución de la prueba de carga con estos 2MFA habilitados al manejar la notificación push y el vencimiento del token?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Posible solución para el problema 1:

    • Es poco probable que podamos manejar la notificación push directamente dentro de JMeter, ya que esto implicaría interactuar con un dispositivo móvil o un emulador, lo cual está fuera del alcance de las capacidades de JMeter.
    • Sin embargo, aún podemos simular el comportamiento de un usuario que responde a la notificación push en nuestro script de prueba de carga. Una forma de hacer esto es utilizando la función de “Comunicación Inter-Hilo” de JMeter, que permite que diferentes hilos (usuarios virtuales) se comuniquen entre sí. Aquí hay un enfoque posible:
      1. Después de iniciar sesión con el ID de usuario y la contraseña, el script envía una solicitud HTTP al servidor para iniciar el proceso de MFA.
      2. El servidor responde con un identificador único (por ejemplo, un token de sesión) que representa el desafío de MFA pendiente.
      3. El script genera un retraso aleatorio (por ejemplo, de 10 a 30 segundos) para simular el tiempo que tarda en aparecer la notificación push en el dispositivo móvil del usuario.
      4. Dentro del mismo grupo de hilos, el script envía otra solicitud HTTP al servidor para verificar si el usuario ha respondido a la notificación push todavía. Esta solicitud usaría un temporizador para esperar el retraso aleatorio antes de enviar la solicitud.
      5. Si el servidor responde con un estado “pendiente”, el script espera un periodo más corto (por ejemplo, de 2 a 5 segundos) e intenta nuevamente. Puede hacer esto durante un cierto número de intentos antes de rendirse o marcar la prueba como fallida.
      6. Si el servidor responde con un estado “aprobado” o “denegado”, el script procede en consecuencia (por ejemplo, enviando el token o informando un error).
      7. Al final del proceso de MFA, el script puede continuar con el resto de las acciones del usuario o finalizar la sesión.

    Posible solución para el problema 2:

    • Realizar pruebas de carga en una aplicación con MFA puede ser más complejo que sin él, ya que necesitamos manejar los pasos y el tiempo adicionales involucrados en el proceso de MFA.
    • Suponiendo que tenemos un script funcional para el problema 1, podemos adaptarlo para las pruebas de carga agregando las siguientes consideraciones:
      1. Necesitamos configurar JMeter para utilizar múltiples hilos (usuarios virtuales) para simular inicios de sesión concurrentes. El número de hilos debe coincidir con la carga esperada o deseada en el servidor.
      2. Necesitamos utilizar temporizadores apropiados y retrasos aleatorios para evitar sobrecargar el servidor con demasiadas solicitudes de MFA simultáneas, o demasiadas solicitudes en un corto período de tiempo.
      3. Necesitamos simular intentos exitosos y fallidos de MFA, para probar el comportamiento de la aplicación en diferentes escenarios. Esto puede implicar variar el tiempo de retraso, la respuesta de la notificación push y/o el valor del token enviado al servidor.
      4. Necesitamos monitorear el tiempo de vencimiento del token (si lo hay) y ajustar el script para manejar la renovación o actualización del token según sea necesario. Esto puede implicar enviar solicitudes HTTP adicionales o lógica condicional dentro del script.
      5. Necesitamos recopilar y analizar métricas de rendimiento relevantes, como el tiempo de respuesta, la tasa de errores y el rendimiento, y compararlos con nuestros objetivos de rendimiento o puntos de referencia.
    • Además, es posible que necesitemos coordinar con los desarrolladores o administradores de la aplicación para asegurarnos de que la función de MFA esté correctamente configurada y probada en el entorno de prueba, y que se cumplan los requisitos de seguridad o cumplimiento. También podemos necesitar considerar el uso de una herramienta o técnica de gestión de datos de prueba para asegurarnos de que los datos sensibles del usuario (como los números de teléfono móvil o los tokens) no se expongan o reutilicen de manera inapropiada.

Comments are closed.