Voltar ao blog
OAuth2
OpenID Connect
JWT
Spring Boot

OAuth2 explicado para desenvolvedores

Guia prático de OAuth2 e OpenID Connect: fluxos, tokens, scopes e como integrar autenticação em APIs Spring Boot com GateKeeper.

10 min de leitura

OAuth2 é o padrão mais usado para autorizar acesso a APIs sem compartilhar senha do usuário. OpenID Connect (OIDC) adiciona uma camada de identidade — quem é o usuário — em cima do OAuth2. Juntos formam a base de login moderno em SaaS, mobile e backends.

Conceitos essenciais

  • Resource Owner — o usuário final
  • Client — sua aplicação (web, mobile, API)
  • Authorization Server — emite tokens (no GateKeeper, via Keycloak por tenant)
  • Access Token — JWT ou opaque token para chamar APIs protegidas
  • ID Token (OIDC) — claims de identidade (sub, email, etc.)

Fluxos mais comuns

Authorization Code (recomendado para web e mobile)

O usuário é redirecionado ao provedor, faz login, e seu app troca um code por tokens no backend. É o fluxo padrão para login social e SPAs com backend confiável.

Resource Owner Password (legado controlado)

Email e senha enviados diretamente ao token endpoint — útil em integrações server-side confiáveis (como a API GateKeeper /login), não recomendado para apps públicos que guardam credenciais no browser.

Client Credentials

Máquina-a-máquina: client_id + secret para serviços internos, sem usuário humano.

OpenID Connect em uma frase

OIDC padroniza como obter informação do perfil do usuário. Além do access token, você recebe um ID Token JWT assinado. Sua API valida assinatura via JWKS, lê sub e roles, e aplica RBAC.

Integração prática com GateKeeper

No GateKeeper, cada tenant tem realm Keycloak isolado. Fluxo típico para apps Spring Boot:

  • Configure tenant e client no Console
  • Instale a SDK Spring Boot e configure application.yml
  • Login/registro via API /sdk/integration/v1/*
  • Proteja rotas com @GatekeeperProtected
  • Login social Google: start → redirect → exchange

Boas práticas de segurança

  • Nunca exponha client_secret no frontend
  • Use HTTPS e valide redirect_uri
  • Tokens curtos + refresh token rotacionado
  • Envie X-GK-Tenant-ID em todas as chamadas
  • Valide JWT via JWKS, não apenas decode base64

Conclusão

OAuth2 resolve autorização; OIDC resolve identidade. Plataformas como o GateKeeper encapsulam ambos com multi-tenant, console e SDK — para você não reimplementar o mesmo em cada produto.

Compare abordagens em Keycloak vs Auth0 vs GateKeeper ou comece pela integração em 3 passos.