No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

OAuth 2.0 y OIDC en acción

6/25
Recursos

¿Qué es Open Authorization y cómo funciona?

Open Authorization (OAuth) es un protocolo que permite a aplicaciones de terceros acceder a la información de un usuario sin compartir sus credenciales. Es posible que ya lo hayas experimentado al conectarte a servicios como Discord, Google o Facebook. Cuando haces clic en "Conectar con Discord", por ejemplo, eres redirigido al servidor de Discord para permitir o denegar el acceso a ciertos permisos.

Una vez autorizado, la aplicación recibe un "token" especial que le permite interactuar con los recursos del usuario en ese servicio, como su correo electrónico o listas de amigos.

¿Cuáles son los roles en Open Authorization?

En el flujo de OAuth, se identifican cuatro roles cruciales:

  1. Cliente: Es una aplicación que quiere acceder a los datos del usuario.
  2. Authorization Server: Emite los tokens que permiten la autorización.
  3. Resource Owner: Generalmente, el usuario que concede permisos.
  4. Resource Server: Aloja los datos a los que se quiere acceder.

Frecuentemente, tanto el Authorization Server como el Resource Server son la misma entidad, pero pueden diferenciarse.

¿Cómo se lleva a cabo el flujo de autorización?

  1. Solicitud de Autorización: El cliente inicia la conexión enviando una solicitud al Authorization Server.
  2. Login o Consentimiento: Si el usuario tiene sesión activa, se muestra una pantalla de permisos, donde el usuario decide qué derechos concede.
  3. Concesión de Autorización: Si el usuario autoriza, el cliente recibe un "Authorization Grant".
  4. Intercambio de Token: El cliente cambia el grant por un token accesible en el Authorization Server, obtienendo así el permiso necesario para realizar solicitudes al Resource Server.

Por tanto, lo que comienza como una solicitud del cliente se convierte en un flujo de comunicación entre diversas instancias detrás de escena.

¿Qué servicios son populares en Open Authorization?

Existen varias soluciones para implementar OAuth:

  • Auth0: Popular por su flexibilidad para diferentes necesidades.
  • Amazon Cognito: Ofrecido por Amazon Web Services, se integra bien en su ecosistema.
  • Okta: Dirigido a empresas, también ofrece servicios similares a Auth0 tras su reciente fusión.
  • KCloud: Una opción que puede instalarse en servidores propios para quienes buscan control total.

Es recomendable verificar siempre los permisos que estos servicios solicitan, asegurando que tus datos y recursos están protegidos. Además, es crucial entender qué partes del flujo suceden en el frontend y cuáles en el backend, pues es esto lo que garantiza la seguridad de OAuth.

¿Qué pasos seguir después?

Estos conceptos básicos de OAuth son esenciales, pero aún hay más por explorar. Te animamos a que investigues más sobre JSON Web Tokens y su relación con OAuth, así como a aplicar este conocimiento en proyectos personales o profesionales. ¡Sigue aprendiendo y practicando para convertirte en un experto en autenticación y seguridad web!

Aportes 14

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Lo de discord ya no funciona
Lo he usado en github, digital ocean y cada vez que puedo ahorrar el paso de ingresar credenciales.
<https://platzi.com/discord> Ya no funciona y aún no han hechos los correctivos

Accedo a Platzi autenticándome con mi cuenta de Google.

Tambien es bastante popular el servicio de google, en mi caso he utilizado Firebase Auth

Diagrama de Secuencia para OAuth 2.0 ![](https://static.platzi.com/media/user_upload/image-77790f77-c9b6-4dda-b73d-90aa5f1789dd.jpg)![]()
Cuando quiero usar repos de gh en vercel. Vercel es el cliente, el authorization server, así como el resorce server es github

Para iniciar sesión en Vercel o Netlify puedes utilizar tu cuenta de Google o tu cuenta de GitHub.

Casi todas las webs que suelo frecuentar utilizan OAuth.

En breve saldrá que puedas logarte con BIZUM

Utilizo mucho el acceso con Google y Github para ingresar a diversas plataformas

A mi me gustan los accesos con github, ya que integra mis repocitorios a las diferentes herramientas.

El uso de OAuth 2.0 y OpenID Connect lo que visto en Linkedin cuando autorizas para que la publicación que haces en Linkedin vaya a Twitter

Ultimamente he estado usando Auth0 y por eso estoy tomando este curso, porque he tenido bugs que no he sabido resolver, como por ejemplo que el access_token que me entrega auth0 no es valido en mi API. Se que auth0 utiliza OIDC.