Simplifica a integração de autenticação SAML para programadores
Descobre o que é SAML, como implementar SSO e passos rápidos para integrares a autenticação SAML como Fornecedor de Identidade (IdP) ou Prestador de Serviço (SP).
Single Sign-On (SSO) é fundamental para aplicações modernas, e o SAML permite uma autenticação segura e fácil entre sistemas de identidade empresarial. Este guia simplifica o SAML para programadores e designers, com passos claros e exemplos práticos para te ajudar a implementar eficientemente.
O que são autenticação SAML e aplicações SAML?
Security Assertion Markup Language (SAML) é um padrão baseado em XML usado para trocar dados de autenticação e autorização entre dois intervenientes principais: o Fornecedor de Identidade (IdP) e o Prestador de Serviço (SP). É uma solução comum para Single Sign-On (SSO) em organizações, tornando a vida mais fácil para utilizadores empresariais ao permitir login único para múltiplas aplicações.
Fornecedor de Identidade (IdP) é responsável por gerir e verificar as credenciais do utilizador, como nomes de utilizador e palavras-passe. Quando um utilizador tenta aceder a um serviço protegido, o IdP confirma a identidade e envia essa confirmação ao serviço.
- Exemplo: Imagina que trabalhas numa grande empresa que usa o Microsoft Azure AD para gerir contas de colaboradores. Quando queres entrar no Salesforce, o Azure AD atua como IdP. Verifica as tuas credenciais e informa o Salesforce que tens autorização para usar.
Prestador de Serviço (SP) é a aplicação ou serviço ao qual os utilizadores tentam efetivamente aceder. Depende do IdP para todo o trabalho de autenticação.
- Exemplo: Continuando o cenário anterior, o Salesforce é o SP. Confia no Microsoft Azure AD (o IdP) para confirmar a tua identidade. Depois do Azure AD confirmar, o Salesforce permite o teu acesso.
Quando se fala numa “app SAML”, normalmente refere-se ao SP.
Ao usar o protocolo SAML, podes configurar o teu serviço como IdP para suportar integrações de aplicações (como Azure AD / Google Workspace); ou como SP (como Salesforce / Slack) para suportar SSO para utilizadores.
Uma SAML Assertion é o coração do protocolo SAML. É como uma “nota” digital criada pelo IdP e enviada ao SP a dizer: "Confirmei a identidade deste utilizador." A seguir, explicamos como funciona o processo tanto para IdPs como para SPs.
Ao atuar como Fornecedor de Identidade SAML
Quando o teu serviço atua como IdP, permites autenticação SAML em múltiplas aplicações. Isto permite que os utilizadores acedam a vários serviços através de uma única identidade empresarial.
Eis um fluxo SAML SSO típico para um IdP:
- O utilizador tenta aceder a uma aplicação (SP), como o Salesforce.
- A aplicação redireciona o utilizador para o teu IdP para autenticação.
- O utilizador insere as credenciais na página de login do teu IdP.
- O IdP verifica as credenciais.
- Se as credenciais estiverem corretas, o IdP envia uma SAML assertion de volta ao SP.
- O SP processa a assertion, valida-a e concede acesso ao utilizador.
Ao atuar como Prestador de Serviço SAML
Se o teu serviço for o SP, vais integrá-lo com vários fornecedores de identidade para oferecer SSO aos teus utilizadores. Isto permite que utilizadores empresariais de diferentes organizações ou tenants acedam à tua aplicação de forma segura e eficiente.
Eis um fluxo para SSO iniciado pelo SP:
- O utilizador tenta iniciar sessão na tua aplicação.
- A tua aplicação gera um pedido SAML e redireciona o utilizador para a página de login do IdP.
- O utilizador autentica-se no IdP (ou salta este passo caso já esteja autenticado).
- O IdP verifica a identidade do utilizador e, depois de confirmada, inclui os detalhes numa SAML assertion.
- O IdP envia a assertion de volta para a tua aplicação.
- O teu serviço valida a assertion. Se for válida, o utilizador obtém acesso à aplicação.
Parâmetros chave no SAML SSO
Para uma integração SAML SSO bem-sucedida, IdPs e SPs devem partilhar certos parâmetros. Eis os essenciais:
Parâmetros do IdP
- IdP Entity ID: Identificador único do IdP nas comunicações SAML, como uma etiqueta digital.
- SSO URL: Endpoint de login (URL) para onde o SP redireciona utilizadores para autenticação.
- Certificado X.509: Chave pública usada para assinar a SAML assertion, garantindo segurança. Funciona como o “selo” da autenticidade.
Dica: Se o teu IdP fornecer um SAML Metadata URL, tudo fica mais fácil. Este URL inclui toda a informação necessária (certificados, URLs SSO e IdP Entity ID) num só local. Minimiza erros por cópia manual e elimina o incómodo de atualização manual dos certificados.
Parâmetros do SP
- SP Entity ID: Identificador único do SP, semelhante ao IdP Entity ID.
- Assertion Consumer Service (ACS) URL: Endpoint do SP para onde espera receber a SAML assertion proveniente do IdP.
- RelayState (Opcional): Usado para passar informação durante o processo SAML, como a URL que o utilizador pretendia visitar.
Mapeamento de atributos SAML e encriptação
- NameID Format: Define o formato do identificador do utilizador (exemplo: endereço de e-mail ou nome de utilizador).
- Atributos SAML: Detalhes adicionais do utilizador, como funções, 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 usarrole
para dar privilégios de admin oudepartment
para agrupar o utilizador na equipa correta. Para obter estes dados essenciais, IdP e SP devem decidir como mapear os atributos. Por exemplo, o IdP pode definir “department” como equipa, enquanto o SP espera receber como grupo. O mapeamento correto garante comunicação fluida.
- Exemplo: Se a assertion SAML assinada pelo IdP incluir
- Assertions encriptadas (opcional): Para proteger dados sensíveis, as assertions SAML podem ser encriptadas.
- Função do IdP: Encripta a assertion usando a chave pública do SP.
- Função do SP: Desencripta a assertion com a sua chave privada para ler os detalhes do utilizador.
Agora já deves ter a informação necessária para configurar uma ligação SAML. Para integrar o Salesforce (Prestador de Serviço) com Azure AD (Fornecedor de Identidade), segue estes passos:
- Obtém o IdP Entity ID, SSO URL e o certificado do Azure AD e configura-os no Salesforce.
- Fornece o SP Entity ID e ACS URL do Salesforce ao Azure AD.
O Logto torna a integração SAML simples
O Logto pode atuar tanto como IdP como SP para suportar SSO SAML nas tuas aplicações.
Usar o Logto como IdP SAML
O Logto permite que outras aplicações confiem nele para autenticação federada e suporta autenticação multifator (MFA) para segurança adicional.
- Cria uma App Logto Acede a Logto Console > Applications e cria uma nova app SAML.
- Configura os parâmetros de SAML Configura a app com o Assertion Consumer Service URL e SP Entity ID do Prestador de Serviço (SP).
- Fornece o URL de metadata O Logto disponibiliza um IdP Metadata URL que os SP podem usar para obter automaticamente detalhes essenciais, como URLs SSO e certificados.
- Configuração avançada (Opcional)
- Podes criar múltiplos novos certificados com impressões digitais e definir datas de expiração, mas só um certificado pode estar ativo.
- Modifica o formato do Name ID para se adequar às necessidades do teu negócio.
- Ativa encriptação das assertions SAML ao copiar e colar o certificado x509 do teu prestador de serviço para encriptar as assertions.
- Mapeia atributos (Opcional) Personaliza facilmente como os atributos do utilizador são partilhados com os Prestadores de Serviço (SP).
Para orientação detalhada, visita a documentação oficial: App SAML
Usar o Logto como SP SAML
O Logto também pode integrar-se com qualquer IdP empresarial via protocolos SAML ou OIDC. Quer estejas a ativar SSO iniciado pelo SP nas tuas páginas de login unificado ou a configurar SSO iniciado pelo IdP, o processo é simples.
- Cria um conector empresarial Acede à Logto Console > Enterprise SSO e cria um novo conector empresarial. Seleciona SAML como protocolo.
- Configura os parâmetros SAML Fornece o metadata URL ou ficheiro XML de metadata do teu IdP. Se o metadata não estiver disponível, muda para configuração manual, preenchendo o IdP Entity ID, SSO URL e faz upload do certificado de assinatura.
- Partilha o ACS URL e SP Entity ID Fornece o ACS URL e SP Entity ID do Logto ao teu IdP para concluir a configuração da integração.
- Mapeia os atributos (Opcional) Configura o mapeamento de dados dos utilizadores, como e-mail ou nomes, garantindo que a informação passa corretamente do IdP para o Logto.
- Adiciona domínios de e-mail empresariais No separador “SSO Experience” do conector empresarial, adiciona um ou mais domínios de e-mail. Isso garante que só utilizadores com esses domínios podem autenticar-se via SSO.
- Ativa SSO iniciado pelo IdP (Opcional) Ativa este tipo de SSO apenas se for requerido pelos teus clientes empresariais. Esta funcionalidade permite que os utilizadores iniciem sessão na tua aplicação diretamente a partir do painel do IdP.
Para mais detalhes, consulta a documentação oficial: Documentação Enterprise SSO.
Reflexão final
O SAML proporciona um método padronizado e seguro para SSO, tornando a autenticação mais simples. O Logto simplifica todo o processo, seja na configuração como IdP ou SP. Com uma interface acessível e suporte para as versões cloud e open-source, o Logto elimina a complexidade da integração SAML. Basta configurares alguns parâmetros para ligar os teus serviços a qualquer IdP ou SP SAML e focares-te em criar grandes experiências para os teus utilizadores.