Neste artigo, você aprenderá o que é SAML, como ele funciona e como configurar um provedor de identidade SAML usando Auth0.
O que é SAML
Antes de entrar no jargão técnico, vejamos um exemplo que demonstra o que é SAML e por que ele é benéfico.
Você acabou de começar a trabalhar em uma nova empresa, a Wizova. Eles forneceram a você um endereço de e-mail profissional e acesso a um painel. Depois de entrar neste painel, você verá os ícones de todos os serviços externos que a empresa usa: Salesforce, Expensify, Jira, AWS e muito mais.
Você clica no ícone da Salesforce, alguma mágica acontece em segundo plano e, antes que você perceba, você se conectou à Salesforce sem inserir nenhuma credencial!
Como você deve ter adivinhado, a "mágica" era na verdade o SAML em ação. Então, o que está acontecendo aqui?
SAML significa Security Assertion Markup Language (Linguagem de Marcação de Asserção de Segurança em português). É um padrão aberto baseado em XML para transferência de dados de identidade entre duas partes: um provedor de identidade (Identity Provider - IdP) e um provedor de serviços (Service Provider - SP).
O provedor de Identidade — Executa a autenticação e passa a identidade do usuário e o nível de autorização para o provedor de serviços.
O provedor de serviços — Confia no provedor de identidade e autoriza o usuário fornecido a acessar o recurso solicitado.
No cenário acima, o provedor de identidade seria o IdP que a Wizova usa, a Auth0. O provedor de serviços seria a Salesforce. Um funcionário Wizova entra no painel da Wizova com a Auth0. Clica no ícone da Salesforce e a Salesforce reconhece que o usuário deseja fazer login via SAML. A Salesforce envia o funcionário de volta para a Auth0 com uma solicitação SAML requerendo que a Auth0 autentique o usuário. Como o funcionário já foi autenticado com a Auth0, a Auth0 verifica a sessão e envia o usuário de volta à Salesforce com uma resposta SAML. A Salesforce verifica essa resposta e, se parecer boa, o funcionário recebe acesso!
Benefícios da autenticação SAML
- Experiência do usuário aprimorada — Os usuários só precisam fazer login uma vez para acessar vários provedores de serviços. Isso permite um processo de autenticação mais rápido e menos expectativa do usuário de lembrar várias credenciais de login para cada aplicação. No exemplo anterior, esse usuário poderia ter clicado em qualquer um dos outros ícones em seu painel e feito login sem precisar inserir mais credenciais!
- Maior segurança — o SAML fornece um único ponto de autenticação, que acontece em um provedor de identidade seguro. Em seguida, o SAML transfere as informações de identidade para os provedores de serviço. Essa forma de autenticação garante que as credenciais sejam enviadas apenas para o provedor de identidade diretamente.
- Acoplamento solto de diretórios — SAML não exige que as informações do usuário sejam mantidas e sincronizadas entre os diretórios.
- Custos reduzidos para provedores de serviços — Com o SAML, você não precisa manter as informações da conta em vários serviços. O provedor de identidade carrega esse ônus.
Como Funciona a Autenticação SAML?
Agora que você viu a visão geral de alto nível de como a autenticação SAML funciona, vamos ver alguns dos detalhes técnicos para entender como tudo é feito.
A autenticação de login único SAML geralmente envolve um provedor de serviços e um provedor de identidade. O fluxo do processo geralmente envolve os estágios de estabelecimento de confiança e o fluxo de autenticação.
Considere este exemplo:
- Nosso provedor de identidade é a Auth0
- Nosso provedor de serviços é um serviço fictício, Zagadat
Observação: o provedor de identidade pode ser qualquer plataforma de gerenciamento de identidade.
Agora, um usuário está tentando obter acesso ao Zagadat usando a autenticação SAML.
Este é o fluxo do processo:
- O usuário tenta fazer login no Zagadat a partir de um navegador.
- O Zagadat responde gerando uma requisição SAML.
- O navegador redireciona o usuário para um URL de login único (Single Sign-On), na Auth0
- A Auth0 analisa a requisição SAML fazendo o seu parse e autentica o usuário. Isso pode acontecer com nome de usuário e senha ou até mesmo login de uma rede social. Se o usuário já estiver autenticado na Auth0, esta etapa será ignorada. Depois que o usuário é autenticado, a Auth0 gera uma resposta SAML.
- Auth0 retorna a resposta SAML codificada para o navegador.
- O navegador envia a resposta SAML ao Zagadat para verificação.
- Se a verificação for bem-sucedida, o usuário será conectado ao Zagadat e terá acesso aos recursos que está autorizado a visualizar/modificar.
Diagrama de Fluxo do Processo SAML
Observe os atributos destacados na requisição e resposta SAML. Aqui está um glossário desses parâmetros:
- ID: Número recém-gerado para identificação
- IssueInstant: Registro da data/hora (timestamp) para indicar a hora em que o ID foi gerado
- AssertionConsumerServiceURL: a interface de URL SAML do provedor de serviços, onde o provedor de identidade envia o token de autenticação.
- Issuer: O EntityID (identificador exclusivo) do provedor de serviços
- InResponseTo: o ID da requisição SAML à qual esta resposta pertence
- Recipient: O EntityID (identificador exclusivo) do provedor de serviços
Autenticação SAML com Auth0
Quando se trata de implementar SAML, a Auth0 é extremamente extensível e capaz de lidar com vários cenários:
- A Auth0 como provedor de identidade
- A Auth0 como provedor de serviços
- A Auth0 como provedor de identidade e provedor de serviços
Neste exemplo, você aprenderá como implementar a autenticação SAML usando a Auth0 como o provedor de identidade.
“Ao implementar o SAML, a Auth0 pode servir como provedor de identidade, provedor de serviços ou ambos!”
Tweet This
Pré-requisitos
- Uma conta Auth0 — Se você ainda não tem uma, pode se inscrever para uma conta gratuita aqui.
- Uma conta com um provedor de serviços compatível com SAML — Geralmente, a maioria dos provedores de serviços exige que você tenha uma conta profissional ou algum plano pago para configurar o SAML. Se você não tiver uma conta para testar, também poderá usar o SAMLTest para garantir que seu provedor de identidade Auth0 esteja configurado corretamente.
A imagem a seguir mostra uma lista de provedores de serviços com suporte da Auth0, mas você também tem a opção de configurar um provedor de serviços personalizado no painel.
Configure o provedor de serviços
Este tutorial usará o Zendesk como provedor de serviços, mas você pode acompanhar com qualquer provedor de serviços de sua escolha.
Para configurar o provedor de serviços escolhido, execute as seguintes etapas no painel da Auth0:
- Clique em SSO Integrations (Integrações SSO) na barra lateral
- Clique no botão vermelho no canto superior direito "Create SSO Integration" (Criar integração SSO)
- Selecione o provedor de serviços que você gostaria de configurar
- Digite o nome e/ou qualquer informação de identificação necessária e pressione "Save" para salvar
- Siga as instruções no Tutorial do seu provedor de serviços específico.
Observação: esta etapa exigirá que você insira alguns valores no lado do provedor de serviços.
Aqui está o que acontece quando você escolhe o Zendesk.
Primeiro, acesse o "Admin Center" no painel do Zendesk e clique em "Security". Em seguida, clique em "SSO" e você encontrará as configurações do SAML. É aqui que você vai colar esses valores do painel Auth0.
Depois que esses valores forem copiados, a última etapa é habilitar a autenticação externa para os usuários que devem poder fazer login com SAML. O Zendesk permite que você habilite isso para usuários finais, usuários da equipe ou ambos.
Experimente
Agora que tudo está configurado nas duas pontas, é hora de testar! Veja o vídeo abaixo para uma demonstração de como deve ser o fluxo final.
https://cdn.auth0.com/blog/what-is-saml/zendesk-auth0-demo.mp4
Como você pode ver, assim que acessar a URL do Zendesk, você será redirecionado de volta à Auth0, que é o provedor de identidade, para fazer login. Uma vez que a autenticação for bem sucedida, a Auth0 envia essas informações de volta ao Zendesk. O Zendesk verifica a resposta, determina se ela é válida e concede a você acesso ao painel do Zendesk.
Observação: você deve ter notado que, no vídeo, a usuária fez login com o SSO da Google. Isso pode ser habilitado no painel da Auth0. Você verá como implementar isso na próxima seção.
Se você voltar ao seu painel Auth0, verá um registro da usuária que acabou de fazer login!
Observação: se você quiser depurar uma resposta SAML, confira http://samltool.io. Essa ferramenta pode decodificar uma resposta SAML e serve como um recurso de depuração útil.
Habilite o SSO (opcional)
Agora que seu provedor de serviços está configurado com a Auth0, seus usuários podem entrar usando um e-mail e senha por padrão. Um caso de uso comum, especialmente com autenticação SAML, é fazer com que os usuários entrem usando login único (SSO) com um provedor social.
A Auth0 oferece suporte a vários provedores de identidade social que você pode ativar com o clique de um botão.
No seu painel, na barra lateral clique em "Connections" e depois em "Social". Selecione o provedor que gostaria de usar e preencha os detalhes necessários para esse provedor.
Nota: Certifique-se de usar suas próprias chaves para o provedor selecionado. Você pode usar as chaves padrão da pessoa desenvolvedora da Auth0 para teste, mas elas não devem ser usadas em produção.
Depois de selecionar as conexões com redes sociais que deseja usar, volte para o provedor de serviço que você configurou em "SSO Integrations". Selecione o provedor de serviços e, em "Connections", você verá a conexão com rede social que acabou de criar. Clique na chave seletora para ativá-la e agora seus usuários estão prontos para entrar com qualquer uma das conexões listadas!
Mais configurações Auth0 com SAML
Auth0 é adaptável quando se trata de configuração SAML. Aqui estão algumas das outras maneiras de configurar a Auth0:
- Configure a Auth0 como provedor de serviços em uma federação SAML
- Configurações SAML para integrações SSO, como Google Apps, Hosted Graphite, Litmos, Cisco Webex, Sprout Video, FreshDesk, Tableau Server, Datadog e muito mais
- Configure a Auth0 para usar outros provedores de identidade, como Okta, OneLogin, PingFederate 7, SalesForce, SiteMinder e SSOCircle
- Configure a Auth0 como provedor de serviços e provedor de identidade
Conclusão
Você abordou como a autenticação SAML funciona, os benefícios que o SAML oferece e como implementar SAML com a Auth0 como provedor de identidade. Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato abaixo!
About the author
Jessica Temporal
Sr. Developer Advocate