
La seguridad en el desarrollo de software es sin duda uno de los temas más interesantes y críticos para cualquier desarrollador. Las aplicaciones necesitan acceder a APIs internas y externas de forma segura, por lo que la implementación correcta de protocolos y estándares de seguridad puede marcar la diferencia entre una aplicación robusta y una vulnerable.
Por eso, entender en profundidad cómo funcionan protocolos clave como OAuth 2.0 y OpenID Connect es fundamental. Para aprender sobre ello y mucho más, en la conferencia Codemotion Madrid 2025 tendremos la oportunidad de escuchar a Leonardo Micheloni, Software Developer en Tokiota y experto en seguridad y arquitectura de software.
En su charla, profundizará en los detalles técnicos y nos ayudará a comprender conceptos que suelen parecer complejos y confusos, como OAuth, OpenID Connect (OIDC), flujos de autorización, “claims” y “tokens”.
Contexto de la charla
Hace algunos años, sobre todo en los inicios de internet, muchas aplicaciones pedían a sus usuarios que les dieran directamente sus credenciales (como por ejemplo de su correo electrónico o la banca online) con el fin de acceder a otros servicios y obtener datos que necesitaban en su nombre.
Esto es como darle las llaves de tu casa a un desconocido para que pueda entrar a buscar algo que necesitas: totalmente inseguro.
Para acabar con esta práctica, era necesario inventar mecanismos que permitieran a terceros acceder a los servicios de forma segura y controlada sin necesidad de proporcionar las credenciales completas. Y es aquí donde entran en juego los mecanismos y protocolos que permiten acceder a recursos de usuario sin necesidad de obtener las credenciales reales.
Para comprenderlo mejor tenemos que hablar del término de autorización y en qué se diferencia de la autenticación. Aunque las diferencias son muy evidentes, en ocasiones son 2 conceptos que suelen crear confusión:
- Autorización: el usuario permite que un tercero pueda acceder a sus datos, estableciendo en todo momento a qué recursos puede acceder y qué acciones puede realizar.
- Autenticación: la autenticación es el proceso de verificar la identidad del usuario, es decir, que quien está usando la aplicación, es quien dice ser.
Esto es posible gracias al uso de tokens temporales, en este caso, tokens de accesos, que, en lugar de entregar usuario y contraseña, el usuario envía a la aplicación un token de acceso temporal y limitado que autoriza acciones específicas. Siguiendo el ejemplo anterior, es como abrir temporalmente una pequeña ventana de tu casa para que el visitante pueda acceder solo a un espacio específico durante un tiempo limitado.
Este enfoque mejoró notablemente la seguridad, ya que el acceso es restringido y revocable, y el usuario mantiene el control total sobre sus recursos en todo momento.
OAuth 2.0 +OpenID Connect
Para resolver estos desafíos de seguridad y gestión de identidad, surgieron dos protocolos abiertos que se han convertido en el estándar a la hora de gestionar la autenticación y autorización en aplicaciones modernas.
Por un lado, tenemos OAuth 2.0, que significa Open Authorization y permite que una aplicación o sitio web pueda acceder a recursos alojados en otras aplicaciones o APIs en nombre de un usuario, sin necesidad de tener que entregar sus credenciales. Se trata de un protocolo de autorización que utiliza tokens en formato JWT (JSON Web Token) y permite definir varios roles de acceso.
A través de diferentes flujos de autorización, OAuth 2.0 se adapta a distintos casos de uso y requisitos de seguridad. Cada flujo está diseñado para un escenario específico, teniendo en cuenta factores como el tipo de aplicación, el nivel de confianza y el contexto de uso.
Por otro lado, Open ID Connect es una capa de identidad construida sobre OAuth 2.0 que añade funciones de autenticación. Mientras OAuth 2.0 se centra en la autorización, OpenID Connect proporciona información verificada sobre la identidad del usuario final a través de un ID Token, el cual incluyen detalles como nombre, correo electrónico y otros atributos del perfil.
Esta combinación de protocolos permite crear sistemas robustos que manejan tanto la autenticación como la autorización de manera segura y estandarizada.
La charla: Dominando OAuth 2.0 y OpenID Connect
En la charla “Dominando OAuth 2.0 y OpenID Connect”, impartida por Leonardo Micheloni, podrás aprender en profundidad la diferencia entre estos dos protocolos, cómo funcionan cada uno de ellos y qué conceptos claves debes conocer para saber cuándo utilizar uno u otro. Todo ello de una forma clara y sencilla, empleando ejemplos que cualquiera puede entender.
También se abordarán los principales flujos de OAuth 2.0, como el Authorization Code Flow, ideal para aplicaciones web, el Device Code Flow, útil para dispositivos con capacidades limitadas, CIBA para autenticación en segundo plano, y el Client Credentials Flow, utilizado para la autenticación entre servidores. Además, se discutirá sobre el uso de Reference Tokens, una alternativa más segura a los tokens tradicionales.
Leonardo también nos hablará sobre la seguridad de estos protocolos y las mejores prácticas para implementarlos de manera efectiva. Explorará las vulnerabilidades comunes y cómo evitarlas, así como las consideraciones de seguridad que todo desarrollador debe tener en cuenta al trabajar con estos estándares.
El ponente: Leonardo Micheloni (Software Developer at Tokiota)
Leonardo Micheloni lleva más de 20 años trabajando como desarrollador de software y ha sido reconocido como Microsoft MVP durante los últimos 10 años gracias a su colaboración con la comunidad de desarrolladores en Latinoamérica y España. Durante varios años ha estado involucrado con buenas prácticas de desarrollo y agilidad, y todo lo relacionado con la creación de software de calidad. Actualmente trabaja para Tokiota en Madrid.