Flujo de Open Authorization y Open ID con Discord

Clase 6 de 25Curso de OAuth 2.0 y OpenID Connect: Flujos de Autenticación y Casos de Estudio

Resumen

¿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!