0%
Inicio 9 Glossary Item 9 OAuth 2.0
« Back to Glossary Index

Nivel Principiante

Imagina que tienes una cuenta en Google (con tu correo, fotos y documentos) y quieres usar una aplicación de terceros para crear álbumes de fotos. La aplicación necesita acceder a tus fotos, pero no quieres darle tu contraseña de Google. OAuth 2.0 es un sistema de seguridad que permite a la aplicación acceder a tus fotos sin que tengas que compartir tu contraseña. En lugar de eso, te envía a una página de Google donde le das permiso explícito. Si le das permiso, Google le da a la aplicación una «llave» temporal (llamada access token) que solo abre la puerta de tus fotos, y no de tu correo o tus documentos.

Nivel Intermedio

OAuth 2.0 (Open Authorization 2.0) es un marco de autorización que permite que una aplicación de terceros obtenga acceso limitado a los recursos de un usuario en otro servicio web sin tener que exponer las credenciales (nombre de usuario y contraseña) del usuario. En lugar de compartir la contraseña, el usuario delega la autorización al servicio que posee los datos.

El proceso se basa en un flujo de intercambio de tokens. En un ejemplo típico, el usuario inicia sesión en el servicio que posee los datos, el servicio le pide al usuario que dé su consentimiento para que la aplicación de terceros acceda a sus datos y, si el usuario acepta, el servicio emite un token de acceso a la aplicación de terceros. Este token es una cadena de caracteres que representa una autorización con un alcance y una duración específicos.

Nivel Avanzado

Técnicamente, OAuth 2.0 define un conjunto de «flujos de concesión» (grant types) para obtener un token de acceso, cada uno adaptado a un tipo de aplicación diferente (aplicaciones web, móviles, de escritorio, etc.).

El flujo más común es el de Código de Autorización (Authorization Code Grant), que es el más seguro y recomendado. El proceso funciona de la siguiente manera:

  1. Solicitud de Autorización: La aplicación de terceros (el cliente) redirige al navegador del usuario al servidor de autorización (por ejemplo, Google). La solicitud incluye un client ID, el alcance del acceso y una URI de redirección a donde el navegador debe regresar.
  2. Consentimiento del Usuario: El servidor de autorización le pide al usuario que inicie sesión y le presenta una pantalla de consentimiento. Si el usuario acepta, el servidor emite un código de autorización y redirige el navegador de vuelta a la URI de redirección de la aplicación.
  3. Intercambio de Token: La aplicación de terceros recibe el código de autorización y, en un segundo paso seguro (sin pasar por el navegador del usuario), lo envía junto con su client secret al servidor de autorización.
  4. Emisión de Tokens: El servidor de autorización valida el código y emite el token de acceso. Opcionalmente, también puede emitir un refresh token para obtener nuevos tokens de acceso cuando el actual expire.
  5. Acceso a los Recursos: La aplicación de terceros utiliza el token de acceso para realizar solicitudes a la API del servidor de recursos (por ejemplo, la API de Google Photos).

OAuth 2.0 es el estándar de facto para la autorización en la web, ya que proporciona una forma segura de acceder a recursos sin exponer las credenciales del usuario, lo que mejora la privacidad y la seguridad. Es importante no confundir OAuth con la autenticación; su propósito es la autorización, aunque a menudo se utiliza junto con otros protocolos como OpenID Connect para la autenticación de usuarios.

« Volver al índice del glosario