GitHub ha sido pionero en ofrecer servicios de autenticación empresarial con SAML desde 2014, permitiendo a las empresas integrar sus sistemas de identidad con herramientas de desarrollo. A través del inicio de sesión único (SSO) y políticas de acceso condicional, las organizaciones han gestionado con eficacia sus operaciones utilizando las soluciones de GitHub.
Desde la implementación inicial de esta funcionalidad, el equipo de GitHub se enfrentó al reto de desarrollar un soporte sólido para la especificación SAML 2.0. Este protocolo esencial define cómo se establece la confianza entre los proveedores de identidad y GitHub, incluyendo la gestión de metadatos SAML, solicitudes de autenticación y procesamiento de respuestas para autenticar usuarios.
El desafío principal radica en la seguridad. Los errores en la autenticación pueden llevar a brechas de seguridad, como la suplantación de usuarios, al tiempo que la complejidad técnica, como el análisis de XML y criptografía, aumenta la superficie de ataque. Esta combinación de factores hace que la implementación de SAML sea particularmente arriesgada.
A lo largo de los años, GitHub ha trabajado para fortalecer estos procesos. Han colaborado con expertos en seguridad y han abordado vulnerabilidades a través de su programa de recompensas por errores. No obstante, la complejidad inherente de SAML seguía planteando inquietudes.
El año pasado, GitHub emprendió la tarea de mejorar la confianza en SAML. Evaluaron distintas bibliotecas y eligieron ruby-saml por su comunidad activa y sus ventajas de mantenimiento. Implementaron pruebas A/B para evaluar el impacto de la nueva biblioteca, garantizando la estabilidad mientras probaban el nuevo enfoque.
Adicionalmente, realizaron esfuerzos para reducir la superficie de ataque, mediante validaciones más estrictas y simplificando el procesamiento de datos. Optaron por un análisis doble, empleando tanto la biblioteca antigua como la nueva, lo que les proporciona una mayor capacidad de respuesta ante potenciales vulnerabilidades.
Con casi un millón de respuestas SAML gestionadas diariamente, este enfoque incrementa la resiliencia de GitHub, sirviendo como un modelo de referencia para otros equipos de desarrollo en el manejo de sistemas complejos y críticos. La experiencia subraya la importancia de los experimentos incrementales y guiados por datos, permitiendo aumentar la confianza en tecnologías esenciales para la seguridad empresarial.