# Ruta 03 · Sesión 02 — OAuth 2.0, OpenID Connect, tokens y sesiones

Uso educativo: caso ficticio de reserva de espacios. Todos los actores y datos son ejemplos.

## Objetivo

Definir un flujo de autenticación y un contrato de validación de tokens y sesiones.

## Escenario

El portal obtiene un ID token para iniciar sesión. Un diseño preliminar intenta reutilizarlo para consultar reservas y conserva tokens en el almacenamiento del navegador. Debes corregir el contrato.

## Trabajo opcional

1. Dibuja solicitud, código, canje y sesión del portal.
2. Separa destinatario y propósito de los tres tipos de token.
3. Define validaciones y gestión de claves de confianza.
4. Documenta expiración, revocación, CSRF y pruebas negativas.

## Plantilla

| Elemento | Destinatario | Propósito | Validación | Almacenamiento | Revocación o expiración |
|---|---|---|---|---|---|
| ID token | Cliente del portal | Autenticación | Completar | Servidor | Completar |
| Access token | api-reservas | Acceso delegado | Completar | Servidor | Completar |
| Sesión | Portal | Continuidad | Completar | Cookie de identificador | Completar |

## Solución orientativa

- El portal valida su respuesta de autenticación; la API exige un access token dirigido a api-reservas.
- Verificar firma, emisor, audiencia y tiempos con una configuración confiable.
- Conservar tokens del lado servidor en el diseño elegido; proteger la cookie y las operaciones frente a CSRF.
- Rechazar expiración, audiencia incorrecta y sustitución por ID token; documentar la ventana residual tras una baja.

## Evidencia propia

- Decisión y justificación:
- Prueba positiva:
- Prueba negativa:
- Resultado observado (o esperado si no ejecutas la prueba):
- Riesgo pendiente y responsable:

## Referencias

- [IETF RFC 9700 — OAuth 2.0 Security BCP](https://www.rfc-editor.org/rfc/rfc9700.html)
- [OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html)
- [OWASP Session Management](https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html)
- [OWASP REST Security](https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html)

## Procedencia y reutilización

Material elaborado para el proyecto personal de Andrez Higuera con apoyo de ChatGPT. Contiene información neutral y escenarios ficticios con fines educativos. Responsable editorial: Andrez Higuera. La mención de estándares y organizaciones en las referencias no implica afiliación, patrocinio ni certificación.

**Recurso:** ACA-REC-14 · **Versión editorial:** 1.0 · **Revisión:** 27 de septiembre de 2026.

Los textos educativos, ejercicios, plantillas y soluciones propios de este recurso se ofrecen bajo Creative Commons Atribución-NoComercial 4.0 Internacional (CC BY-NC 4.0). Al compartirlos o adaptarlos, conserve la atribución y los avisos aplicables, incluya el enlace al original y a la licencia, e indique los cambios. Los componentes de terceros identificados por separado conservan sus condiciones. Esta licencia no concede derechos sobre marcas ni implica respaldo institucional.

[Original](https://briefing.andrezhiguera.cl/academia/recursos/14-contrato-tokens-sesiones.md) · [Licencia CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) · [Alcance y condiciones](https://briefing.andrezhiguera.cl/academia/condiciones-de-uso).
