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)
- MSAL/GIS obtém
id_tokenno browser. - Angular chama
POST /api/auth/external-login. - JWT ECOSIF é armazenado e enviado pelo
AuthInterceptor(não o token Microsoft).
Documentação relacionada
- external-login-api.md
- migracao-signin-azure.md
- runbook_azure_entra.md — deploy Microsoft Entra ID
- runbook_google_oauth.md — deploy Google OAuth
- configuracao_provedores.md — runtime Angular
- variaveis_autenticacao_baseline.md