Funcionamiento de OAuth 2.0 - Diferencia entre Autenticacion y Autorizacion

12 min de lectura | 2025.12.02

Diferencia entre Autenticacion y Autorizacion

Antes de entender OAuth 2.0, comprendamos la diferencia entre autenticacion y autorizacion:

  • Autenticacion (Authentication): Confirmar “quien eres tu”
  • Autorizacion (Authorization): Permitir “que puedes hacer”

OAuth 2.0 es un protocolo de autorizacion: Es un mecanismo para permitir que aplicaciones de terceros accedan a recursos sin compartir las credenciales del usuario.

Actores de OAuth 2.0

  • Resource Owner: El usuario (propietario de los datos)
  • Client: La aplicacion que solicita acceso
  • Authorization Server: El servidor que emite los access tokens
  • Resource Server: El servidor que aloja los recursos protegidos

Flujo de Codigo de Autorizacion

Es el flujo mas seguro y comun:

  1. El cliente redirige al usuario al servidor de autorizacion
  2. El usuario inicia sesion y otorga permisos
  3. El servidor de autorizacion devuelve un codigo de autorizacion al cliente
  4. El cliente intercambia el codigo de autorizacion por un access token
  5. Se accede al servidor de recursos con el access token
# 1. Solicitud de autorizacion
GET /authorize?
  response_type=code
  &client_id=YOUR_CLIENT_ID
  &redirect_uri=https://yourapp.com/callback
  &scope=read:user
  &state=random_string

# 4. Solicitud de token
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code=AUTHORIZATION_CODE
&redirect_uri=https://yourapp.com/callback
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET

Tipos de Tokens

Access Token

  • Token de corta duracion para acceder a recursos
  • Normalmente expira en 15 minutos a 1 hora
  • Se envia en el header Authorization: Bearer

Refresh Token

  • Token para obtener un nuevo access token
  • Valido por un periodo largo (dias a meses)
  • Debe almacenarse de forma segura
# Actualizar access token con refresh token
POST /oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&refresh_token=YOUR_REFRESH_TOKEN
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET

Scopes

Los scopes limitan las operaciones permitidas por el access token:

  • read:user - Lectura de informacion del usuario
  • write:posts - Creacion y edicion de publicaciones
  • delete:comments - Eliminacion de comentarios

Principio de minimo privilegio: Al solicitar solo los scopes minimos necesarios, se reduce el riesgo de seguridad.

Resumen

OAuth 2.0 es un mecanismo para delegar de forma segura el acceso a recursos sin compartir contrasenas. Al comprender el access token, refresh token y el diseno apropiado de scopes, puedes construir aplicaciones seguras.

← Volver a la lista