-Hoy en día es indispensable conocer estos protocolos y estándares usados ampliamente en la industria* para desarrollar aplicaciones web, móviles, de escritorio o para smart devices (e.g. TVs) que de manera segura:
-Permitan a un usuario autentificarse/registrarse en nuestro producto usando su cuenta en un servicio de terceros o viceversa (a.k.a. social login).
-Puedan acceder a los datos de nuestros usuarios en servicios web de terceros (redes sociales, ficheros, correo electrónico, ...).
-O autorizar y dar privilegios a un servicio de un tercero para usar nuestras APIs en su nombre.
El objetivo de esta sesión es afianzar conocimientos básicos sobre:
Qué es OAuth y cómo funcionan los tipos de concesiones:
-Authorization Code Flow usando PKCE (RFC 7636): El flujo más seguro de para obtener access tokens desde un cliente, además de ver cómo este previene ataques que otros flujos no.
-Device Authorization Grant (RFC 8628): para televisores inteligentes, marcos de fotos digitales, impresoras, y otros dispositivos sin navegador.
-Client Credentials Grant: el mecanismo de servidor más sencillo.
Qué es OpenID Connect, como obtener un ID token y la diferencia entre un access token y un ID token.
Qué es, la estructura y cómo generar un JSON Web Token.
Tanto si alguna vez has usado estos protocolos como si no, intentaremos que en esta sesión todo el mundo aprenda algo nuevo.
(*) Estos estándares son usados por empresas/productos como Google, Amazon, Apple, Microsoft, Stripe, Slack, Spotify, GitHub, Meta, Zapier, IFTTT, Twitter, Linkedin ... pero a pesar de ello existe gran confusión al respecto sigue debido a la complejidad de los RFCs.