Simplificar a integração de apps SAML para desenvolvedores
Descubra o que é SAML, como implementar SSO e passos rápidos para integrar aplicativos SAML como um Provedor de Identidade (IdP) ou Provedor de Serviço (SP).
Single Sign-On (SSO) é fundamental para apps modernas, e o SAML permite autenticação segura e amigável entre sistemas de identidade empresarial. Este guia simplifica o SAML para desenvolvedores e designers com passos claros e exemplos práticos para ajudar na implementação eficiente.
O que são SAML SSO e aplicativos SAML?
A Security Assertion Markup Language (SAML) é um padrão baseado em XML usado para trocar dados de autenticação e autorização entre dois principais atores: 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 empresariais permitindo que façam login uma vez e acessem várias aplicações.
O Provedor de Identidade (IdP) é responsável por gerenciar e verificar as credenciais dos 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 ao serviço.
- Exemplo: Imagine que você trabalha para uma grande empresa que usa o Microsoft Azure AD para gerenciar contas de funcionários. Quando você quer acessar o Salesforce, o Azure AD atua como o IdP. Ele verifica suas credenciais e informa ao Salesforce que você está autorizado a usá-lo.
O Provedor de Serviço (SP) é a aplicação ou serviço que os usuários realmente tentam acessar. Ele depende do IdP para lidar com a autenticação.
- Exemplo: Continuando nosso cenário acima, o Salesforce é o SP. Ele depende do Microsoft Azure AD (o IdP) para confirmar sua identidade. Uma vez que o Azure AD garante por você, o Salesforce permite seu acesso.
Quando se fala de um “app SAML,” geralmente está se referindo ao SP.
Usando o protocolo SAML, você pode configurar seu serviço como um IdP para suportar integrações de aplicativos (como Azure AD / Google Workspace); ou como um SP (como Salesforce / Slack) para suportar SSO para usuários.
Uma Asserção SAML é o coração do protocolo SAML. É uma “nota” digital criada pelo IdP e enviada a um SP que diz: “Eu confirmei a identidade deste usuário.” A seguir, abordaremos como o processo funciona para ambos IdP e SP.
Atuando como um Provedor de Identidade SAML
Quando seu serviço funciona como o IdP, você habilita a autenticação SAML em várias aplicações. Isso permite que os usuários acessem diversos serviços através de uma identidade empresarial única.
Aqui está um fluxo de trabalho típico de SSO SAML para um IdP:
- O usuário tenta acessar uma aplicação (SP), como o Salesforce.
- A aplicação 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 asserção SAML de volta ao SP.
- O SP processa a asserção, confirma sua validade e concede acesso ao usuário.
Atuando como um Provedor de Serviço SAML
Se seu serviço é o SP, você integrará com diversos provedores de identidade para oferecer aos seus usuários a capacidade de SSO. Isso permite que usuários empresariais de diferentes organizações ou inquilinos acessem seu aplicativo de forma segura e eficiente.
Aqui está um fluxo de trabalho para SSO iniciado pelo SP:
- O usuário tenta entrar em seu aplicativo.
- Seu aplicativo gera um pedido 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 conectado).
- O IdP verifica a identidade do usuário e, uma vez confirmada, empacota os detalhes do usuário em uma asserção SAML.
- O IdP envia a asserção de volta para o seu aplicativo.
- Seu serviço verifica a asserção. Se for válida, o usuário obtém acesso ao seu aplicativo.
Parâmetros chave no SAML SSO
Para uma integração SSO SAML bem-sucedida, ambos IdPs e SPs devem compartilhar parâmetros específicos. Aqui está um olhar sobre os essenciais:
Parâmetros do IdP
- IdP Entity ID: Um identificador único para o IdP nas comunicações SAML, como uma etiqueta de nome digital.
- 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 asserção SAML, garantindo que seja segura. Esta é o “selo” que verifica a autenticidade.
Dica: Se seu IdP oferecer uma URL de Metadados SAML, as coisas ficam mais fáceis. Esta URL contém todas as informações necessárias (como certificados, URLs de SSO e IdP Entity ID) em um só lugar. Minimiza o risco de erros de cópia manual e elimina 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.
- URL de Serviço de Consumidor de Asserção (ACS): Este é o endpoint do SP onde o SP espera receber a asserção SAML do IdP.
- RelayState (Opcional): Usado para passar dados durante o processo SAML, como a URL que o usuário estava originalmente tentando visitar.
Mapeamento de atributos SAML e criptografia
- Formato NameID: Define o formato do identificador do usuário (por exemplo, endereço de email ou nome de usuário).
- Atributos SAML: Estes são detalhes adicionais do usuário, tais como funções, email, ou departamento, que o IdP envia para o SP.
- Exemplo: Se a asserção SAML assinada pelo IdP incluir
email
([email protected]),função
(admin), edepartamento
(engenharia). O SP pode usarfunção
para atribuir privilégios de admin oudepartamento
para agrupar o usuário na equipe correta. Para obter esses dados essenciais do usuário, tanto o IdP quanto o SP precisam decidir como mapear os atributos. Por exemplo, o IdP pode definir “departamento” como equipe, enquanto o SP espera por grupo. O mapeamento adequado garante uma comunicação fluida.
- Exemplo: Se a asserção SAML assinada pelo IdP incluir
- Asserções Criptografadas (Opcional): Para proteger dados de autenticação sensíveis, as asserções SAML podem ser criptografadas.
- Papel do IdP: Criptografa a asserção usando a chave pública do SP.
- Papel do SP: Descriptografa a asserção com sua chave privada para ler os 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) com o Azure AD (Provedor de Identidade), siga estes passos:
- Obtenha o IdP Entity ID, URL de SSO, e certificado do Azure AD e configure-os no Salesforce.
- Forneça o Entity ID do SP e a URL ACS do Salesforce ao Azure AD.
Logto torna a integração SAML simples
O Logto pode atuar tanto como um IdP quanto como um SP para suportar o SAML SSO para suas aplicações.
Usando o Logto como um IdP SAML
O Logto permite que outras aplicações dependam dele para a autenticação federada de identidade e suporta autenticação multi-fator (MFA) para segurança aprimorada.
- Crie um App no Logto Vá para Logto Console > Applications e crie um novo app SAML.
- Configure os Parâmetros SAML Configure o app com a URL de ACS do Provedor de Serviço (SP) e SP Entity ID.
- Forneça a URL de metadados O Logto fornece uma URL de Metadados IdP que os SPs podem usar para recuperar 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 definir datas de expiração, mas apenas um certificado pode estar ativo por vez.
- Modifique o formato Name ID para atender aos requisitos do seu negócio.
- Habilite a criptografia de asserção SAML copiando e colando o certificado x509 do seu provedor de serviço para criptografar as asserções.
- 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 o Logto como um SP SAML
O Logto também integra-se com qualquer IdP empresarial via protocolos SAML ou OIDC. Quer você esteja habilitando o SSO iniciado pelo SP para suas páginas unificadas de entrada ou configurando o SSO iniciado pelo IdP, o processo é direto.
- Crie um conector empresarial Vá para o Logto Console > Enterprise SSO e crie um novo Conector Empresarial. Selecione SAML como o padrão do protocolo.
- Configure os parâmetros SAML Forneça a URL de metadados ou arquivo XML de metadados do seu IdP. Se os metadados não estiverem disponíveis, alterne para configuração manual inserindo o IdP Entity ID, URL de SSO, e carregando o certificado de assinatura.
- Compartilhe a URL ACS e SP Entity ID Forneça a URL ACS e SP Entity ID do Logto ao seu IdP para completar a configuração da integração.
- Mapeie atributos (Opcional) Configure os mapeamentos de dados do usuário, como email ou nomes, para garantir que as informações sejam passadas corretamente entre o IdP e o Logto.
- Adicione domínios de email empresariais Na aba “Experiência de SSO” do conector empresarial, adicione um ou mais domínios de email. Isso garante que somente usuários com os domínios especificados possam autenticar-se via SSO.
- Habilite o SSO iniciado pelo IdP (Opcional) Habilite o SSO iniciado pelo IdP apenas se requerido pelos seus clientes empresariais. Este recurso permite que os usuários façam login em suas aplicações diretamente do dashboard do IdP.
Para orientações detalhadas, visite a documentação oficial aqui: Documentação de SSO Empresarial.
Considerações finais
O SAML oferece um método padronizado e seguro para SSO, tornando a autenticação mais suave. O Logto simplifica o processo, quer você esteja configurando como um IdP ou SP. Com sua interface amigável e suporte para versões tanto cloud quanto open-source, o Logto elimina as complexidades da integração SAML. Configurando apenas alguns parâmetros, você pode conectar seus serviços a qualquer IdP ou SP SAML e focar em criar grandes experiências para seus usuários.