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.

Referências