Decodificador de respostas SAML

Cole XML, Base64 ou Base64 codificado em URL para inspecionar a asserção. A ferramenta mostra a estrutura e as assinaturas presentes, mas não as valida.

Funciona localmente no seu navegador
SAML é decodificado só neste navegador. Remova nomes, e-mails, sessões e atributos de produção antes de compartilhar.
SAMLResponse ou XML da asserçãoBase64, Base64 codificado em URL ou XML
Atributos SAML
AtributoValor
Nenhum atributo inspecionado.
XML decodificado

Decodifique a estrutura e valide no servidor

O inspetor mostra XML e assinaturas, mas não valida assinatura XML, confiança, replay, destinatário ou metadados do IdP.

Como decodificar uma resposta SAML e ler os campos da asserção

O inspetor aceita uma SAMLResponse do jeito que ela chega — Base64, Base64 codificado em URL ou o documento <samlp:Response> bruto — e expõe os campos internos: código de status, emissor, NameID, audience, destination, InResponseTo, os identificadores, a janela de Conditions e cada valor de atributo. Carregar exemplo preenche o campo com um modelo gerado na página e o decodifica.

A decodificação acontece no navegador. Numa sessão medida, nenhuma requisição saiu da página além da análise do próprio site, então uma resposta capturada pode ser colada como está. Ainda assim, ela carrega nomes, endereços e identificadores de sessão reais: remova-os antes de compartilhar um relatório.

  1. Cole uma SAMLResponse (Base64 ou Base64 codificado em URL) ou um documento <samlp:Response> inteiro; Carregar exemplo parte de um modelo com a janela de tempo centrada no minuto atual.
  2. Pressione Decodificar e inspecionar. Os contadores trazem asserções, assinaturas, atributos e caracteres, e o resumo lista status, emissor, sujeito, audience, destination, os dois identificadores, InResponseTo e os dois valores de tempo.
  3. Leia a lista de achados: ela aponta assinatura ausente ou presente, janela de Conditions expirada ou ainda não válida, Audience ou Destination ausentes e status diferente de Success.
  4. Confira a tabela de atributos para os dados que um provedor mapearia e use Copiar relatório ou o botão Copiar acima do XML decodificado.
  5. Pressione Limpar antes da próxima resposta para que o painel anterior não fique na tela.

O que o inspetor lê e o que ele apenas relata

O que é lido, e em que ordem

O decodificador lê o primeiro elemento Response e a primeira Assertion dentro dele. Emissor, StatusCode, NameID, audience, destination, InResponseTo, identificadores, Conditions e AttributeStatement vêm desse par. Com duas asserções numa resposta, o contador mostra 2, mas o resumo e a tabela de atributos descrevem apenas a primeira; a janela SubjectConfirmationData não é interpretada.

A entrada é normalizada antes de decodificar: espaços e quebras de linha são descartados, caracteres URL-safe são aceitos, o preenchimento (=) ausente é restaurado e uma string codificada em URL é decodificada em percentual primeiro. O XML bruto é usado como está. Qualquer outro caso é recusado com um motivo: entrada vazia, codificação percentual quebrada, Base64 inválido ou a posição do analisador XML, como «line 1 at column 16: Element samlp:Response prefix is unbound».

Tempo e assinatura

A janela de Conditions é comparada apenas com o relógio do navegador: um documento com NotOnOrAfter no passado é marcado como expirado, um com NotBefore no futuro como ainda não válido, e uma janela aberta gera a linha neutra sobre o relógio do navegador. A comparação é auxílio de leitura, não verificação de replay.

Assinaturas são contadas, não verificadas. Zero elementos ds:Signature gera a linha de perigo; um ou dois geram a nota de que a validade criptográfica não foi verificada. Nada aqui valida certificado, cadeia de confiança, metadados do IdP, vínculo de destinatário ou cache de replay.

Limites medidos e privacidade

Um valor de atributo de 1 MB foi decodificado em cerca de 0,3 segundo numa medição, e os contadores descrevem o documento decodificado por último: uma decodificação que falha esvazia resumo, achados, atributos e XML em vez de deixar o resultado anterior ao lado do erro. Copiar sem resultado responde com uma frase em vez de uma área de transferência silenciosa.

A página funciona offline depois de carregada e a entrada nunca sai do navegador. Trate o relatório decodificado como a resposta de origem: ele pode conter nomes, e-mails, grupos e identificadores de sessão.

Ferramentas recentes: