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:
- El cliente redirige al usuario al servidor de autorizacion
- El usuario inicia sesion y otorga permisos
- El servidor de autorizacion devuelve un codigo de autorizacion al cliente
- El cliente intercambia el codigo de autorizacion por un access token
- 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 usuariowrite:posts- Creacion y edicion de publicacionesdelete: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