# Visualizador del flujo OAuth 2.0 / OIDC con código de autorización y PKCE

Simula de extremo a extremo el flujo de código de autorización con PKCE: generación de verifier/challenge, URL de autorización, intercambio de tokens, lista de validación del ID Token y demostración de ataque de interceptación.

> Página canónica: https://elysiatools.com/es/tools/oauth-oidc-authorization-code-pkce-flow-visualizer

- **Categoría:** Development

- **Palabras clave:** visualizador flujo oauth, generador pkce s256, validación id token, verificación at_hash, demo flujo código autorización, simulador openid connect

## Descripción general

Un simulador offline fiel a las especificaciones: derivación del desafío S256 del RFC 7636, la lista de comprobaciones completa del §3.1.3.7 de OIDC Core con un token HS256 real y at_hash, un carril de ataque y una matriz de parámetros anotada. Sin llamadas de red; un reloj de demostración fijo mantiene los resultados reproducibles.

## Entradas

- **Variante del flujo** (select)
- **code_verifier (43-128 caracteres unreserved, vacío = ejemplo del RFC)** (text): leave blank to use the RFC 7636 Appendix B example (43 chars)
- **URL del emisor** (text): https://auth.example.com
- **client_id** (text): spa-demo-client
- **redirect_uri (debe coincidir exactamente con el registro)** (text): http://127.0.0.1:8080/callback
- **scope (openid activa OIDC)** (text): openid profile email
- **client_secret (clave de firma HS256 de demostración)** (text): demo-secret-not-for-production
- **state (vacío = valor demo determinista)** (text): opaque CSRF token, echoed back on the callback
- **nonce (vacío = valor demo determinista)** (text): binds the ID Token to this authentication session
- **Simular un ataque de interceptación del código** (checkbox)

## Cuándo usarlo

- Al diseñar, depurar o verificar la integración de autenticación OAuth 2.0 y OpenID Connect en aplicaciones SPA o móviles.
- Cuando se requiere auditar la derivación de code_challenge S256 y verificar la integridad de los claims del ID Token como at_hash y nonce.
- Para sesiones formativas o revisiones de seguridad donde se necesita evidenciar el riesgo de omitir PKCE frente a la interceptación de códigos.

## Cómo funciona

- Selecciona la variante del flujo (PKCE S256, plain o sin PKCE) y define los parámetros del cliente, emisor, scopes, state y nonce.
- El simulador deriva el code_challenge mediante SHA-256 y Base64URL (en modo S256) y genera tanto la URL de autorización como el cuerpo de la petición de intercambio de tokens.
- Examina la respuesta simulada que incluye los tokens y una lista de verificación paso a paso con nueve reglas de validación del ID Token según OIDC Core §3.1.3.7.
- Si se activa la simulación de ataque, analiza el carril del atacante para contrastar cómo el servidor autoriza o rechaza el canje del código según la presencia del code_verifier.

## Casos de uso

- Verificación previa de parámetros y derivación criptográfica antes de implementar clientes OAuth en frontend.
- Demostración didáctica del flujo de autenticación seguro y de la mitigación de vectores de ataque en canal frontal.
- Diagnóstico de discrepancias en la validación de tokens JWT e inconsistencias en claims de sesión OIDC.

## Preguntas frecuentes

### ¿Cuál es la diferencia entre la variante PKCE S256 y plain?

S256 transforma el code_verifier aplicando SHA-256 y codificación Base64URL para ocultar el secreto original, mientras que plain envía el valor tal cual; S256 es la opción obligatoria y recomendada por seguridad.

### ¿Esta herramienta realiza peticiones de red externas a servidores reales?

No, todo el flujo se ejecuta de forma local y offline en el navegador con un reloj determinista para garantizar resultados reproducibles.

### ¿Qué valida la lista de comprobación de OIDC Core §3.1.3.7?

Verifica emisor (iss), audiencia (aud), parte autorizada (azp), firma criptográfica, algoritmo (alg), expiración (exp), fecha de emisión (iat), nonce y concordancia del access token (at_hash).

### ¿Cómo previene PKCE el ataque de interceptación del código de autorización?

Obliga al cliente a presentar el code_verifier original al canjear el código en el canal trasero; el atacante que interceptó el código no posee dicho verifier y el servidor rechaza la solicitud.

### ¿Qué formato debe cumplir el parámetro code_verifier?

Debe ser una cadena de entre 43 y 128 caracteres formada únicamente por caracteres no reservados (A-Z, a-z, 0-9, guion, punto, guion bajo y tilde).

## Herramientas relacionadas

- [Generador de PKCE Code Verifier y Challenge](https://elysiatools.com/es/tools/pkce-code-verifier-generator): Genera, valida y verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Tres modos: (1) generar un par nuevo a partir de bytes aleatorios criptográficos (256/384/512/768 bits), (2) auditar un verifier existente frente al RFC — longitud (43–128), charset \[A-Za-z0-9-._~\] y ≥256 bits de entropía, y (3) verificar un par recomputando BASE64URL(SHA256(verifier)). Opcionalmente construye la URL completa de autorización y el cuerpo del intercambio de token. Complementa al nonce-genérico (que solo emite el par) con auditoría de cumplimiento RFC y verificación de pares.
- [Generador de frases mnemónicas BIP39](https://elysiatools.com/es/tools/mnemonic-bip39-generator): Genera o valida frases BIP39 de 12 a 24 palabras con salida de entropía y seed PBKDF2-HMAC-SHA512
- [Comparador de algoritmos hash](https://elysiatools.com/es/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b y BLAKE3 a la misma entrada y compáralos lado a lado: longitud de salida, digest hex/Base64, estado de seguridad (roto/moderno) y benchmark de velocidad relativa. Útil para enseñanza, elegir algoritmo o verificar checksums.
- [Generador de puzles Kakuro / Fillomino / Masyu / Yajilin / Hashiwokakero / Nurikabe / Slitherlink / Star Battle con probador de unicidad](https://elysiatools.com/es/tools/kakuro-fillomino-masyu-yajilin-hashiwokakero-nurikabe-slitherlink-and-star-battle-puzzle-generator-with-uniqueness-prover): Genera de forma determinista por semilla puzles de 8 familias Nikoli (la misma semilla da el mismo tablero): Kakuro denso, Fillomino, Masyu, Yajilin, Hashiwokakero, Nurikabe, Slitherlink y Star Battle; cada tablero nace «solución primero» y se verifica con un solver exhaustivo que cuenta soluciones hasta dos — la unicidad está probada, y si el presupuesto se agota se declara honestamente «unproven»; incluye SVG de puzzle y solución y dificultad por nodos de búsqueda.
- [Sincronizador de paleta Tailwind](https://elysiatools.com/es/tools/tailwind-color-palette-sync): Introduce HEX, elige esquema de nombres (escala 50–950 / nombre único / anidamiento) y genera el fragmento theme.extend.colors de tailwind.config.ts con niveles WCAG AA/AAA por color. Modo oscuro opcional.
- [Generador de códigos TOTP / HOTP sin conexión](https://elysiatools.com/es/tools/totp-hotp-offline-generator): Genera contraseñas de un solo uso TOTP RFC 6238 (6/8 dígitos, 30/60 s) y HOTP RFC 4226 (por contador) a partir de un secreto base32, sin conexión, con HMAC-SHA1/256/512, y exporta una URI otpauth://
- [Índice Tiroideo (interpretación TSH/FT4/FT3)](https://elysiatools.com/es/tools/thyroid-index): Interpreta conjuntamente TSH, FT4 y FT3 (opcional) para evaluar el eje tiroideo. Rangos adultos: TSH 0.4–4.0 mIU/L, FT4 0.8–1.8 ng/dL (≈10–23 pmol/L), FT3 2.3–4.2 pg/mL (≈3.5–6.5 pmol/L). TSH alto + FT4 bajo → hipotiroidismo primario franco (Hashimoto, posablación, déficit de yodo, amiodarona/litio); TSH alto + FT4 normal → hipotiroidismo subclínico; TSH bajo + FT4 alto (±FT3 alto) → hipertiroidismo primario franco (Graves, nódulo tóxico, tiroiditis fase inicial, yodo/amiodarona); TSH bajo + FT4 normal → hipertiroidismo subclínico o hormona exógena o tiroiditis precoz — medir FT3 para descartar tireotoxicosis por T3; TSH normal/bajo + FT4 bajo → hipotiroidismo central (secundario/terciario, enfermedad hipofisaria/hipotalámica); TSH alto + FT4 alto → adenoma productor de TSH o resistencia a hormona tiroidea; todo normal → eutiroideo (enfermedad no tiroidea puede dar FT3 bajo). Precauciones: ritmo circadiano de TSH (pico 22:00–02:00, nadir vespertino); dopamina, esteroides, enfermedad grave y cabergolina suprimen TSH; en el embarazo usar rangos específicos por trimestre; anticuerpos heterófilos falsean TSH/FT4; la amiodarona puede producir tireotoxicosis tipo 1 (yodo) o tipo 2 (destructiva). Fuentes: ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. No es consejo médico.
- [Generador de hash de texto](https://elysiatools.com/es/tools/text-hash-generator): Calcula MD5, SHA-1, SHA-256, SHA-512 y CRC-32 de cualquier texto de una vez. Devuelve hex y Base64 sobre la codificación UTF-8.

## Ejemplos

- [Ejemplos de Comentarios de Código](https://elysiatools.com/es/samples/code-comment-samples): Archivos de muestra de código con varios estilos de comentarios para probar la eliminación de comentarios
- [Ejemplos OAuth 2.0 & OpenID Connect](https://elysiatools.com/es/samples/oauth-openid-connect): Ejemplos del framework de autorización OAuth 2.0 y protocolo de autenticación OpenID Connect
- [Ejemplos de Códigos QR](https://elysiatools.com/es/samples/qrcode-samples): Imágenes de códigos QR de muestra para probar herramientas de lectura y generación de códigos QR
- [Ejemplos OAuth 2.0](https://elysiatools.com/es/samples/oauth2-samples): Ejemplos de implementación OAuth 2.0 incluyendo flujos de autorización, configuraciones de cliente y mejores prácticas de seguridad
