« Anterior - 
    Versión 11/15
    (diff) - 
    Siguiente » - 
    Versión actual
    
    Emilio Penna, Lunes, 3 de Noviembre de 2025 12:01:45 -0300 
    
    
Perf2025¶
Informe de Prueba de Carga – Sistema de Autenticación Shibboleth IdP¶
Fecha de la prueba: 30/10/2025
Ambiente de IdP de test
1. Objetivo
Evaluar el rendimiento del servicio de autenticación Shibboleth Identity Provider (IdP) ante múltiples solicitudes concurrentes, midiendo la cantidad de inicios de sesión procesados, la latencia promedio y el throughput alcanzado.
2. Entorno de Prueba
Infraestructura:
- Servidor IdP: (vmware) 4 vCPU, 4 GB RAM, Debian 11, Tomcat 9, Java 11 (amazon corretto)
 - Base de datos / Repositorio de identidad: openldap
 - Balanceador / Proxy frontal: Apache HTTPD con mod_jk
 - Versión del IdP: Shibboleth IdP 4.3.3
 
3. Metodología
La prueba se realizó utilizando Apache JMeter 5.6.3, con el script público proporcionado por el proyecto Shibboleth:
[https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2](https://shibboleth.atlassian.net/wiki/download/attachments/2494726900/shibboleth-unsolicited-sso-test.jmx?version=2&modificationDate=1435769963124&cacheVersion=1&api=v2)
Dicho script está disponible en la página oficial del proyecto:
[https://shibboleth.atlassian.net/wiki/spaces/IDP30/pages/2494726900/Load+Testing+Contributed+Results](https://shibboleth.atlassian.net/wiki/spaces/IDP30/pages/2494726900/Load+Testing+Contributed+Results)
Parámetros de la prueba:
- Herramienta: Apache JMeter
 - Duración: 5 minutos
 - Usuarios concurrentes (threads): 50
 - Escenario: autenticaciones repetidas utilizando el flujo SSO no solicitado
 - Archivo de usuarios: 1.500 usuarios de prueba (CSV con usuario/contraseña)
 
4. Resultados
| Métrica | Valor | 
| Autenticaciones totales (5 min) | 49995 | 
| Promedio de autenticaciones por segundo | 166 | 
| Latencia promedio | 284 ms | 
| Throughput promedio | 166 req/s | 
| Errores o timeouts | 0 | 
| CPU promedio | load average = 8 | 
| RAM utilizada | 3.6G | 
5. Conclusiones
- El sistema Shibboleth IdP procesó satisfactoriamente 50.000 autenticaciones en 5 minutos bajo las condiciones de prueba.
 - No se observaron errores significativos, y la latencia promedio se mantuvo dentro de valores aceptables para un entorno de autenticación.
 - Los resultados reflejan el rendimiento en un entorno controlado, con un solo nodo y parámetros de carga definidos.
 - Se recomienda repetir la prueba con distintas cantidades de threads o escenarios para obtener una curva de capacidad más completa.
 
Adjuntamos el resumen "Summary Report" de la prueba.
Anexo – Reproducción de la prueba con JMeter
A continuación, se detallan los pasos y ajustes necesarios para reproducir la prueba de carga utilizando el script público del proyecto Shibboleth.
1. Obtención del script
2. Corrección en la assertion
El script requiere una modificación para funcionar correctamente con versiones recientes del IdP.
En la assertion "POST Login Credentials", reemplazar la expresión:
Set-Cookie: shib_idp_session=[0-9a-f]+;Path=/idp;HttpOnly por: Set-Cookie: shib_idp_session=[0-9a-f]+; Path=/idp;
Es decir, eliminar `HttpOnly` y agregar un espacio antes de `Path`. Se puede observar ese elemento en la siguiente imagen:
3. Configuración recomendada en JMeter
En el Thread Group "Shibboleth Unsolicited SSO Test", agregar los siguientes Listeners (se ven en la imagen anterior):
- View Results Tree
 - Summary Report
 
4. Prueba inicial
1. Ejecutar inicialmente la prueba con 1 thread para verificar que el flujo funcione correctamente.
2. Revisar en View Results Tree que no existan errores.
3. Una vez validado, deshabilitar ese Listener antes de la prueba completa.
5. Ejecución por línea de comando
Para ejecutar la prueba sin interfaz gráfica:
/opt/jmeter/apache-jmeter-5.6.3/bin/jmeter -n -t shibboleth-unsolicited-sso-test.jmx -l result.jtl
6. Archivo de usuarios
El script requiere un archivo CSV con usuarios y contraseñas para la autenticación. La ruta al archivo con usuarios y contraseñas debe indicarse en el elemento "CSV Get Users/Passwords" 
En esta prueba se utilizó un archivo con 1.500 usuarios de prueba.