MVP3 — Flexibilidade técnica
Ajustes de integração sem mapeamento de groups/claims (MVP4).
Funcionalidades
| ID | Funcionalidade | Variável |
|---|---|---|
| M3-01 | Remoção de signin-azure e azure:true em signin |
Código removido — usar external-login |
| M3-02 | Google login redirect (GIS) | ECOSIF_GOOGLE_AUTH_MODE=redirect |
| M3-03 | JWT sub alternativo |
ECOSIF_JWT_SUBJECT_CLAIM=userId |
| M3-04 | Issuer Azure explícito | ECOSIF_AZURE_EXPECTED_ISSUER |
M3-01 — Endpoints legados removidos
| Removido | Substituto |
|---|---|
POST /api/auth/signin-azure |
POST /api/auth/external-login |
POST /api/auth/signin com azure: true |
POST /api/auth/external-login (enviar azure:true retorna 400) |
POST /api/auth/signin permanece apenas para login local (usuário/senha) e integrações server-to-server (ecosif-automations).
M3-02 — Google redirect
ECOSIF_GOOGLE_AUTH_MODE=redirect # padrão: popup
No modo redirect, o GIS define login_uri como a URL da página de login. O Angular processa ?credential=<id_token> ao retornar.
Configuração Google Cloud Console: Authorized JavaScript origins e Authorized redirect URIs (mesma URL de login).
Limitação: o GIS pode enviar o credential via POST ao
login_uri. Em deploy SPA puro (Nginx estático), prefirapopupaté validar redirect no ambiente. Para redirect em produção, testar o fluxo completo no browser.
M3-03 — Claim sub do JWT ECOSIF
# Padrão (MVP1–2): email/username
ECOSIF_JWT_SUBJECT_CLAIM=username
# Alternativa: ID numérico do gr_user
ECOSIF_JWT_SUBJECT_CLAIM=userId
Obrigatório: mesmo valor em todos os serviços Java (ecosif-auth, masterdata, moviments, querys, reports).
O starter ecosif-spring-boot-starter-security (≥ 0.7.05.202606102) resolve o carregamento via SubjectAwareJwtSubjectUserDetailsService.
M3-04 — Issuer Azure customizado
ECOSIF_AZURE_EXPECTED_ISSUER=https://login.microsoftonline.com/{tenant}/v2.0
Se vazio, o issuer é derivado de ECOSIF_AZURE_TENANT_ID (comportamento MVP1).
Referências
- ../dev/autenticacao_unificada_mvp.md
- external-login-api.md
- ../dev/mvp2_operacao.md
- Proposta:
.internal_docs/proposta-completa-autenticacao.mdseção 16