Autenticação — guia para integradores

Documentação canônica: integradores/autenticacao.md · external-login-api.md

Contrato atual de login no ecosif-auth (MVP1 Modo A — JWT ECOSIF).

Endpoints

Método Rota Quando usar
POST /api/auth/signin Login local (usuário + senha). Usado por ecosif-automations e integrações server-to-server.
POST /api/auth/external-login Login Microsoft Entra, Azure Enterprise ou Google — envie o id_token do IdP.

Removidos (não usar)

Legado Substituição
POST /api/auth/signin-azure 404 — use POST /api/auth/external-login
POST /api/auth/signin com "azure": true 400 — use external-login
Fluxo oauth2Login server-side nos microsserviços Removido — login externo só via external-login + JWKS no ecosif-auth

external-login — request

{
  "provider": "AZURE",
  "token": "<id_token do Entra ID>",
  "tokenType": "ID_TOKEN"
}
provider Descrição
AZURE Contas Microsoft (Entra ID)
AZURE_ENTERPRISE Azure Enterprise (API scope)
GOOGLE Google Identity Services

signin local — request

{
  "username": "usuario@empresa.com",
  "password": "senha"
}

Não envie "azure": true — retorna 400.

Resposta (signin e external-login)

{
  "accessToken": "<JWT_ECOSIF>",
  "user": {
    "id": "1",
    "displayName": "Nome",
    "email": "user@empresa.com",
    "roles": ["STAFF"],
    "tenant": "TEMP_TENANT"
  },
  "tenantName": "TEMP_TENANT"
}

Use o JWT nas APIs: Authorization: Bearer <accessToken>.

O JWT é emitido e validado pelo ecosif-spring-boot-starter-security (io.ecosif.security.jwt.TokenProvider) nos microsserviços Java.

Fluxo Angular (referência)

  1. MSAL/GIS obtém id_token no browser.
  2. Angular chama POST /api/auth/external-login.
  3. JWT ECOSIF é armazenado e enviado pelo AuthInterceptor (não o token Microsoft).

Documentação relacionada