Grokseat

SAML: O que é e como funciona

Hugo Emmanoell
Hugo Emmanoell

Software Engineer

SAML é um método de login único muito utilizado por empresas e organizações governamentais que dispensa a necessidade do usuário criar várias senhas para acessar diferentes aplicações e sistemas. O uso desse protocolo facilita e otimiza o fluxo do trabalho no dia a dia, sem comprometer a segurança e a privacidade das operações.

Neste post, vamos explicar o que é SAML, como funciona, quais são as suas vantagens e quais são as diferenças entre ele e outras tecnologias de autenticação populares, como o OAuth.

O que é SAML?

SAML é a sigla de Security Assertion Markup Language (Linguagem de Marcação de Declaração de Segurança, em português). Trata-se de um protocolo cuja função é possibilitar que um provedor de identidade (IdP) envie as credenciais do usuário para um provedor de serviços (SP).

Esse método foi desenvolvido para que os usuários pudessem fazer um logon único (SSO), permitindo o acesso a diferentes sistemas.

Portanto, quando a pessoa liga a máquina e faz o login em um dos sistemas que utilizam esse protocolo, suas credenciais são enviadas automaticamente pelo provedor de identidade para o provedor de serviços, possibilitando o acesso sem a necessidade de novos logins.

Sempre que esse usuário quiser ou precisar acessar outra aplicação compatível com esse método, ele conseguirá fazê-lo sem informar novamente nome de usuário e senha.

Definição de Security Assertion Markup Language

A Linguagem de Marcação de Declaração de Segurança é um protocolo de segurança que utiliza XML (Extensible Markup Language) para possibilitar uma comunicação padronizada entre o provedor de identidade e o provedor de serviços.

Evolução e versões (SAML 1.1 vs SAML 2.0)

A primeira versão do Security Assertion Markup Language, conhecida como SAML 1.1, foi lançada em 2002 e se popularizou rapidamente por possibilitar o login único em diferentes softwares e sistemas.

No entanto, essa versão apresentava falhas de segurança, opções de autenticação limitadas e pouca flexibilidade. Para resolver esses problemas, em 2005 foi lançado o SAML 2.0, trazendo melhorias importantes:

  • Aumento da segurança
  • Envio de mensagens totalmente criptografadas
  • Compatibilidade com novas formas de conexão, como HTTP Redirect
  • Melhoria na padronização
  • Suporte a várias formas de autenticação
  • Maior flexibilidade

Principais componentes do SAML

Principais componentes do SAML

O SAML é composto basicamente por dois elementos que trabalham em conjunto para possibilitar o login único do usuário.

Provedor de Identidade (IdP)

O provedor de identidade é o sistema responsável por criar, armazenar e gerenciar identidades digitais, como as credenciais de login.

Provedor de Serviço (SP)

O SP é um site, sistema ou aplicação protegida por senha. Quando o usuário tenta acessá-lo, é necessária a autenticação realizada pelo IdP.

Asserção SAML: tipos

A asserção SAML é um arquivo em formato XML enviado pelo provedor de identidade ao provedor de serviços, contendo a autorização de acesso do usuário. Existem três tipos principais:

  • Autenticação: comprova a identidade do usuário, informa o tempo de login e o método de autenticação
  • Atributos: contém informações e credenciais específicas do usuário
  • Autorização: informa se o usuário está autorizado ou não a acessar o sistema

Como o SAML funciona no fluxo de autenticação federada

A autenticação federada permite que um usuário faça login em diferentes sistemas usando as mesmas credenciais.

Autenticação inicial do usuário

O processo começa quando o usuário tenta acessar um sistema compatível com autenticação federada, informando suas credenciais.

Troca de assertivas e permissões via XML

Após o login, o provedor de serviços solicita ao IdP a autorização de acesso. O provedor de identidade autentica o usuário e envia um documento XML ao SP com a permissão necessária.

Single Sign-On (SSO) usando SAML

Depois da autenticação inicial, o usuário pode acessar outros sistemas compatíveis sem precisar realizar novo login.

Vantagens de usar SAML

O SAML oferece benefícios tanto para as organizações quanto para os usuários.

Centralização de credenciais e gerenciamento de identidade

Com o SAML, o controle de acesso fica centralizado, facilitando o gerenciamento de identidades e aumentando a cibersegurança.

Experiência do usuário

Utilizar uma única credencial para vários sistemas reduz a necessidade de criar e memorizar diversas senhas, aumentando a produtividade.

Maior conformidade

A centralização das credenciais facilita auditorias e o cumprimento de normas como LGPD, HIPAA e ISO 27001.

Mais segurança

O uso de criptografia e a redução da quantidade de senhas diminuem o risco de ataques como phishing e vazamento de credenciais.

Interoperabilidade

O SAML permite que diferentes sistemas e aplicações operem em conjunto, mesmo sendo de organizações distintas.

SAML vs outras tecnologias de autenticação

SAML vs OAuth

Embora ambos tenham o objetivo de facilitar o acesso a sistemas, existem diferenças importantes:

  • SAML utiliza XML
  • OAuth utiliza JWT ou JSON

O OAuth permite login com contas de terceiros, como Google, Facebook e GitHub, sem compartilhar as credenciais diretamente com a aplicação.

OpenID Connect (OIDC)

O OpenID Connect é um protocolo baseado em OAuth que utiliza JWT e HTTPS. Ele envia um token de autenticação a cada login, podendo ou não ser criptografado.

Quando usar SAML ou outras opções

  • SAML: ideal para centralização de credenciais e registros de acesso
  • OIDC: mais indicado para aplicações web modernas e aplicativos móveis
  • OAuth: útil quando é necessário fornecer autorização e autenticação, especialmente em dispositivos móveis

Boas práticas e desafios na implementação de SAML

Segurança da asserção e certificados

Manter os certificados sempre atualizados é essencial para evitar falhas de autenticação.

Sincronização de tempo entre IdP e SP

Os relógios dos sistemas precisam estar sincronizados, pois o SP valida o timestamp da asserção recebida.

Configuração de fallback

É importante ter um plano de contingência para garantir o acesso caso o método principal de autenticação falhe.

Casos de uso práticos de SAML

Alguns exemplos de onde o SAML pode ser utilizado:

  • Aplicações SaaS (CRM, ERP, Salesforce, Microsoft Office)
  • Sistemas de infraestrutura de TI
  • Sistemas educacionais
  • Sistemas governamentais
  • Serviços em nuvem

Provedores populares

  • OneLogin
  • Microsoft Entra ID (antigo Azure AD)
  • Okta

Como implementar SAML no seu ambiente

Configuração do IdP e do SP

No IdP:

  • Acesse o console de administração
  • Crie um aplicativo para representar o sistema
  • Defina parâmetros do SAML (URLs, atributos do usuário)
  • Baixe o certificado de autenticação

No SP:

  • Acesse a seção de login único
  • Insira as URLs de login e logout do IdP
  • Importe o certificado do IdP
  • Configure as credenciais do provedor de autenticação

Validação, testes e monitoramento

Antes de liberar o SAML para todos os usuários, é fundamental realizar testes para garantir que tudo funcione corretamente.

Conclusão

O logon único por meio do SAML é uma excelente forma de centralizar e gerenciar credenciais, facilitar o acesso aos sistemas e reduzir riscos de segurança. Implementar esse protocolo pode aumentar significativamente a eficiência operacional e a cibersegurança da sua organização.

Pronto para começar a jornada da inovação?