# Visualizador do fluxo OAuth 2.0 / OIDC com código de autorização e PKCE

Simula de ponta a ponta o fluxo de código de autorização com PKCE: geração de verifier/challenge, URL de autorização, troca de token, checklist de validação do ID Token e demonstração de ataque de interceptação.

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

- **Categoria:** Development

- **Palavras-chave:** visualizador fluxo oauth, gerador pkce s256, validação id token, verificação at_hash, demo fluxo código autorização, simulador openid connect

## Visão geral

Um simulador offline fiel às especificações: derivação do desafio S256 do RFC 7636, o checklist completo do OIDC Core §3.1.3.7 com um token HS256 real e at_hash, uma faixa de ataque e uma matriz de parâmetros anotada. Sem chamadas de rede; um relógio de demonstração fixo mantém as saídas reproduzíveis.

## Entradas

- **Variante do fluxo** (select)
- **code_verifier (43-128 caracteres unreserved, vazio = exemplo do RFC)** (text): leave blank to use the RFC 7636 Appendix B example (43 chars)
- **URL do emissor** (text): https://auth.example.com
- **client_id** (text): spa-demo-client
- **redirect_uri (deve corresponder exatamente ao registro)** (text): http://127.0.0.1:8080/callback
- **scope (openid ativa o OIDC)** (text): openid profile email
- **client_secret (chave de assinatura HS256 de demonstração)** (text): demo-secret-not-for-production
- **state (vazio = valor demo determinístico)** (text): opaque CSRF token, echoed back on the callback
- **nonce (vazio = valor demo determinístico)** (text): binds the ID Token to this authentication session
- **Simular um ataque de interceptação do código** (checkbox)

## Quando usar

- Ao projetar ou depurar a integração de Single Page Applications (SPA) e aplicativos móveis com provedores OAuth 2.0 e OpenID Connect.
- Para validar a derivação matemática de code_challenge (SHA-256 base64url) a partir de um code_verifier personalizado.
- Para entender o impacto de segurança do PKCE demonstrando na prática como a ausência do verifier permite a interceptação do código de autorização.

## Como funciona

- Selecione a variante de fluxo (PKCE S256, PKCE plain ou sem PKCE) e defina parâmetros como issuer, client_id, redirect_uri, escopos, state e nonce.
- O motor calcula o code_challenge a partir do code_verifier fornecido (ou do padrão da RFC 7636) e monta a URL completa da requisição de autorização.
- A ferramenta simula o callback no canal frontal e a troca no endpoint de token pelo canal traseiro, gerando tokens assinados em HS256.
- O resultado apresenta um relatório visual interativo com diagrama de etapas, checklist de validação do ID Token (incluindo at_hash) e matriz de parâmetros.

## Casos de uso

- Auditoria e aprendizado técnico dos passos exatos do fluxo OAuth 2.0 Authorization Code Grant com extensões PKCE e OIDC.
- Geração de dados de teste determinísticos (URLs de autorização, corpos POST de token e hashes) para testes unitários e de integração.
- Demonstração didática de vulnerabilidades em fluxos de autenticação sem PKCE em treinamentos de segurança de aplicações.

## Perguntas frequentes

### A ferramenta realiza chamadas reais de rede aos servidores de autorização?

Não. Toda a simulação, derivação de hash SHA-256 e validação de tokens ocorrem de forma determinística e offline no navegador.

### Qual é a diferença prática entre as variantes S256 e plain do PKCE?

A variante S256 envia o hash SHA-256 codificado em base64url do verifier, enquanto a plain envia o segredo em texto puro, sendo menos segura.

### O que a verificação de at_hash no ID Token valida?

Ela assegura que o access_token recebido corresponde ao hash emitido dentro do ID Token, prevenindo adulteração de tokens.

### Como funciona a demonstração de ataque por interceptação?

Ela ilustra um invasor que captura o authorization_code e tenta resgatar os tokens sem conhecer o code_verifier original gerado pelo cliente legítimo.

### Posso usar chaves assimétricas como RS256 na simulação?

A ferramenta utiliza assinaturas determinísticas HS256 para manter a execução local rápida e fiel à validação dos parâmetros do OIDC Core.

## Ferramentas relacionadas

- [Gerador de PKCE Code Verifier e Challenge](https://elysiatools.com/pt/tools/pkce-code-verifier-generator): Gera, valida e verifica pares code_verifier / code_challenge PKCE (RFC 7636) de OAuth2 / OIDC. Três modos: (1) gerar um par novo a partir de bytes aleatórios criptográficos (256/384/512/768 bits), (2) auditar um verifier existente frente ao RFC — comprimento (43–128), charset \[A-Za-z0-9-._~\] e ≥256 bits de entropia, e (3) verificar um par recalculando BASE64URL(SHA256(verifier)). Opcionalmente constrói a URL completa de autorização e o corpo de troca de token. Complementa o nonce-generator genérico (que só emite o par) com auditoria de conformidade RFC e verificação de pares.
- [Gerador de frases mnemônicas BIP39](https://elysiatools.com/pt/tools/mnemonic-bip39-generator): Gera ou valida frases BIP39 de 12 a 24 palavras com saída de entropia e seed PBKDF2-HMAC-SHA512
- [Comparador de algoritmos de hash](https://elysiatools.com/pt/tools/hash-algorithm-comparator): Aplica MD5, SHA-1, SHA-256, SHA-512, BLAKE2b e BLAKE3 à mesma entrada e compara: tamanho, digest hex/Base64, status de segurança (quebrado/moderno) e benchmark de velocidade relativa. Útil para ensino, escolha de algoritmo ou checagem de checksums.
- [Gerador de quebra-cabeças Kakuro / Fillomino / Masyu / Yajilin / Hashiwokakero / Nurikabe / Slitherlink / Star Battle com prova de unicidade](https://elysiatools.com/pt/tools/kakuro-fillomino-masyu-yajilin-hashiwokakero-nurikabe-slitherlink-and-star-battle-puzzle-generator-with-uniqueness-prover): Gera de forma determinística por semente quebra-cabeças de 8 famílias Nikoli (mesma semente, mesmo tabuleiro): Kakuro denso, Fillomino, Masyu, Yajilin, Hashiwokakero, Nurikabe, Slitherlink e Star Battle; cada tabuleiro nasce «solução primeiro» e é verificado por um solver exaustivo que conta soluções até duas — a unicidade é provada, e se o orçamento se esgota é declarada honestamente «unproven»; SVGs de puzzle e solução e dificuldade por nós de busca inclusos.
- [Sincronizador de paleta Tailwind](https://elysiatools.com/pt/tools/tailwind-color-palette-sync): Insira HEX, escolha o esquema de nomes (escala 50–950 / nome único / aninhamento) e gere o fragmento theme.extend.colors do tailwind.config.ts com níveis WCAG AA/AAA. Dark mode opcional.
- [Gerador de códigos TOTP / HOTP offline](https://elysiatools.com/pt/tools/totp-hotp-offline-generator): Gera senhas de uso único TOTP RFC 6238 (6/8 dígitos, 30/60 s) e HOTP RFC 4226 (por contador) a partir de um segredo base32, offline, com HMAC-SHA1/256/512, e exporta uma URI otpauth://
- [Índice Tireoidiano (interpretação TSH/FT4/FT3)](https://elysiatools.com/pt/tools/thyroid-index): Interpreta em conjunto TSH, FT4 e FT3 (opcional) para avaliar o eixo tireoidiano. Referência adulto: 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 baixo → hipotireoidismo primário franco (Hashimoto, pós-ablação, deficiência de iodo, amiodarona/lítio); TSH alto + FT4 normal → hipotireoidismo subclínico; TSH baixo + FT4 alto (± FT3 alto) → hipertireoidismo primário franco (Graves, nódulo tóxico, tireoidite precoce, iodo/amiodarona); TSH baixo + FT4 normal → hipertireoidismo subclínico ou hormônio exógeno ou tireoidite inicial — dosar FT3 para excluir T3-toxicose; TSH normal/baixo + FT4 baixo → hipotireoidismo central (secundário/terciário, doença hipofisária/hipotalâmica); TSH alto + FT4 alto → adenoma produto de TSH ou resistência aos hormônios tireoidianos; todos normais → eutireoidiano (doença não tireoidiana pode ter FT3 isoladamente baixo). Precauções: ritmo circadiano do TSH (pico 22:00–02:00, nadir vespertino); dopamina, esteroides, doença grave e cabergolina suprimem TSH; na gestação usar faixas específicas por trimestre; anticorpos heterófilos falseiam TSH/FT4; amiodarona pode causar tireotoxicose tipo 1 (iodo) ou tipo 2 (destrutiva). Fontes: ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. Não é conselho médico.
- [Gerador de hash de texto](https://elysiatools.com/pt/tools/text-hash-generator): Calcula MD5, SHA-1, SHA-256, SHA-512 e CRC-32 de qualquer texto de uma vez. Retorna hex e Base64 sobre a codificação UTF-8.

## Exemplos

- [Exemplos de Comentários de Código](https://elysiatools.com/pt/samples/code-comment-samples): Arquivos de código de exemplo com vários estilos de comentários para testar a remoção de comentários
- [Exemplos OAuth 2.0 & OpenID Connect](https://elysiatools.com/pt/samples/oauth-openid-connect): Exemplos do framework de autorização OAuth 2.0 e protocolo de autenticação OpenID Connect
- [Exemplos de Códigos QR](https://elysiatools.com/pt/samples/qrcode-samples): Imagens de código QR de exemplo para testar ferramentas de leitura e geração de código QR
- [Exemplos OAuth 2.0](https://elysiatools.com/pt/samples/oauth2-samples): Exemplos de implementação OAuth 2.0 incluindo fluxos de autorização, configurações de cliente e melhores práticas de segurança
