Guia do desenvolvedor para autenticação SAML [3 Online Tools]

No mundo de hoje, simplificar o gerenciamento de senhas é essencial. À medida que as empresas avançam na digitalização, os funcionários estão usando ferramentas de colaboração, mensagens e armazenamento mais do que nunca.

Isso representa um desafio para os desenvolvedores: como você fornece aos funcionários acesso seguro a aplicativos internos e dados armazenados na nuvem? Para muitos, a resposta é a autenticação SAML!

O que é SAML?

Security Assertion Markup Language ou SAML é um padrão aberto que simplifica os processos de autenticação. É baseado em XML (Extensible Markup Language), que padroniza a comunicação entre as entidades a serem autenticadas e o serviço ou aplicação web. Em outras palavras, SAML é o que torna possível usar um único login para entrar em vários aplicativos diferentes.

Por um lado, um provedor de serviços precisa de autenticação de provedor de identidade (IdP) para conceder autorização ao usuário. Por exemplo, o Salesforce é um provedor de serviços que conta com um provedor de identidade para autenticação do usuário.

Por outro lado, um provedor de identidade autentica que o usuário final é quem ele diz ser e envia esses dados ao provedor de serviços junto com os direitos de acesso do usuário ao serviço. Um exemplo é a AuthO, uma das líderes no fornecimento de soluções de identidade.

E quanto ao logon único SAML?

Uma das principais funções do SAML é habilitar o SSO. Antes do SAML, o SSO era possível, mas dependente de cookies e viável apenas no mesmo domínio.

O SAML permite o logon único (SSO) permitindo que os usuários acessem vários aplicativos com um único login e conjunto de credenciais. Embora o SAML não seja novo, ele existe desde 2002, e muitos novos aplicativos e empresas de SaaS estão usando SAML para SSO. Sua versão mais recente, SAML 2.0, permite SSO entre domínios baseado na Web e é o padrão para autorização de recursos.

  6 dicas e truques para se tornar um planejador mestre da Microsoft

Quais são os benefícios da autenticação SAML?

O SAML traz muitos benefícios para segurança, usuários e outros provedores de serviços (SPs).

Simplicidade: os usuários fazem login no IdP apenas uma vez e desfrutam de acesso contínuo e mais seguro a todos os aplicativos.

Maior segurança: muitos SPs não têm tempo ou recursos para implementar e impor a autenticação segura do usuário no login. Geralmente, os IdPs são mais bem equipados para autenticar identidades de usuários. Ao retornar a autenticação ao IdP, o SAML permite a autenticação segura que pode aplicar várias camadas de segurança, como MFA.

Experiência de usuário aprimorada: com SAML, seus usuários podem dizer adeus às dores de cabeça de tentar lembrar vários nomes de usuário e senhas

Redução da sobrecarga de gerenciamento: os provedores de serviços podem melhorar a segurança de sua plataforma sem armazenar senhas. Não há necessidade de lidar com problemas de senha esquecida. O help desk reduz custos e libera as equipes técnicas para lidar com outras solicitações urgentes.

O que é Auth0 e como ele está conectado à autenticação SAML?

Auth0 é uma plataforma que fornece autenticação de usuário e serviço de autorização. Pode ser tanto como IdP quanto SP. Auth0 oferece um login universal que pode ser integrado ao SAML. Os desenvolvedores costumam usar Auth0 com SAML para diversificar o risco ao ter vários IdPs.

Auth0 pode ser usado com quase todas as principais linguagens e APIs. Ele também pode ser integrado a provedores sociais, bancos de dados e diretórios LDAP.

Fluxo de SSO de SAML

Uma das principais funções do SAML é habilitar o logon único (SSO). Antes do SAML, o SSO era possível, mas dependia de cookies e era viável apenas no mesmo domínio.

O SAML habilita o SSO, permitindo que os usuários acessem vários aplicativos com um único login e credenciais. SAML não é novo, existe desde 2002, e muitos novos aplicativos e empresas de SaaS estão usando SAML para SSO. Sua versão mais recente, SAML 2.0, permite SSO entre domínios baseado na Web e é o padrão para autorização de recursos.

Em termos concretos, isso envolve a solicitação de autenticação do usuário apenas uma vez quando este estiver usando aplicativos diferentes. Por exemplo, podemos pensar na autenticação do Google, compartilhada entre os diferentes serviços Gmail, Youtube, Google Apps, etc.

  Deepfakes de áudio: alguém pode dizer se eles são falsos?

Nesse modo de operação, o Google é o provedor de identidade (IdP) para seus serviços. Esses serviços são chamados de “prestadores de serviços” (SP).

Autenticação

Ao se conectar ao aplicativo externo, ele envia o usuário desconhecido ao IdP corporativo. Este IdP é um serviço web acessível em HTTPS. Pode ser hospedado interna ou externamente.

Autenticação interna

O usuário então prova sua identidade para o IdP. Esta fase pode ser feita por autenticação explícita (login/senha) ou pela propagação de um token pré-existente.

Geração da afirmação

O IdP gerará então um “token”, uma espécie de carteira de identidade do usuário, válida apenas para o serviço solicitado e por tempo determinado. Neste token, encontraremos em particular:

  • A identidade do usuário: login, email ou outros campos
  • Atributos adicionais opcionais: sobrenome, nome, idioma etc.
  • Um período de validade do token
  • Uma assinatura do token pelo IdP

Transmissão de IdP para SP

No modo mais prático, a asserção não é passada diretamente do IdP para o SP, mas pelo próprio usuário. Por meio de um mecanismo de rejeição HTTP, o IdP fornecerá ao navegador do cliente o token para transmitir ao provedor de serviços. Pode ser comparada à carteira de identidade fornecida pela prefeitura para ser apresentada a qualquer autoridade.

Consumo do token pelo SP

O provedor de serviços recebe o token do usuário. O SP escolheu confiar neste IdP. Também valida a assinatura e a integridade do token, bem como o período de validade. Se os testes forem conclusivos, o SP abre uma sessão para o usuário.

Fonte: Wikipédia

Autenticação SAML vs. Autorização do usuário

Muitas vezes, a autenticação SAML é confundida com autorização. Para maior clareza, é importante diferenciar os conceitos de autenticação e autorização.

Autenticação: é a validação da identidade do usuário; basicamente, verifica-se se eles são quem dizem ser. Um exemplo é usar e-mail e senha para acessar um sistema – uma única sessão ou login para outras plataformas.

Autorização: são as permissões que o usuário concede a uma ferramenta de terceiros para acessar recursos em sua conta. Com a aprovação do usuário, o protocolo de autorização troca tokens sem acessar suas credenciais. Você costuma fazer isso ao permitir que uma plataforma (como o Facebook) acesse determinadas informações da sua conta do Google.

Terminologias obrigatórias do SAML

Declaração SAML

As declarações SAML normalmente são passadas por provedores de identidade para provedores de serviços. Asserções contêm declarações que os provedores de serviços usam para tomar decisões de controle de acesso. Três tipos de declarações são fornecidos pelo SAML:

  • As declarações de autenticação afirmam que o provedor de serviços foi realmente autenticado com o provedor de identidade em um determinado momento com um método de autenticação.
  • Uma declaração de atributo afirma que um assunto está associado a determinados atributos. Um atributo é simplesmente um par nome-valor. As partes confiáveis ​​usam os atributos para tomar decisões de controle de acesso.
  • Uma declaração de decisão autorizada afirma que um sujeito tem permissão para agir em um recurso apresentando evidências para ele. A expressividade dos estados de decisão de autorização no SAML é deliberadamente limitada.
  O Google está matando o Cloud Print no final de 2020

Atendimento ao Consumidor de Asserção

O Assertion Consumer Service ou ACS é o ponto em que o provedor de identidade redireciona após a resposta de autenticação do usuário. O ponto para o qual o provedor de identidade redireciona é um endpoint HTTPS que transfere informações pessoais.

Estado de relé padrão

É a URL padrão na qual o usuário será redirecionado após a autenticação da mensagem SAML. O Default Relay State é usado para coordenar mensagens entre IdPs e SPs.

SAML é um protocolo amplamente utilizado e, muitas vezes, é necessário decodificar asserções SAML. A seguir estão algumas das melhores ferramentas SAML para codificação, decodificação e formatação de mensagens e declarações SAML:

#1. SAMLtool

SAMltool by OneDesign é uma coleção de ferramentas e kits de ferramentas SAML online. Isso inclui várias ferramentas para codificar e decodificar mensagens SAML, criptografar e descriptografar declarações e assinar e validar mensagens e declarações SAML. SAMLtool também fornece vários plugins diferentes para integrar essas ferramentas com vários CMS.

#2. Samtool.io

Oferecido por Auth0, samltool.io é uma ferramenta online que também você decodifica, inspeciona e verifica mensagens e declarações SAML simplesmente colando XML bruto ou URLs contendo solicitações.

#3. Decodificador SAM

Decodificador SAM é uma ferramenta online simples para decodificar SAML oferecida pelo PingIdentity. O decodificador SAM pode ser usado para decodificar, inflar e formatar mensagens, declarações e metadados SAML.

Palavras finais

O padrão SAML é muito útil para implementar uma instância de autenticação central baseada na linguagem de marcação. Uma de suas vantagens significativas é que oferece alta eficiência e um alto padrão de segurança.

Em particular, o número de possíveis vazamentos de segurança é minimizado, pois os aplicativos individuais não precisam armazenar ou sincronizar dados do usuário. Desta forma, um dos principais objetivos é alcançado, que é conciliar um alto grau de segurança com o melhor nível possível de facilidade de uso.

Você também pode ver algumas das melhores plataformas de autenticação de usuário.