Português (Brasil)
  • SAML
  • SSO
  • Provedor de Identidade

Simplifique a integração da autenticação SAML para desenvolvedores

Aprenda o que é SAML, como implementar SSO e os passos rápidos para integrar a autenticação SAML como Provedor de Identidade (IdP) ou Provedor de Serviço (SP).

Ran
Ran
Product & Design

Pare de perder semanas com autenticação de usuários
Lance aplicativos seguros mais rapidamente com o Logto. Integre a autenticação de usuários em minutos e concentre-se no seu produto principal.
Começar
Product screenshot

Single Sign-On (SSO) é fundamental para aplicativos modernos, e o SAML permite uma autenticação segura e amigável entre os sistemas de identidade corporativos. Este guia simplifica o SAML para desenvolvedores e designers com etapas claras e exemplos práticos para ajudar você a implementá-lo de forma eficiente.

O que são autenticação SAML e aplicativos SAML?

Security Assertion Markup Language (SAML) é um padrão baseado em XML usado para trocar dados de autenticação e autorização entre dois atores principais: o Provedor de Identidade (IdP) e o Provedor de Serviço (SP). É uma solução comum para Single Sign-On (SSO) em organizações, facilitando a vida dos usuários corporativos ao permitir que eles façam login uma vez e acessem vários aplicativos.

Provedor de Identidade (IdP) é responsável por gerenciar e verificar credenciais de usuários, como nomes de usuário e senhas. Quando um usuário tenta acessar um serviço protegido, o IdP confirma sua identidade e envia essa confirmação para o serviço.

  • Exemplo: Imagine que você trabalha para uma grande empresa que utiliza o Microsoft Azure AD para gerenciar as contas dos funcionários. Quando você deseja fazer login no Salesforce, o Azure AD atua como o IdP. Ele verifica suas credenciais e informa ao Salesforce que você está autorizado a usá-lo.

Provedor de Serviço (SP) é o aplicativo ou serviço ao qual os usuários estão realmente tentando acessar. Ele depende do IdP para lidar com a parte principal da autenticação.

  • Exemplo: Continuando nosso cenário acima, o Salesforce é o SP. Ele confia no Microsoft Azure AD (o IdP) para confirmar sua identidade. Uma vez que o Azure AD garante você, o Salesforce permite seu acesso.

Ao falar sobre um “aplicativo SAML”, normalmente nos referimos ao SP.

Usando o protocolo SAML, você pode configurar seu serviço como um IdP para dar suporte a integrações de aplicativos (como Azure Ad / Google Workspace) ou como um SP (como Salesforce / Slack) para oferecer SSO para usuários.

Uma SAML Assertion é o coração do protocolo SAML. Trata-se de uma “nota” digital criada pelo IdP e enviada ao SP dizendo: “Eu confirmei a identidade deste usuário.” A seguir, veremos como o processo funciona, tanto para IdP quanto para SP.

Quando agindo como Provedor de Identidade SAML

Quando o seu serviço funciona como IdP, você habilita a autenticação SAML entre vários aplicativos. Isso permite que os usuários acessem diferentes serviços usando uma única identidade corporativa.

as_saml_identity_provider_idp.png

Veja um fluxo típico de SSO SAML para IdP:

  1. O usuário tenta acessar um aplicativo (SP), como Salesforce.
  2. O aplicativo redireciona o usuário para o seu IdP para autenticação.
  3. O usuário insere suas credenciais na página de login do seu IdP.
  4. O IdP verifica as credenciais.
  5. Se as credenciais forem verificadas, o IdP envia uma SAML assertion de volta ao SP.
  6. O SP processa a assertion, confirma sua validade e concede acesso ao usuário.

Quando agindo como Provedor de Serviço SAML

Se o seu serviço for o SP, você irá integrar-se a vários provedores de identidade para oferecer aos seus usuários a capacidade de SSO. Isso permite que usuários corporativos de diferentes organizações ou locatários acessem seu aplicativo de forma segura e eficiente.

as_saml_service_provider_sp.png

Veja o fluxo para SSO iniciado pelo SP:

  1. O usuário tenta fazer login no seu aplicativo.
  2. Seu aplicativo gera uma solicitação SAML e redireciona o usuário para a página de login do IdP.
  3. O usuário faz login no IdP (ou pula esta etapa se já estiver autenticado).
  4. O IdP verifica a identidade do usuário e, depois de confirmada, insere os detalhes do usuário em uma SAML assertion.
  5. O IdP envia a assertion de volta ao seu aplicativo.
  6. Seu serviço verifica a assertion. Se ela for válida, o usuário obtém acesso ao seu aplicativo.

Principais parâmetros no SSO SAML

Para uma integração SAML SSO bem-sucedida, IdPs e SPs devem compartilhar parâmetros específicos. Veja os essenciais:

Parâmetros do IdP

  1. IdP Entity ID: Um identificador único do IdP nas comunicações SAML, como uma etiqueta digital de nome.
  2. SSO URL: O endpoint de login (URL) onde o SP redireciona os usuários para autenticação.
  3. Certificado X.509: Uma chave pública usada para assinar a assertion SAML, garantindo sua segurança. Este é o “selo” de autenticidade.

Dica: Se seu IdP oferece uma SAML Metadata URL, tudo fica mais fácil. Esta URL contém todas as informações necessárias (como certificados, URLs de SSO e IdP Entity ID) em um só local. Minimize o risco de erros por copiar/colar manualmente e elimine o incômodo de atualizar arquivos de certificado manualmente.

Parâmetros do SP

  1. SP Entity ID: O identificador único do SP, semelhante ao IdP Entity ID.
  2. Assertion Consumer Service (ACS) URL: É o endpoint do SP onde ele espera receber a SAML assertion do IdP.
  3. RelayState (Opcional): Usado para passar dados durante o processo SAML, como a URL original que o usuário tentava acessar.

Mapeamento de atributos SAML e criptografia

  1. NameID Format: Define o formato do identificador do usuário (ex: e-mail ou nome de usuário).
  2. Atributos SAML: São detalhes adicionais do usuário, como cargos, e-mail ou departamento, que o IdP envia ao SP.
    • Exemplo: Se a assertion SAML assinada pelo IdP incluir email ([email protected]), role (admin) e department (engenharia), o SP pode usar o role para atribuir privilégios de administrador ou department para agrupar o usuário na equipe certa. Para obter esses dados essenciais, IdP e SP devem definir como mapear os atributos. Por exemplo, o IdP pode definir “department” como equipe, enquanto o SP espera como grupo. Um mapeamento adequado garante comunicação fluida.
  3. Assertions Criptografadas (Opcional): Para proteger dados sensíveis de autenticação, assertions SAML podem ser criptografadas.
    • Função do IdP: Criptografa a assertion com a chave pública do SP.
    • Função do SP: Descriptografa a assertion com sua chave privada para ler detalhes do usuário.

Agora você deve ter as informações necessárias para configurar uma conexão SAML. Para integrar o Salesforce (Provedor de Serviço) ao Azure AD (Provedor de Identidade), siga estes passos:

  • Obtenha o IdP Entity ID, o SSO URL e o certificado do Azure AD e configure-os no Salesforce.
  • Forneça o SP Entity ID e o ACS URL do Salesforce para o Azure AD.

A Logto simplifica a integração SAML

A Logto pode atuar como IdP ou SP para dar suporte ao SAML SSO em suas aplicações.

Usando Logto como IdP SAML

A Logto permite que outros aplicativos confiem nela para autenticação de identidade federada e oferece suporte a autenticação multifator (MFA) para maior segurança.

  1. Crie um aplicativo Logto Acesse o Logto Console > Applications e crie um novo aplicativo SAML.
  2. Configure os parâmetros SAML Configure o aplicativo com o Assertion Consumer Service URL e o SP Entity ID do Provedor de Serviço (SP).
  3. Forneça a URL de metadados A Logto fornece uma IdP Metadata URL que os SPs podem usar para obter automaticamente detalhes essenciais como URLs de SSO e certificados.
  4. Configuração avançada (Opcional)
    • Você pode criar vários novos certificados com impressões digitais e datas de expiração, mas só um pode estar ativo por vez.
    • Modifique o formato do Name ID conforme os requisitos do seu negócio.
    • Habilite criptografia de assertion SAML copiando e colando o certificado x509 do seu provedor de serviço para criptografar as assertions.
  5. Mapeie atributos (Opcional) Personalize facilmente como os atributos do usuário são compartilhados com os Provedores de Serviço (SPs).

logto_saml_apps_saml_providers.png

Para orientações detalhadas, visite a documentação oficial aqui: SAML App

Usando Logto como SP SAML

A Logto também integra-se com qualquer IdP corporativo via SAML ou OIDC. Seja habilitando SSO iniciado pelo SP em suas páginas de login unificadas ou configurando SSO iniciado pelo IdP, o processo é simples.

  1. Crie um conector corporativo Acesse o Logto Console > Enterprise SSO e crie um novo Conector Corporativo. Selecione SAML como padrão de protocolo.
  2. Configure os parâmetros SAML Forneça a metadata URL ou o arquivo XML de metadados do seu IdP. Caso não tenha o metadado, alterne para configuração manual inserindo o IdP Entity ID, o SSO URL e envie o certificado de assinatura.
  3. Compartilhe o ACS URL e o SP Entity ID Forneça o ACS URL e o SP Entity ID da Logto ao seu IdP para concluir a configuração da integração.
  4. Mapeie atributos (Opcional) Configure o mapeamento dos dados do usuário, como e-mail ou nomes, para garantir que as informações sejam transmitidas corretamente entre IdP e Logto.
  5. Adicione domínios de e-mail corporativo Na aba “SSO Experience” do conector corporativo, adicione um ou mais domínios de e-mail. Isso garante que apenas usuários com os domínios especificados possam autenticar via SSO.
  6. Habilite SSO iniciado pelo IdP (Opcional) Habilite o SSO iniciado pelo IdP apenas se for exigido pelos clientes corporativos. Esse recurso permite que usuários acessem seus aplicativos diretamente do painel do IdP.

logto-enterprise-saml-sso.png

Para orientações detalhadas, acesse a documentação oficial: Enterprise SSO documentation.

Considerações finais

SAML oferece um método padronizado e seguro para SSO, tornando a autenticação mais suave. Logto simplifica o processo, seja como IdP ou SP. Com uma interface amigável e suporte tanto para versões cloud quanto para open-source, a Logto elimina as complexidades da integração SAML. Com apenas alguns parâmetros configurados, você conecta seus serviços a qualquer IdP ou SP SAML e pode focar em construir ótimas experiências para seus usuários.