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_proxy
- 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.
- 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`).
- 3. Configuración recomendada en JMeter
En el Thread Group, agregar los siguientes Listeners:
- 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:
```bash
/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.
En esta prueba se utilizó un archivo con 1.500 usuarios de prueba.