0Pricing
Cyber Security Academy · Aula

SAML e federação

Logon único empresarial.

SAML e federação é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

O que é SAML

SAML (Linguagem de Marcação de Asserções de Segurança) é um padrão baseado em XML para trocar dados de autenticação e autorização, predominante no SSO empresarial.

  • Ele permite que um provedor de identidade corporativo ateste a identidade de um usuário para muitos aplicativos.
  • O SAML 2.0 é anterior ao OIDC e continua profundamente enraizado na identidade B2B e da força de trabalho.

Compreender o SAML é essencial para proteger a federação empresarial, na qual uma única falha de confiança expõe todos os aplicativos conectados.

Funções de IdP e SP

A federação SAML tem duas partes principais.

  • O Provedor de identidade (IdP) autentica o usuário e emite asserções (Okta, Entra ID, Ping).
  • O Provedor de serviços (SP) é o aplicativo que confia no IdP e concede acesso.

A confiança é estabelecida fora de banda pela troca de metadados, incluindo certificados de assinatura e URLs de pontos de acesso.

IdP  -> authenticates user, signs assertion
SP   -> consumes assertion, grants access
Metadata exchange establishes trust (certs, ACS URLs)

A asserção SAML

O artefato central é a asserção, um documento XML que declara que o IdP autenticou um sujeito.

  • O Sujeito identifica o usuário (NameID).
  • As Condições definem a janela de validade e o público pretendido.
  • O AuthnStatement registra como e quando a autenticação ocorreu.
  • O AttributeStatement transporta funções, e-mail e declarações de grupos.
<saml:Assertion>
  <saml:Subject><saml:NameID>user@corp</saml:NameID></saml:Subject>
  <saml:Conditions NotOnOrAfter="2026-06-04T10:05:00Z"
     AudienceRestriction="https://sp.example"/>
  <saml:AuthnStatement .../>
</saml:Assertion>

Fluxo de SSO iniciado pelo SP

O padrão mais comum é o SSO iniciado pelo SP.

  • O usuário acessa o SP, que gera uma AuthnRequest e redireciona para o IdP.
  • O IdP autentica o usuário e envia por POST uma Response assinada de volta ao Serviço Consumidor de Asserções (ACS) do SP.
  • O SP valida a asserção e cria uma sessão local.
1. SP -> AuthnRequest -> IdP (redirect)
2. user authenticates at IdP
3. IdP -> signed SAMLResponse -> SP ACS (HTTP POST)
4. SP validates -> session

Assinaturas XML sustentam a confiança

A segurança do SAML se baseia em assinaturas digitais XML. O IdP assina a asserção (e/ou a resposta) com sua chave privada; o SP verifica usando o certificado confiável.

  • Assine a asserção em si, não apenas a resposta externa.
  • Verifique a assinatura usando um certificado do IdP fixado proveniente dos metadados, não um certificado incorporado à mensagem.

A maioria dos ataques SAML tem como alvo a lógica de validação de assinaturas.

Envelopamento de assinatura XML (XSW)

O envelopamento de assinatura XML é a classe de ataque de assinatura do SAML. O invasor mantém um elemento validamente assinado, mas adiciona uma segunda asserção forjada que a lógica do aplicativo realmente lê.

  • A assinatura continua sendo verificada contra o fragmento original.
  • Mas a lógica de negócio processa a asserção injetada e não assinada.

Mitigação: use uma biblioteca SAML reforçada, valide se o elemento assinado é o que será consumido e rejeite documentos com várias asserções ou asserções ambíguas.

Document after XSW:
  <Response>
    <Assertion id="evil">attacker claims</Assertion>  // read by app
    <Assertion id="orig" SIGNED>real user</Assertion>  // sig valid here
  </Response>

Restrições de público e destinatário

Uma asserção deve estar vinculada ao SP pretendido. O SAML fornece restrições explícitas.

  • AudienceRestriction nomeia o ID da entidade do SP para o qual a asserção é válida.
  • O destinatário em SubjectConfirmation deve corresponder à URL do ACS.

O SP deve impor essas restrições. Ignorar a verificação do público permite que uma asserção criada para um aplicativo seja repetida em outro.

Proteções contra repetição e sincronização temporal

As asserções são credenciais de curta duração e uso único. Os SPs devem impor isso.

  • Respeite NotBefore e NotOnOrAfter com um desvio mínimo do relógio.
  • Acompanhe o ID da asserção e rejeite qualquer reutilização durante a janela de validade.
  • Exija TLS no ponto de acesso do ACS.

Sem rastrear repetições, uma asserção capturada pode ser enviada novamente antes de expirar.

SP checks:
  now in [NotBefore, NotOnOrAfter]  (+- small skew)
  assertion.ID not seen before -> store + reject reuse

Federação e cadeias de confiança

Federação amplia o SSO entre limites organizacionais, às vezes por meio de intermediários que traduzem entre protocolos.

  • Cada vínculo de confiança é um possível ponto fraco; um provedor de identidade comprometido pode se passar por qualquer usuário.
  • Intermediários de identidade podem conectar SAML e OIDC, exigindo um mapeamento cuidadoso das declarações.

Aplique o princípio do menor privilégio ao mapeamento de atributos e monitore novos registros inesperados de SP.

Fraquezas comuns do SAML

Vale a pena auditar os seguintes modos recorrentes de falha do SAML:

  • Assinatura não verificada ou resposta assinada, mas asserção não assinada.
  • Vulnerabilidade a encapsulamento de assinatura XML.
  • Ausência de verificações de público-alvo/destinatário.
  • Ausência de proteção contra repetição ou janelas de validade excessivamente longas.
  • Análise de Entidade Externa XML (XXE) no SP.
  • Confiança no certificado incorporado à mensagem em vez de nos metadados fixados.
Disable external entities in the XML parser:
  parser.setFeature(
    "http://apache.org/xml/features/disallow-doctype-decl", true)

SAML vs OIDC

Ambos oferecem SSO, mas diferem em sua concepção.

  • SAML usa XML, vinculações de POST/redirecionamento no navegador, é comum em ambientes corporativos e conta com ferramentas maduras.
  • OIDC usa JSON/JWT, é compatível com REST e mais adequado para dispositivos móveis e SPAs.

Muitas organizações usam ambos. Os responsáveis pela defesa devem conhecer as regras de validação de asserções do protocolo usado por cada aplicativo, pois a superfície de ataque é diferente.

Verificação rápida: derrotando XSW

Selecione a melhor defesa para o ataque descrito.

Recapitulação: SAML e federação

Principais conclusões:

  • SAML é um SSO empresarial baseado em XML entre um provedor de identidade e um SP, usando asserções assinadas.
  • A segurança depende da validação da assinatura XML correta com base em um certificado fixado.
  • Proteja-se contra encapsulamento de assinatura XML, repetição e XXE.
  • Sempre imponha restrições de público-alvo/destinatário e janelas de validade.
  • A federação amplia a confiança, mas multiplica o raio de impacto de um provedor de identidade comprometido.

Perguntas Frequentes

A aula “SAML e federação” é grátis?

Sim — o texto completo de “SAML e federação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “SAML e federação”?

Logon único empresarial. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “SAML e federação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fluxos do OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML e federação
  4. Ataques a tokens e reforço de segurança
← Voltar para Cyber Security Academy