Português (Portugal)
  • sso
  • autenticação
  • OIDC
  • SAML

Escolhendo o seu método SSO: SAML vs. OpenID Connect

Single sign-on (SSO) é uma ótima maneira de simplificar a autenticação e autorização de utilizadores. Mas qual método SSO deverias escolher? Neste post, damos-te uma breve visão geral de dois métodos SSO populares: SAML e OpenID Connect.

Simeng
Simeng
Developer

Introdução

No mundo de hoje, impulsionado pela nuvem, o single sign-on (SSO) é uma ótima maneira de simplificar a autenticação e autorização dos utilizadores. Ao invés de teres os utilizadores a lembrar-se de múltiplos nomes de utilizador e senhas para diferentes aplicações, o SSO permite-lhes fazer o login uma vez e aceder a múltiplas aplicações de forma integrada.

A maioria dos grandes Provedores de Identidade (IdPs), como o Microsoft Entra, oferece dois principais concorrentes para SSO: Security Assertion Markup Language (SAML) e OpenID Connect (OIDC). Embora ambos sejam protocolos seguros e bem estabelecidos, escolher o correto para a tua organização depende de uma variedade de fatores. Vamos aprofundar-nos nas suas forças e fraquezas para te ajudar a escolher o teu campeão SSO.

OpenID Connect (OIDC): A seleção leve para aplicações modernas

OIDC é um protocolo simples e leve construído em cima do OAuth 2.0. Ele destaca-se em fornecer um processo de configuração amigável, tornando-se uma escolha popular para aplicações modernas.

Prós

  • Simplicidade: O OIDC oferece um processo de configuração mais simples em comparação com o SAML. Isso traduz-se em implementação mais rápida e manutenção contínua mais fácil. Foi projetado em cima do OAuth 2.0, que já é amplamente usado para fins de autorização.
  • Design moderno: Criado para o ambiente web contemporâneo, integra-se bem com as aplicações e frameworks modernos. O OIDC é RESTful e baseado em JSON, facilitando o trabalho em ambientes de desenvolvimento modernos e proporcionando uma experiência de utilizador mais fluida.
  • Escalabilidade: O OIDC é projetado para ser escalável, tornando-o uma boa escolha para organizações grandes com requisitos complexos.
  • Eficiência: O OIDC utiliza JSON Web Tokens (JWTs) para troca de dados. Estes tokens compactos são leves e eficientes em comparação com as mensagens XML mais volumosas usadas pelo SAML. Isso traduz-se em tempos de autenticação mais rápidos.

Contras

  • Controle limitado de atributos: Por padrão, o OIDC oferece informações básicas limitadas sobre atributos de utilizador, podendo não fornecer o mesmo nível de controle granular como o SAML. Isso pode ser uma preocupação para organizações com requisitos rigorosos de controle de acesso. Para um controle de atributos mais avançado, pode ser necessário estender o protocolo com mecanismos de autorização adicionais, por exemplo, controle de acesso baseado em função (RBAC) ou controle de acesso baseado em atributos (ABAC).
  • Suporte limitado para aplicações legadas: Como o OIDC é um protocolo mais recente, pode não ser tão amplamente adotado por aplicações empresariais mais antigas em comparação com o padrão SAML estabelecido.

Security Assertion Markup Language (SAML): O padrão empresarial com controle granular

O SAML tem sido o protocolo de referência para SSO no mundo empresarial há muitos anos. Sua extensa adoção e conjunto robusto de recursos fazem dele uma escolha sólida para organizações com requisitos complexos.

Prós

  • Adoção ampla: O SAML existe há muito tempo e é amplamente adotado por muitas aplicações empresariais. Isso garante um alto grau de compatibilidade para a tua infraestrutura de TI existente.
  • Controle granular de atributos: O SAML oferece um conjunto rico de atributos que podem ser trocados entre o IdP e o Provedor de Serviços (SP). Isso permite um controle de acesso detalhado e personalização dos atributos do utilizador.

Contras

  • Complexidade: Configurar e configurar o SAML pode ser um processo mais envolvido em comparação com o OIDC. As mensagens baseadas em XML usadas pelo SAML são mais volumosas e verbosas do que as mensagens baseadas em JSON usadas pelo OIDC. Isso requer um entendimento mais profundo do protocolo e, potencialmente, mais recursos de engenharia.

  • Mensagens mais volumosas: As mensagens SAML são baseadas em XML, o que pode torná-las mais volumosas e menos eficientes em comparação com as mensagens baseadas em JSON usadas pelo OIDC. Isso pode levar a tempos de autenticação mais lentos, especialmente para cargas úteis grandes.

Escolhe o teu próprio campeão SSO

Ao escolher entre o SAML e o OIDC, considera os seguintes fatores:

FatorSAMLOIDC
Complexidade da configuraçãoAltaBaixa
Compatibilidade (Moderna)BaixaAlta
Compatibilidade (Legada)AltaBaixa
Experiência do utilizadorComplexaSimples
Controle de atributosGranularLimitada
Eficiência na troca de dadosBaixaAlta

Além do binário: combinando SAML e OIDC para uma abordagem híbrida

Em alguns casos, podes não precisar escolher entre SAML e OIDC. Alguns IdPs oferecem a flexibilidade de suportar ambos os protocolos, permitindo que aproveites os pontos fortes de cada um onde são mais necessários. Por exemplo, se a tua organização tem uma mistura de aplicações modernas e legadas, mas partilham o mesmo IdP, podes aproveitar tanto OIDC quanto SAML para uma solução SSO abrangente. Por exemplo, podes utilizar OIDC para as tuas aplicações web e móveis, enquanto reservas o SAML para os teus sistemas empresariais legados.

Conclusão: Escolher a ferramenta certa para o trabalho

O melhor protocolo SSO para a tua organização depende do teu cenário específico de aplicações, requisitos de segurança e objetivos de experiência do utilizador. Ao compreenderes as forças e fraquezas de ambos OIDC e SAML, estarás bem equipado para escolher a melhor opção para a tua organização.

Na Logto, suportamos tanto SAML quanto OIDC como parte da nossa solução SSO abrangente. Seja a ligar com uma aplicação web moderna ou um sistema empresarial legado, temos tudo o que precisas. Registra-te para uma conta gratuita e começa a simplificar os teus fluxos de trabalho de autenticação e autorização hoje.