1001Ferramentas
📜 Segurança

Decodificador de SAML Response base64

Decodifica e indenta XML de SAMLResponse base64+inflate para inspeção — útil para debug de SSO.

Cole o valor exato do campo SAMLResponse (sem URL-encode). Suporte a inflate raw é limitado — para HTTP-Redirect binding decode manualmente.

Ler a assertion antes de culpar o IdP

O login por SSO falhou, o log do service provider diz apenas invalid assertion, e o que você tem em mãos é um bloco base64 gigante capturado no DevTools ou no SAML tracer. Sem ver o XML por dentro não dá para saber se o problema é relógio fora de hora, audience errada ou um atributo que o IdP parou de mandar. O primeiro passo é sempre decodificar e olhar.

A ferramenta decodifica o base64 e reindenta o XML. Isso cobre o POST binding, em que o SAMLResponse viaja como XML puro em base64. No HTTP-Redirect binding o valor é comprimido com deflate raw antes do base64, e aí ela não desempacota: detecta que os bytes não começam com sinal de menor, avisa e mostra o prefixo em hexadecimal. Apesar do que a descrição sugere, não há inflate embutido. Remova também o URL-encode antes de colar.

Com o XML na tela, comece pelo NotOnOrAfter, causa número um de falha quando os relógios divergem, e depois confira Issuer e Subject: quando esses campos existem, a ferramenta os resume em uma linha no topo. Ela não valida assinatura nem certificado, então XML bem formatado não quer dizer assertion aceitável. Detalhe de exibição: o decode lê os bytes como latin-1, e nomes com acento saem trocados na tela mesmo com o XML íntegro. Nada é enviado, mas assertion é credencial: feche a aba depois.

Perguntas frequentes

Funciona com o SAMLRequest do Redirect binding?
Não diretamente. Aquele valor vai comprimido com deflate raw; descomprima antes e cole o XML resultante. A ferramenta só mostra os primeiros bytes em hex quando detecta esse caso.
Ela confere a assinatura da assertion?
Não. É um visualizador. Validação de assinatura, de certificado e de audience continua sendo trabalho do service provider.
Por que os acentos aparecem errados?
A decodificação lê byte a byte em latin-1, então sequências UTF-8 viram caracteres estranhos. Os bytes estão corretos; apenas a renderização na tela é que confunde.

Ferramentas Relacionadas