SAML é o padrão técnico utilizado pelos fornecedores de SSO para comunicar que um usuário está autenticado.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
A Linguagem de Marcação para Asserção de Segurança, ou SAML, é uma forma padronizada de informar aos aplicativos e serviços externos que um usuário é quem ele diz ser. A SAML possibilita a tecnologia de logon único (SSO) ao fornecer uma maneira de autenticar um usuário uma única vez e, em seguida, comunicar essa autenticação a vários aplicativos. A versão mais atual da SAML é a SAML 2.0.
Pense na autenticação de SAML como um cartão de identificação: uma maneira curta e padronizada de mostrar quem é alguém. Em vez de, digamos, realizar uma série de testes de DNA para confirmar a identidade de alguém, é possível apenas dar uma olhada em sua carteira de identidade.
Em computação e rede, um dos maiores desafios é fazer com que sistemas e dispositivos construídos por diferentes fornecedores para diferentes propósitos funcionem juntos. Isso é chamado de "interoperabilidade": a capacidade de diferentes máquinas interagirem umas com as outras, apesar de suas diferentes especificações técnicas. A SAML é um padrão interoperável — é uma maneira amplamente aceita de comunicar a identidade de um usuário para provedores de serviços em nuvem.
O login único (SSO) é uma maneira de os usuários serem autenticados para vários aplicativos e serviços de uma só vez. Com o SSO, um usuário faz login em uma única tela de login e pode usar vários aplicativos. Os usuários não precisam confirmar sua identidade em cada serviço que usam.
Para que isso ocorra, o sistema de SSO deve se comunicar com todos os aplicativos externos para informar que o usuário está conectado — é onde a SAML entra em ação.
Um processo normal de autenticação de SSO envolve estas três partes:
Principal/titular: é quase sempre um usuário humano que está tentando acessar um aplicativo hospedado na nuvem.
Provedor de identidade: um provedor de identidade (IdP) é um serviço de software em nuvem que armazena e confirma a identidade do usuário, geralmente por meio de um processo de login. Essencialmente, o papel de um IdP é dizer: "Conheço essa pessoa e aqui está o que ela pode fazer". Um sistema de SSO pode, de fato, ser separado do provedor de identidade, mas nesses casos o SSO atua, essencialmente, como um representante do IdP e portanto, para todos os efeitos, os dois são a mesma coisa em um fluxo de trabalho de SAML.
Provedor de serviços: esse é o aplicativo ou serviço hospedado em nuvem que o usuário deseja usar. Exemplos comuns incluem plataformas de e-mail em nuvem, como o Gmail e o Microsoft Office 365, serviços de armazenamento em nuvem como o Google Drive e a AWS S3 e aplicativos de comunicação, como o Slack e o Skype. Normalmente, um usuário simplesmente faria login nesses serviços diretamente, mas, quando um SSO é usado, o usuário faz login no SSO e a SAML é usada para fornecer acesso no lugar de um login direto.
Veja como funciona um fluxo típico:
O principal/titular faz uma solicitação ao provedor de serviços. O provedor de serviços então solicita a autenticação do provedor de identidade. O provedor de identidade envia uma asserção SAML ao provedor de serviços e a seguir o provedor de serviços pode enviar uma resposta ao principal.
Se o principal (o usuário) ainda não estiver conectado, o provedor de identidade poderá solicitar que ele efetue login antes de enviar uma declaração SAML.
Uma declaração da SAML é a mensagem que diz a um prestador de serviços que um usuário está conectado. As declarações SAML contêm todas as informações necessárias para que um provedor de serviços confirme a identidade do usuário, incluindo a fonte da declaração, o momento em que ela foi emitida e as condições que tornam a declaração válida.
Pense em uma declaração SAML como o conteúdo de uma referência para um candidato a emprego: a pessoa que fornece a referência diz quando e por quanto tempo trabalhou com o candidato, qual era sua função e sua opinião sobre o candidato. Com base nessa referência, uma empresa pode tomar uma decisão sobre a contratação do candidato, assim como um aplicativo SaaS ou serviço em nuvem pode permitir ou negar o acesso do usuário com base em uma declaração SAML.
A SAML 2.0 é a versão moderna da SAML e está em uso desde 2005. A SAML 2.0 combinou várias versões da SAML que estavam em uso anteriormente. Muitos sistemas são compatíveis com versões anteriores, como a SAML 1.1, para compatibilidade com versões anteriores, mas a SAML 2.0 é o padrão moderno.
A SAML é uma tecnologia para autenticação do usuário, não uma autorização de usuário, e esta é uma distinção importante. A autorização de usuário é uma área separada de gerenciamento de identidade e acesso.
A autenticação se refere à identidade de um usuário: quem ele é e se sua identidade foi confirmada por um processo de login.
A autorização se refere aos privilégios ou permissões de um usuário: especificamente, que ações ele está autorizado a realizar dentro dos sistemas de uma empresa.
Pense na diferença entre autenticação e autorização assim: imagine que a Alice vai a um festival de música. Na entrada do festival, apresenta o seu bilhete e um documento de identificação adicional para provar que tem o direito de possuir o bilhete. Ao fazer isso, ela tem permissão para entrar no festival. Ela foi autenticada.
No entanto, só porque a Alice está dentro do festival não significa que ela pode ir a qualquer lugar e fazer o que quiser. Ela pode assistir as apresentações do festival, mas não pode subir no palco e se apresentar, nem pode ir aos bastidores e interagir com os artistas — porque não está autorizada a fazê-lo. Se ela tivesse comprado passes para os bastidores, ou se ela fosse uma artista além de ser uma participante, ela teria uma quantidade maior de autorizações.
As tecnologias de gerenciamento de acesso lidam com a autorização do usuário. As plataformas de gerenciamento de acesso usam vários padrões de autorização diferentes (um dos quais é o OAuth), mas não a SAML.
O Cloudflare Zero Trust é um exemplo de solução de gerenciamento de acesso. O Cloudflare Zero Trust permite que as empresas gerenciem o acesso dos usuários a recursos e dados internos sem o uso de uma rede privada virtual (VPN). O recurso se integra facilmente com provedores de SSO para oferecer tanto autorização quanto autenticação de usuários.