Configurações - ecosif-auth
Atualizado (MVP1): ver catálogo completo em variaveis_autenticacao_baseline.md.
Variáveis essenciais
Banco de dados
| Variável | Descrição | Obrigatório |
|---|---|---|
DATABASE_HOST / POSTGRES_HOST |
Host PostgreSQL | Sim |
DATABASE_PORT / POSTGRES_PORT |
Porta | Não (5432) |
DATABASE / POSTGRES_DB |
Nome do BD | Sim |
DATABASE_USER / POSTGRES_USER |
Usuário | Sim |
DATABASE_PASSWORD / POSTGRES_PASSWORD |
Senha | Sim |
JWT ECOSIF (auth + microsserviços + gateway)
| Variável | Descrição | Padrão |
|---|---|---|
AUTH_TOKEN_SECRET |
Secret HMAC — mesmo valor em todos os serviços Java | — |
TOKEN_EXPIRATION |
TTL em ms | 1800000 |
ECOSIF_JWT_SUBJECT_CLAIM |
Claim sub |
username |
Implementação: io.ecosif.security.jwt.TokenProvider no starter ecosif-spring-boot-starter-security (libs/).
Autenticação externa (external-login)
| Variável | Descrição | Padrão |
|---|---|---|
ECOSIF_AUTH_PROVIDER |
NONE, AZURE, AZURE_ENTERPRISE, GOOGLE |
NONE |
ECOSIF_ENABLE_LOCAL_AUTH |
Habilita signin local |
true |
ECOSIF_AUTH_AUTO_PROVISION |
Cria usuário no primeiro login externo | true |
ECOSIF_AUTH_DEFAULT_TENANT |
Tenant padrão auto-provision | TEMP_TENANT |
ECOSIF_AUTH_DEFAULT_ROLE |
Role padrão | STAFF |
ECOSIF_AZURE_CLIENT_ID / TENANT_ID |
Entra ID | — |
ECOSIF_AZURE_SCOPES |
Scopes MSAL | openid,profile,email |
ECOSIF_GOOGLE_CLIENT_ID |
Google GIS | — |
Modo de token nas APIs
| Variável | Descrição | Padrão |
|---|---|---|
ECOSIF_API_TOKEN_MODE |
ECOSIF_JWT (Modo A) |
ECOSIF_JWT |
Modos B/C: AZURE_ENTERPRISE_GATEWAY e GOOGLE_GATEWAY — backends como OAuth2 Resource Server (JWKS). Gateway: gateway_access_token_entra.md · gateway_access_token_google.md.
CORS, Flyway, logging
Ver env.template em ecosif-structure. CORS: ECOSIF_CORS. Flyway: ECOSIF_FLYWAY_ENABLED.
application.yml (trechos relevantes)
app:
auth:
tokenSecret: ${AUTH_TOKEN_SECRET}
tokenExpirationMsec: ${TOKEN_EXPIRATION:1800000}
subjectClaim: ${ECOSIF_JWT_SUBJECT_CLAIM:username}
ecosif:
auth:
providers: ...
provisioning: ...
Login externo (Microsoft/Google): variáveis ECOSIF_AUTH_* — ver variaveis_autenticacao_baseline.md.
Segurança (WebSecurityConfig)
Endpoints públicos:
- /actuator/**
- /api/auth/** (signin, external-login)
- /swagger-ui/**, /v3/api-docs/**
Demais rotas exigem JWT ECOSIF via TokenAuthenticationFilter do starter.
JWT — starter
| Componente | Pacote |
|---|---|
TokenProvider |
io.ecosif.security.jwt |
TokenAuthenticationFilter |
io.ecosif.security.jwt |
JwtProperties |
io.ecosif.security.config |
Versão atual: 0.7.05.202606102 em libs/ecosif-spring-boot-starter-security-*.jar.
Claims: sub (username ou userId), iat, exp.
Health checks
GET /actuator/health— público (usado na tela de login do Angular)- Prometheus:
/actuator/prometheus(se exposto)
Exemplo .env (baseline)
AUTH_TOKEN_SECRET=<mesmo-secret-em-todos-os-servicos-java>
TOKEN_EXPIRATION=1800000
ECOSIF_JWT_SUBJECT_CLAIM=username
ECOSIF_AUTH_PROVIDER=AZURE
ECOSIF_ENABLE_LOCAL_AUTH=true
ECOSIF_AUTH_AUTO_PROVISION=true
ECOSIF_API_TOKEN_MODE=ECOSIF_JWT
ECOSIF_AZURE_CLIENT_ID=...
ECOSIF_AZURE_TENANT_ID=...