O utilizador inicia o login na aplicação cliente.
Cada fluxo é desenhado como um diagrama de sequência: os atores (utilizador, cliente, servidores) são colunas e as mensagens, setas no tempo. Carrega em Play ou ⏭ para o percorreres passo a passo.
Muda o client_id, redirect_uri, scope, credenciais, etc. e o diagrama regenera-se. Clica em qualquer seta para inspecionar o pedido HTTP real e a sua explicação.
Basic (utilizador:palavra-passe em Base64), Bearer/JWT, Authorization Code, Code + PKCE (o recomendado hoje), Implicit (legado), Client Credentials (máquina a máquina), Device Code (TVs/CLI) e Refresh Token (renovar sem re-login).
Em qualquer passo com pedido HTTP podes copiá-lo como comando curl para o reproduzires no teu terminal. Se o passo levar um JWT, abre-o no descodificador JWT para inspecionares o seu header e payload.
Ativa um ataque para veres um ator Atacante e os passos maliciosos (a vermelho). Cada fluxo traz os seus: sniffing de credenciais, alg:none, interceção do código sem PKCE, PKCE com plain, CSRF por falta de state, mix-up, refresh token roubado, DPoP roubado, phishing de código de dispositivo, AiTM ou token passthrough em MCP. Ativa a mitigação e o ataque é neutralizado (a verde), mostrando porque falha. Os ataques ao próprio JWT (kid, jwk, typ…) estão no Laboratório de fluxos de autenticação.
No separador Comparar escolhes um fluxo de cada lado (ou um par predefinido) e são desenhados ao mesmo tempo. Os passos equivalentes alinham-se na mesma linha (mesmo /authorize, mesmo /token…) para que a diferença salte à vista, e um resumo lista que parâmetros e atores cada um adiciona. Clica em qualquer seta para a inspecionares.
O separador Ferramentas reúne utilitários práticos de OAuth, todos no navegador: gerar e verificar pares PKCE (S256), construir um URL /authorize pronto a copiar, analisar um URL de callback (extrai code/state ou os tokens do fragmento e deteta erros), auditar um pedido /authorize face à RFC 9700 e auditar os metadados do servidor (openid-configuration): que defesas anuncia e quais lhe faltam.
O utilizador inicia o login na aplicação cliente.