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).
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.
Veja um fluxo típico de SSO SAML para IdP:
- O usuário tenta acessar um aplicativo (SP), como Salesforce.
- O aplicativo redireciona o usuário para o seu IdP para autenticação.
- O usuário insere suas credenciais na página de login do seu IdP.
- O IdP verifica as credenciais.
- Se as credenciais forem verificadas, o IdP envia uma SAML assertion de volta ao SP.
- 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.
Veja o fluxo para SSO iniciado pelo SP:
- O usuário tenta fazer login no seu aplicativo.
- Seu aplicativo gera uma solicitação SAML e redireciona o usuário para a página de login do IdP.
- O usuário faz login no IdP (ou pula esta etapa se já estiver autenticado).
- O IdP verifica a identidade do usuário e, depois de confirmada, insere os detalhes do usuário em uma SAML assertion.
- O IdP envia a assertion de volta ao seu aplicativo.
- 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
- IdP Entity ID: Um identificador único do IdP nas comunicações SAML, como uma etiqueta digital de nome.
- SSO URL: O endpoint de login (URL) onde o SP redireciona os usuários para autenticação.
- 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
- SP Entity ID: O identificador único do SP, semelhante ao IdP Entity ID.
- Assertion Consumer Service (ACS) URL: É o endpoint do SP onde ele espera receber a SAML assertion do IdP.
- 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
- NameID Format: Define o formato do identificador do usuário (ex: e-mail ou nome de usuário).
- 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) edepartment
(engenharia), o SP pode usar orole
para atribuir privilégios de administrador oudepartment
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.
- Exemplo: Se a assertion SAML assinada pelo IdP incluir
- 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.
- Crie um aplicativo Logto Acesse o Logto Console > Applications e crie um novo aplicativo SAML.
- 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).
- 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.
- 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.
- Mapeie atributos (Opcional) Personalize facilmente como os atributos do usuário são compartilhados com os Provedores de Serviço (SPs).
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.
- Crie um conector corporativo Acesse o Logto Console > Enterprise SSO e crie um novo Conector Corporativo. Selecione SAML como padrão de protocolo.
- 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.
- 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.
- 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.
- 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.
- 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.
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.