OpenID Connect (OIDC) es un protocolo de autenticación que funciona como una capa de identidad sobre OAuth 2.0. Mientras que OAuth 2.0 se centra en la autorización (otorgar acceso a recursos protegidos), OIDC añade la capacidad de autenticar a los usuarios y obtener información básica sobre ellos. Utiliza tokens JWT (JSON Web Tokens) firmados digitalmente, conocidos como ID Tokens, para transmitir la identidad del usuario de forma segura y verificable entre el Identity Provider (IdP) y el Relying Party (aplicación cliente). OIDC define flujos estándar para que las aplicaciones cliente puedan solicitar y recibir estos tokens, junto con Access Tokens para acceder a APIs protegidas y Refresh Tokens para obtener nuevos Access Tokens sin requerir una nueva interacción del usuario.

OIDC es ampliamente adoptado en el mundo real para la autenticación de usuarios en una multitud de sistemas y plataformas. Ejemplos concretos incluyen la autenticación de usuarios en servicios de nube pública como Google Cloud, AWS (a través de AWS Cognito o IAM Identity Center), y Azure Active Directory (ahora Microsoft Entra ID). Plataformas de desarrollo como Kubernetes lo utilizan para la autenticación de usuarios y service accounts. Herramientas de CI/CD como GitHub Actions y GitLab CI/CD lo emplean para la autenticación sin credenciales (Workload Identity Federation) con proveedores de nube. Además, muchos proveedores de identidad empresariales y soluciones de Single Sign-On (SSO) como Okta, Auth0 y Keycloak implementan OIDC para ofrecer autenticación federada y gestión de identidades.

Para un Arquitecto de Sistemas, OIDC es fundamental porque simplifica la implementación de la autenticación y el SSO, reduciendo la complejidad y la superficie de ataque al delegar la gestión de identidades a proveedores especializados. Permite la federación de identidades, lo que es crucial para arquitecturas de microservicios y entornos multi-cloud. Los trade-offs incluyen la dependencia de un IdP externo, lo que requiere considerar su disponibilidad, escalabilidad y cumplimiento normativo. La elección del flujo OIDC adecuado (e.g., Authorization Code Flow, Implicit Flow, Hybrid Flow) es una decisión de diseño crítica que impacta la seguridad y la experiencia del usuario. Comprender la validación de ID Tokens y la gestión de claves públicas (JWKS) es esencial para garantizar la seguridad de la aplicación. OIDC facilita la construcción de sistemas robustos y seguros, pero exige una comprensión profunda de sus mecanismos para evitar configuraciones erróneas y vulnerabilidades.