0004 — Login Firebase para administradores e usuários de apps terceiros¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-30 · Decidido em: 2026-04-15
Contexto¶
Além do login pAbast (usuário do ERP), há duas audiências que autenticam por Google/Firebase: a equipe xadm (que opera a área administrativa) e usuários finais de apps terceiros que não têm credencial pAbast.
Decisão¶
Validar o Firebase ID Token (pelo JWKS público do Google) em dois endpoints:
POST /api/auth/firebase/login— exclusivo para@xadm.com.br; emite JWT comxadm_admin=true(scope=admin). E-mail de outro domínio → 403.POST /api/auth/firebase/client-login— para usuários de app terceiro; exigeclientecomoauth_firebaseemauth_methodse aprovação da equipe xadm (fila emoauth_access_requests, papéisUSER/ADMIN). Sem aprovação, cria o pedido e retorna 403.
O FirebaseTokenValidator é lazy: sem AUTH_FIREBASE_PROJECT_ID, o bean não
é registrado e os endpoints respondem 503 — o serviço roda sem Firebase.
Consequências¶
- Reutiliza a infraestrutura Firebase existente, sem novo IdP.
- O acesso de terceiros é moderado (request → approve/reject → role), com a
fila administrada por
/api/admin/oauth/firebase/requests. - Tokens Firebase > 8 KB são rejeitados de imediato (400).
Alternativas consideradas¶
- Usuário admin em
db_auth: mais operação sem ganho de segurança. Descartado. - Usar o JWT pAbast para admin: o
scopenão distingue admin de usuário. Descartado.