Benjamin Josué Correa
Chicos, no copien y peguen de ChatGpt que se nota. Expliquenlo con sus palabras
Oswaldo Galindo
🤣
Si alguna vez te preguntaste cómo una aplicación puede acceder a tus archivos de Google Drive sin que le entregues tu contraseña, la respuesta está en OAuth (Open Authorization) y OpenID Connect, dos protocolos estándar que resolvieron el problema de delegar acceso entre sistemas de terceros de forma segura. Esta lectura te sirve si estás aprendiendo backend, seguridad web o integraciones entre apps.
Por qué nació Open Authorization si ya existía la autenticación
La autenticación con usuario y contraseña llevaba años resuelta. El problema era otro: no había una manera confiable de otorgar acceso a los recursos de un usuario a una aplicación de terceros.
Piensa en lo que ves todos los días. Sale una app popular y, alrededor, aparecen aplicaciones que quieren consumir esos recursos. Las integraciones con Google Drive son el ejemplo clásico, porque mucha gente quiere que su app favorita guarde archivos directamente ahí. El detalle es que esos usuarios le pertenecen a Google Drive, no a la app tercera. Sin un protocolo estándar, no había forma limpia de pedir esa autorización.
¿Qué es OAuth? Es un protocolo estándar que permite a una aplicación acceder a recursos de un usuario en otro sistema, sin compartir la contraseña original. Nació con la versión 2.0 enfocado en autorización entre apps.
Cómo se entiende OAuth con la analogía del pasaporte y la visa
La mejor forma de visualizarlo es pensar en un viaje internacional. Tu pasaporte lo emite tu país y funciona como medio de identificación cuando llegas a otro lugar. El agente de migración confía en que ese documento dice quién eres, aunque no tenga acceso directo a tus datos, sobre todo con regulaciones como GDPR protegiendo la información en Europa.
Pero el pasaporte solo te identifica. No te da permiso para hacer cualquier cosa en ese país. Para eso existe la visa, que es el mecanismo de autorización. Y aquí viene lo interesante: las visas tienen permisos limitados. Hay visas para trabajar, otras para estudiar, otras solo para turismo.
En la web pasa exactamente lo mismo:
Esta separación es la base conceptual de por qué necesitamos dos protocolos distintos.
Por qué se creó OpenID Connect si ya existía OAuth
OAuth se volvió tan popular que los desarrolladores empezaron a usarlo también para autenticar usuarios. El problema es que OAuth no fue diseñado para autenticación, sino para autorización, y al forzarlo aparecieron problemas de seguridad.
Imagina que recibes un token que da permisos para acceder a recursos cuando lo único que querías era identificar a la persona. Estás entregando demasiado poder cuando solo necesitabas confirmar una identidad. Ese desbalance es peligroso.
De ahí nace OpenID Connect, un protocolo construido sobre OAuth que sí está diseñado específicamente para autenticar.
¿Cuál es la diferencia entre OAuth y OpenID Connect? OAuth autoriza el acceso a recursos. OpenID Connect autentica la identidad del usuario. OpenID Connect está construido sobre OAuth, así que viven en conjunto y aprender uno facilita el otro.
Qué ganas al usar protocolos estándar
Usar protocolos estándar no es un capricho. Te da tres beneficios concretos al construir software:
Cuando el protocolo de autorización y autenticación es estándar, tú como desarrollador no tienes que reinventar nada. Ya sabes de qué va.
Qué necesitas recordar antes de implementar OAuth y OpenID Connect
Antes de pasar a la implementación, conviene fijar las ideas centrales:
Un ejercicio útil para reforzar lo aprendido: investiga una alternativa a OAuth y OpenID Connect, y anota al menos una ventaja y una desventaja que tenga frente a estos protocolos. ¿Qué alternativa encontraste tú? Cuéntame en los comentarios.
Benjamin Josué Correa
Chicos, no copien y peguen de ChatGpt que se nota. Expliquenlo con sus palabras
Oswaldo Galindo
🤣
Francisco Martin Nacimiento
Tengo una pregunta, creo ya conocer la respuesta, vi todo el curso, y leí materiales externos, y ahora estoy repasando las clases.
OAuth 2.0 es un marco/framework de autorización estándar abierto que explica como permitir la delegación de acceso seguro entre aplicaciones o servicios. Ahora, entiendo que implementar el estándar tiene 2 partes:
- El lado del tercero, es decir, el cliente - y el lado del authorization server
Entiendo que en este curso nosotros aprendemos más la primera parte, ¿no es así?
Juan Carlos Silva Vargas
hmm.
I hop so!
Jesús Ignacio García Fernández
LDAP, Permite tener diferenciado por departamento a los usuarios y tener una relación de recursos a los que dar permisos.
PRO: está centralizado todo
CONTRA: complejidad de configuración
Pablo Torres Pérez
Ventajas
Desventajas
Diferencias con OAuth y OIDC:
Ventajas
Desventajas
Diferencias con OAuth y OIDC:
Fuentes de consulta: ¿Qué es SAML? SAML vs OAuth Kerberos Authentication Overview
Francisco Martin Nacimiento
Comparto otro punto de vista sobre la frase:
"La autenticación estaba resuelta, pero no había una manera confiable de dar autorización a terceros"
La autenticación estaba resuelta entre 2 partes, ahora al involucrar un tercero, la cosa se complica, y es ahí donde surge la necesidad de encontrar una forma de brindar acceso limitado a ciertos recursos de un usuario a un tercero sin revelar las credenciales del usuario.
Y esa forma se llama OAuth 2.0, que es un framework de autorización estándar abierto que explica como hacerlo, no lo implementa, podemos encontrar distintas implementaciones de la misma, librerías, servicios o hacer nuestra propia implementación.
Cristian Mauricio Cavanzo Arias
Me encanta como esta construido visualmente este curso, las diapositivas son hermosas y ese resumen al final de la clase es super vital para ver si a uno se le llego a perder un concepto clave
Xavier Flores
eso no lo hace sentir monótono ni aburrido.
José Fabián Beltrán Meza
Encontre las siguientes:
SAML 2.0: un protocolo basado en XML que permite el inicio de sesión unificado entre distintas aplicaciones.
Kerberos: un protocolo de autenticación de red que utiliza criptografía para proveer seguridad para información sensible.
**Azure Active Directory: **servicio de directorio basado en la nube que puede utilizarse para administrar las identidades de usuarios y el control de accesos.
Autenticación basada en formularios: este es un método de autenticación heredada que aun es respaldado por EWS.
**JSON Web Token (JWT): **una alternativa popular a OAuth que te permite crear y validar tokens por ti mismo.
**NTLM: **este es también un protocolo de Microsoft. Es más seguro que la autenticación básica y ya es compatible con muchos productos de la compañía.
La información completa aquí https://blog.invgate.com/es/microsoft-degrada-la-autenticacion-basica
Maria Luna
Creo que una alternativa moderna podría ser AWS Cognito.
Ramiro José López Velásquez
Buen ejemplo
David Prado
En los cursos hemos utilizado Passportjs como metodo de Autenticacion y JWT (JSON Web Token) para Autorizar y definir los permisos que tiene accesos nuestros clientes. Pasportjs es una librería de Node que nos brinda distintas formas de hacerlo , como por ejemplo: Google, Facebook, Github, etc.
Angel Javier Sanchez Tenjo
🔐 Alternativas a OAuth y OpenID Connect
1️⃣ SAML (Security Assertion Markup Language)
📌 Qué es Un estándar basado en XML para autenticación y autorización, muy usado en entornos empresariales y Single Sign-On (SSO).
✅ Ventajas
❌ Desventajas
🧠 Uso típico
2️⃣ Kerberos
📌 Qué es Un protocolo de autenticación basado en tickets, muy utilizado en redes internas controladas.
✅ Ventajas
❌ Desventajas
🧠 Uso típico
3️⃣ Autenticación basada en JWT (sin OAuth)
📌 Qué es Uso directo de JSON Web Tokens para autenticación y autorización, sin un proveedor OAuth formal.
✅ Ventajas
❌ Desventajas
🧠 Uso típico
4️⃣ API Keys
📌 Qué es Claves estáticas que identifican a una aplicación o consumidor.
✅ Ventajas
❌ Desventajas
🧠 Uso típico
5️⃣ LDAP / Active Directory
📌 Qué es Servicios de directorio para autenticación centralizada de usuarios.
✅ Ventajas
❌ Desventajas
🧠 Uso típico
6️⃣ Autenticación propietaria (Custom Auth)
📌 Qué es Un sistema de autenticación diseñado desde cero por el equipo.
✅ Ventajas
❌ Desventajas
🧠 Uso típico
Leonardo Moreno
Se me ocurre lo siguiente en el mundo Linux: OIDC -- user y Password / Con esto se identifica cada user OAuth -- Sistema de permisos UNIX UGO - Con esto puedo dar acceso y privilegios de escritura, lectura y ejecucion a los recursos del sistema, dependiendo de la identidad del User.
Juan Carlos Silva Vargas
JWT basado en Json
Ventajas: Simplicidad, liviano, compatible con APIs y microservicios, desacoplamiento
Desventajas Sin revocacion nativa, gestion de seguridad delicada, menos adecuada para ecosistemas de terceros.
FELIX NADER NUÑEZ
SAML, KERVEROS
Kenny Estiven Raúl Contreras Aguilar
La identificación con formulario y cruzado contra una db y la autorización basada en la tabla de accesos configurados para cada vista o modelo de datos.