O que é SAML? Single sign-on baseado em XML
O SAML é um padrão baseado em XML que permite a um provedor de identidade informar a um aplicativo que um usuário está autenticado, habilitando o single sign-on.
O SAML, a Security Assertion Markup Language, é um dos padrões originais para single sign-on corporativo. Ele define como um provedor de identidade emite uma asserção XML assinada que avaliza um usuário e como um aplicativo a consome. Para equipes de engenharia, o SAML costuma ser o que controla o acesso humano a hosts de código-fonte, consoles de nuvem e dashboards de CI/CD.
Como funciona um fluxo SAML
Um usuário tenta acessar um aplicativo (o provedor de serviço). O aplicativo redireciona para o provedor de identidade, que autentica o usuário e retorna uma asserção SAML assinada. O aplicativo valida a assinatura e concede acesso. O usuário nunca fornece uma senha ao aplicativo.
As peças principais
- Provedor de identidade (IdP): autentica usuários e emite asserções.
- Provedor de serviço (SP): o aplicativo que o usuário deseja acessar.
- Asserção: uma declaração XML assinada sobre a identidade e os atributos do usuário.
SAML versus OpenID Connect
O SAML usa XML e está bem consolidado em softwares corporativos. O OpenID Connect usa JSON e JWTs e se encaixa mais naturalmente em aplicativos web e mobile modernos. Muitas organizações rodam ambos, escolhendo por aplicativo com base no que cada um suporta.
SAML e acesso a CI/CD
O SAML normalmente governa o acesso interativo e humano a plataformas, incluindo ferramentas de CI/CD. Os próprios pipelines não usam SAML para se autenticar aos serviços; eles usam tokens e OIDC. O SAML trata de pessoas fazendo login, não de jobs chamando APIs.
Considerações de segurança
A segurança do SAML repousa na validação de assinaturas e na configuração correta. Assinaturas validadas incorretamente, asserções reproduzidas e mapeamentos de atributos amplos demais são armadilhas clássicas. Como o IdP é a âncora de confiança, ele deve ser fortemente protegido.
Onde ele se encaixa
Para uma equipe que usa a Latchkey, o SAML governaria quem pode fazer login no dashboard por meio do seu IdP, enquanto a autenticação de runner e pipeline depende de credenciais com escopo e de curta duração, em vez de asserções SAML.
Principais conclusões
- O SAML usa asserções XML assinadas para habilitar single sign-on para acesso humano.
- Ele emparelha um provedor de identidade com provedores de serviço que confiam em suas assinaturas.
- Ele governa o login interativo, não a autenticação de pipeline máquina a máquina.