Perf2025

  1. Informe de Prueba de Carga – Sistema de Autenticación Shibboleth IdP

Fecha de la prueba: 30/10/2025
Ambiente de IdP de test


  1. 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.


  1. 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

  1. 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)

  1. 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 %

  1. 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.

  1. 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. 1. Obtención del script

Descargar el script oficial desde:
[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)

  1. 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`).

  1. 3. Configuración recomendada en JMeter

En el Thread Group, agregar los siguientes Listeners:

  • View Results Tree
  • Summary Report
  1. 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.

  1. 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
```

  1. 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.