Migração: signin-azure → external-login
Guia para integradores e frontends que usavam o fluxo legado de login Microsoft.
O que mudou
| Antes (legado) | Agora (MVP3+) |
|---|---|
POST /api/auth/signin com { "azure": true, "username": "..." } |
400 — mensagem orienta usar external-login |
POST /api/auth/signin-azure com criação de usuário Azure |
404 — rota removida |
| Backend confiava no username sem validar token IdP | Backend valida id_token via JWKS (RemoteJwksTokenValidator) |
Novo fluxo
Browser → MSAL / GIS → id_token
→ POST /api/auth/external-login { provider, token, tokenType }
→ ecosif-auth valida JWKS + provisiona usuário (se habilitado)
→ JWT ECOSIF (accessToken)
→ APIs /ecosif-* com Authorization: Bearer
Exemplo curl (homolog)
AUTH_URL="http://localhost:8081/ecosif-auth"
# Login local (inalterado)
curl -s -X POST "$AUTH_URL/api/auth/signin" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"***","azure":false}'
# Login externo (substitui signin-azure)
curl -s -X POST "$AUTH_URL/api/auth/external-login" \
-H "Content-Type: application/json" \
-d '{"provider":"AZURE","token":"<id_token>","tokenType":"ID_TOKEN"}'
Checklist de migração
Status produto eCosif (auth + Angular + smoke P4-06): concluído.
Integradores externos ainda devem validar o próprio cliente ao migrar.
- [x] Remover chamadas a
/api/auth/signin-azure(Angular sem referências; rota 404) - [x] Remover
azure: trueno body dosignin(400 se enviado) - [x] Frontend: enviar
id_tokenparaexternal-login(ecosif-angularlogin.component) - [x] Confirmar
AUTH_TOKEN_SECRETidêntico em auth + microsserviços (smoke JWT cross-service) - [x] Auto-provision:
ECOSIF_AUTH_AUTO_PROVISION+ECOSIF_AUTH_DEFAULT_TENANT/ROLE