O que é Security Assertion Markup Language (SAML)?

Security Assertion Markup Language (SAML) é um padrão aberto baseado em XML que permite que um provedor de identidade (IdP) transmita com segurança os dados de autenticação e autorização de um usuário a um provedor de serviços (SP). Em termos simples, o SAML é uma das principais tecnologias que permitem que os usuários façam login uma única vez e acessem vários aplicativos sem inserir novamente as credenciais.

Para que o SAML é usado?

O SAML normalmente é utilizado sempre que os usuários precisam de acesso seguro e otimizado a vários aplicativos. Os casos de uso mais comuns são:

  • Login único (SSO): um único login concede acesso a vários aplicativos, eliminando a necessidade de reinserir credenciais para cada serviço.
  • Identidade federada: o SAML permite que uma organização confie em identidades emitidas por uma empresa parceira ou controladora, para que os usuários de um domínio confiável obtenham acesso sem precisar de contas separadas.
  • Gerenciamento de acesso empresarial: as equipes de TI obtêm controle central sobre quem pode acessar quais aplicativos ao rotear logins por meio de um único IdP, ajudando a aplicar políticas consistentes, como a autenticação multifator (MFA), em todos os lugares ao mesmo tempo.

Em cada caso de uso, o IdP emite uma asserção XML assinada que é transmitida para o SP por meio do navegador do usuário, e é assim que os dados de autenticação são transferidos com segurança sem que o usuário precise fazer login novamente.

Componentes principais do SAML

As trocas do SAML geralmente envolvem a colaboração de várias partes. Aqui estão alguns termos principais que tornam o processo de autenticação muito mais fácil de acompanhar:

  • Principal (sujeito): o usuário que está sendo autenticado, principalmente uma pessoa tentando acessar um aplicativo específico.
  • Provedor de identidade (IdP): o sistema que verifica o usuário e emite a asserção, como o Microsoft Entra ID ou o Okta, para permitir que o login em si ocorra.
  • Provedor de serviços (SP): o aplicativo ou site que o usuário deseja acessar, que depende do IdP para confirmar a identidade do usuário em vez de gerenciar credenciais de login.
  • Asserção SAML: a declaração XML assinada que o IdP envia ao SP, contendo os dados de identidade e autorização do usuário (veja mais abaixo).
  • Metadados: a configuração que ambas as partes trocam antecipadamente — endpoints, certificados etc. — para demonstrar que o IdP e o SP sabem como confiar um no outro e se comunicar entre si.
  • Certificado de assinatura: o certificado digital que contém a chave pública usada pelo SP para verificar a assinatura da asserção, estabelecendo uma relação de confiança entre o SP e o IdP para confirmar que a asserção não foi alterada durante a transmissão.

Como funciona a autenticação SAML?

A autenticação SAML funciona transmitindo uma asserção assinada do IdP para o SP, confirmando que o usuário é quem afirma ser. O fluxo iniciado pelo SP é a versão mais comum da autenticação SAML e começa quando o usuário acessa o site ou aplicativo que deseja usar. Se o aplicativo depender de um IdP externo para login, ele redirecionará o navegador do usuário ao IdP com uma solicitação de autenticação SAML. Em seguida, o IdP verifica as credenciais do usuário para autenticá-lo; se o usuário já tiver uma sessão ativa, essa etapa será ignorada. Quando o IdP estiver satisfeito, ele gerará uma asserção assinada e a enviará de volta pelo navegador ao SP. Por fim, o SP valida a assinatura da asserção, confia nela e permite que o usuário entre sem a necessidade de um login separado. Embora a autenticação iniciada pelo SP seja a mais comum para SAML, também existe um fluxo iniciado pelo IdP, em que o usuário começa pelo IdP, por exemplo, clicando em um bloco de aplicativo em um painel da empresa.

O que é uma asserção SAML?

Uma asserção SAML é o documento XML assinado que o IdP envia ao SP para atestar um usuário. Cada asserção pode conter uma ou várias declarações, que são as informações reais que o SP usa para decidir se o acesso deve ser concedido ao usuário. Existem três tipos de declarações:

  • Declarações de autenticação confirmam quem é o usuário, quando ele fez login e como (ou seja, se a MFA foi usada).
  • Declarações de atributos contêm informações adicionais sobre o usuário, como sua função ou departamento. O SP pode usar esses atributos para decidir o que o usuário pode ver ou fazer.
  • Declarações de decisão de autorização indicam se o usuário tem acesso concedido a determinado recurso. Esse tipo de declaração é raramente usado, já que autorizações mais complexas normalmente são gerenciadas pela eXtensible Access Control Markup Language (XACML).

SAML x outros padrões de autenticação

O SAML costuma estar associado a outros protocolos de identidade e acesso que executam funções relacionadas, mas distintas. A principal finalidade do SAML é gerenciar a autenticação, comprovando quem é o usuário e se ele tem permissão para entrar em um site ou aplicativo. Sua autenticação é o que o diferencia do OAuth, um protocolo de autorização que concede a um aplicativo permissão para acessar recursos específicos. SAML e OAuth são complementares, em vez de concorrentes, já que o SAML confirma a identidade e o OAuth concede o acesso.

O OpenID Connect (OIDC) é mais semelhante ao SAML, pois ambos autenticam usuários e permitem SSO. No entanto, o OIDC é uma camada de autenticação baseada no OAuth que usa JSON Web Tokens (JWTs), adequados para aplicativos web e móveis modernos, enquanto a abordagem do SAML baseada em XML ainda é amplamente usada para SSO web empresarial, embora o OIDC seja cada vez mais o padrão para novos aplicativos. Em comparação, o Lightweight Directory Access Protocol (LDAP) é um protocolo de diretório mais antigo, anterior à nuvem e projetado para ambientes locais. Em vez de competir com o SAML, o LDAP geralmente fica por trás de um IdP SAML como fonte das credenciais dos usuários.

SAMLOAuthOIDCLDAP
O que ele fazAutenticação e SSOAutorizaçãoAutenticação (baseada no OAuth)Acesso ao diretório
FormatoAsserção XML assinadaToken de acessoJWTConsultas de diretório
Mais adequado paraSSO de aplicativo web empresarialAcesso delegado a APIsAplicativos móveis e nativos da nuvemDiretórios locais

SAML

O que ele fazAutenticação e SSO
FormatoAsserção XML assinada
Mais adequado paraSSO de aplicativo web empresarial

OAuth

O que ele fazAutorização
FormatoToken de acesso
Mais adequado paraAcesso delegado a APIs

OIDC

O que ele fazAutenticação (baseada no OAuth)
FormatoJWT
Mais adequado paraAplicativos móveis e nativos da nuvem

LDAP

O que ele fazAcesso ao diretório
FormatoConsultas de diretório
Mais adequado paraDiretórios locais

Prós e contras do SAML

O SAML oferece simultaneamente muitas vantagens e desvantagens que vale a pena entender antes da adoção.

Vantagens do SAML

O maior benefício do SAML é minimizar o número de senhas que os usuários precisam gerenciar. Com um único login que concede acesso a vários aplicativos, os usuários têm menos credenciais para lembrar, minimizando a superfície de ataque e reduzindo o risco de roubo de credenciais. Como a autenticação é realizada por meio de um único IdP, as organizações também ganham controle centralizado de políticas; as equipes de segurança podem aplicar MFA de maneira consistente em todos os aplicativos conectados a partir de um único local. Essa centralização traz resultados, reduzindo os custos do help desk ao diminuir as solicitações de redefinição de senha que geralmente sobrecarregam o suporte de TI.

Desvantagens do SAML

As vantagens do SAML só se apresentam quando a linguagem de marcação é configurada corretamente. Ele depende de XML Signature e XML Encryption para a integridade e a privacidade das mensagens, juntamente com o TLS para a segurança do transporte. Uma das vulnerabilidades mais comuns do SAML está relacionada a configurações incorretas, como a falha em validar assinaturas adequadamente. Seu modelo baseado em XML é menos flexível do que os formatos modernos de token, tornando a implementação do SAML um desafio para aplicativos móveis e de página única.

Retirar consentimento para cookiesValorizamos sua privacidade

Usamos cookies em nosso site para oferecer a melhor experiência de navegação, exibir anúncios personalizados sobre nossos produtos e conteúdo e analisar o tráfego do site. Para saber mais, consulte nossa Política de privacidade.

Registre-se para uma avaliação gratuita

Compre agora