Case: POC de SSO com Keycloak/OpenID Connect para debug rápido
Case: POC de SSO com Keycloak/OpenID Connect para debug rápido
Contexto
Precisávamos depurar integrações SSO/OIDC (Keycloak e outros provedores) sem acoplar testes ao monólito Rails. Debug direto no app principal era lento e arriscado; cada ajuste de redirect ou scope exigia deploy/staging.
O que foi feito
- POC em Node.js focada só no fluxo Authorization Code + PKCE.
- Página única que mostra tokens (ID/Access) e resposta do
userinfo, útil para validar claims, audience e expiração. - Logout implementado conforme OIDC (id_token_hint + post_logout_redirect_uri) para garantir encerramento real da sessão no provedor.
- Configuração via
.env(ouSSO_ENV_FILE), com defaults para Keycloak; scriptrun.shautomatiza build/run em Docker.
Fluxo (simplificado)
flowchart LR
User --> Login[/login gera PKCE/]
Login --> OIDC[Provedor OIDC<br/>/auth]
OIDC -->|code + state| Authorize[/authorize troca code por token/]
Authorize --> Tokens[Exibe ID/Access token]
Tokens --> Userinfo[/userinfo opcional/]
Tokens --> Logout[/logout -> OIDC logout/]
Operação e devX
- Sobe em segundos (
npm start) ou via Docker (run.sh); sem dependências além de Node. - Variáveis mínimas:
OIDC_CLIENT_ID,OIDC_CLIENT_SECRET,OIDC_REDIRECT_URI,OIDC_ISSUER_BASE_URL,OIDC_SCOPE. - Tokens e sessões ficam em memória; reiniciar limpa o estado e facilita rodadas de teste.
Impacto (anonimizado)
- Reduziu o ciclo “ajusta scope/redirect ↔ testa ↔ corrige” para minutos, sem tocar o Rails.
- Facilitou troubleshooting de logout e PKCE (validando
state,code_verifier) antes de integrar no produto. - Deu um checklist simples para outros times validarem clientes Keycloak/OIDC.
O que você pode reutilizar
- POC pequena para validar OIDC antes de integrar a apps maiores.
- Scripts de build/run em Docker com env file parametrizável.
- Fluxo de logout correto (id_token_hint + post_logout_redirect_uri) como referência.
Esta postagem está licenciada sob
CC BY 4.0
pelo autor.