Configuración SAML SSO en FortiGate: integración IdP y proveedores de servicio

La configuración presentada corresponde a la función de autenticación Single Sign-On (SSO) basada en SAML (Security Assertion Markup Language) en dispositivos FortiGate. Esta configuración permite que FortiGate actúe como un Identity Provider (IdP) para autenticar usuarios de forma centralizada y transparentemente ante múltiples Service Providers (SP), simplificando la gestión de identidades y mejorando la experiencia de usuario en redes corporativas o entornos con múltiples aplicaciones web seguras.

Campos principales

  • Mode: Define el modo de operación SAML. Las opciones comunes son Disable para desactivar SAML, Identity Provider (IdP) para que FortiGate gestione la autenticación, y Service Provider (SP) cuando FortiGate consume la autenticación de un proveedor externo.
  • IdP address: Dirección IP o URL con puerto del servidor IdP que emite las respuestas SAML. Es crucial usar la dirección correcta para que las solicitudes y respuestas se intercambien con éxito.
  • Use Current Browser Address: Al habilitar, permite que FortiGate detecte y utilice la URL desde la que accede el navegador cliente en lugar de una dirección fija, facilitando algunas configuraciones dinámicas o con balanceadores de carga.
  • IdP certificate: Certificado digital utilizado para validar la identidad de IdP y firmar las aserciones SAML. Se pueden usar certificados propios o los predeterminados de fábrica (como «Fortinet_Factory»), aunque para producción se recomienda un certificado propio para seguridad y confianza.
  • Service Providers: Tabla donde se definen los SP que confían en el IdP de FortiGate. Cada entrada incluye:
    • Name: Identificador del SP, generalmente hostname y puerto.
    • Prefix: Un prefijo único generado para distinguir las sesiones y solicitudes SAML relacionadas a ese SP.
    • FortiGate: Referencia al dispositivo FortiGate donde se aplica esta configuración.

Compatibilidad de versiones y modelos

La funcionalidad SAML SSO como IdP está disponible en la mayoría de los FortiGate desde FortiOS 7.4.x,7.6.x en adelante, extendiéndose a versiones más recientes como 7.4.x,7.6.x, 7.0 y 7.2 con mejoras en la interfaz y soporte de nuevas opciones de seguridad en los certificados y metadatos SAML.

Modelos de gama media y alta suelen soportar sin inconvenientes esta opción gracias a su capacidad de procesamiento suficiente para manejar el cifrado y descifrado asociado a SAML. Los modelos de rama o dispositivos con recursos limitados también pueden implementar la función, aunque con restricciones en el número de SP soportados simultáneamente y en el rendimiento bajo cargas elevadas.

Limitaciones comunes incluyen cambios en los nombres de parámetros o formatos de certificados entre versiones mayores, y algunos modelos más antiguos no soportan integraciones avanzadas de metadatos o certificados personalizados, limitando el despliegue en entornos exigentes. Además, la interfaz y opciones de configuración varían levemente según la versión, siendo recomendable consultar la documentación de Fortinet correspondiente al firmware en uso.

Escenarios de uso y recomendaciones

Un caso típico para esta configuración es en entornos corporativos donde FortiGate centraliza la autenticación SAML para aplicaciones web internas o externas (como portales de clientes o servicios SaaS), evitando que el usuario necesite reingresar credenciales múltiples veces. Esto mejora la seguridad y la experiencia de usuario.

Otro escenario frecuente es la integración de FortiGate como IdP para soluciones cloud que requieren autenticación federada, usando FortiGate como punto único de control de acceso y autenticación.

Una configuración errónea, como establecer una dirección IdP incorrecta o utilizar un certificado inválido, puede derivar en fallos en la autenticación, pérdida de acceso para usuarios legítimos y errores complejos de depurar. Por eso, Fortinet recomienda verificar la sincronización del reloj (NTP), usar certificados válidos y configurar cuidadosamente los metadatos de SP para garantizar confianza mutua.

Comandos de CLI útiles para diagnóstico

  • diagnose debug enable y diagnose debug application saml -1: Permiten habilitar la depuración específica de entidades SAML para detectar errores en el intercambio de autenticaciones.
  • get system performance top: Evalúa la carga de CPU y memoria para comprobar si el FortiGate maneja adecuadamente la carga asociada con SAML.
  • show user saml: Visualiza la configuración actual del servicio SAML, incluyendo modo, direcciones y certificados.
  • exec log filter category 9 seguido de execute log display: Permite revisar logs asociados con autenticaciones y eventos SAML para identificar problemas.

Buenas prácticas de configuración

  • Usar certificados propios emitidos por una entidad certificadora confiable en producción, evitando certificados de fábrica.
  • Sincronizar los relojes de FortiGate e IdP con NTP para evitar problemas en la validación de tokens SAML.
  • Definir correctamente los metadatos y prefijos únicos para cada Service Provider para evitar interferencias o colisiones en las sesiones.
  • Monitorear continuamente los logs y establecer alertas para detectar fallos o intentos de acceso no autorizados.
  • Probar primero en entornos de desarrollo o pruebas antes de aplicar cambios en producción, para validar integración con aplicaciones y portales.
  • Evitar la multipresión innecesaria del modo SAML; seleccionar siempre solo el modo necesario (IdP o SP) para reducir riesgos y complejidad.