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


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=...

Referências