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), prefira popup até 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