O que é OAuth 2.0 com PKCE
OAuth 2.0 é o protocolo padrão para um app pedir acesso em nome de um usuário sem nunca ver a senha dele. O usuário faz login na Cativa, a Cativa devolve um código temporário para o seu app, e o seu app troca esse código por umaccess_token.
PKCE (Proof Key for Code Exchange) é uma camada de segurança sobre o OAuth. Antes de mandar o usuário para o login, você gera um segredo aleatório (o code_verifier) e envia apenas o hash dele (o code_challenge). Na hora de trocar o código pelo token, você revela o code_verifier original. A Cativa recomputa o hash e confere. Isso impede que alguém que intercepte o código o use, porque não tem o code_verifier.
Os endpoints SSO da Cativa seguem o padrão OIDC e são organizados por slug do tenant (
{customerName}). Esse slug é o subdomínio público da comunidade. Confirme com o admin do tenant qual valor usar. A base dos endpoints é https://apis.cativalab.digital/tenant/api/v2/sso/{customerName}.O fluxo em uma olhada
1
Crie um OAuth App no Console
Vá em app.cativa.digital/admin/developers, aba OAuth Apps, clique em Criar app.Anote o
client_id e o client_secret retornados. O secret aparece uma única vez, guarde com cuidado num cofre de credenciais.2
Configure o redirect URI
No mesmo modal, adicione seu redirect URI (ex:
https://meuapp.com/callback, ou http://localhost:3000/callback para desenvolvimento). A redirect_uri que você enviar depois precisa bater exatamente com uma das cadastradas aqui.3
Redirecione o usuário para o /authorize
No frontend, gere um
code_verifier e code_challenge (PKCE), guarde o verifier na sessão e redirecione para o endpoint /authorize do tenant:4
Troque o code por um access_token no callback
Depois que o usuário consente, a Cativa redireciona para sua URL com A resposta segue o padrão OIDC:
?code=...&state=.... No backend, faça POST no endpoint /token do mesmo tenant, com o body em application/x-www-form-urlencoded:5
Pegue informações do usuário
Use o Resposta:O
access_token no endpoint userinfo:sub é o ID estável do usuário na Cativa. Use-o como chave para associar o usuário à sessão do seu app.O documento de descoberta OIDC do tenant fica em
https://apis.cativalab.digital/tenant/api/v2/sso/{customerName}/.well-known/openid-configuration e lista todos os endpoints (authorize, token, userinfo, jwks) e algoritmos suportados (S256 para PKCE, ES256 para assinatura do id_token). O JWKS público fica em https://apis.cativalab.digital/tenant/api/v2/sso/{customerName}/jwks. Bibliotecas como jose (Node) ou PyJWT (Python) leem o discovery e validam o id_token automaticamente.Próximos passos
Guia completo de SSO
SPA, backend e mobile, validação de
id_token via JWKS, renovação de token e erros comuns.Tenants e Customers
Entenda o conceito de
customerName no fluxo OIDC e quando o tenant aparece nas integrações.Primeira chamada de API
Para integrações server-to-server, use API Key direto em vez de OAuth.
Badges como permissão
Como o
sub do usuário se conecta ao que ele pode acessar na comunidade.