Introdução para Integradores - ecosif-auth¶
Atualizado (MVP1): login externo via
POST /api/auth/external-login. Legadosignin-azureremovido. Ver autenticacao.md.
Bem-vindo!¶
Este documento fornece uma visão geral do serviço ecosif-auth para integradores que desejam utilizar a API.
O que é o ecosif-auth?¶
O ecosif-auth é o serviço central de autenticação e autorização do ecossistema eCosif. Ele fornece:
- Autenticação de usuários através de múltiplos métodos (local, Azure AD, OAuth2)
- Emissão de tokens JWT para acesso aos serviços ecosif
- Validação de tokens para outros serviços do ecossistema
Por que usar o ecosif-auth?¶
- ✅ Segurança: Autenticação robusta com tokens JWT
- ✅ Multi-método: Suporte a autenticação local, Azure AD e OAuth2
- ✅ Stateless: Tokens JWT não requerem sessão no servidor
- ✅ Bem documentado: API REST completa com Swagger/OpenAPI
- ✅ Padrões: Segue padrões REST e JWT amplamente adotados
Como Funciona¶
Fluxo Básico¶
- Login: Cliente faz login enviando credenciais
- Token: Serviço retorna token JWT
- Uso: Cliente usa token em requisições para serviços ecosif
- Validação: Cada serviço valida o token automaticamente
┌─────────┐ ┌──────────────┐ ┌─────────────┐
│ Cliente │────────>│ ecosif-auth │────────>│ Token │
│ │ Login │ │ │ JWT │
└─────────┘ └──────────────┘ └─────────────┘
│ │
│ │
│ ┌─────────────────────────────────┘
│ │
▼ ▼
┌──────────────────────────────────────┐
│ Outros Serviços ecosif │
│ (validam token automaticamente) │
└──────────────────────────────────────┘
Endpoints Principais¶
Autenticação¶
- POST
/api/auth/signin: Autenticação local ou Azure AD - POST
/api/auth/signin: Autenticação local (usuário/senha) - POST
/api/auth/external-login: Login Microsoft/Google (id_token → JWT ECOSIF)
Documentação¶
- GET
/swagger-ui.html: Interface interativa Swagger UI - GET
/v3/api-docs: Especificação OpenAPI 3.0 em JSON
Métodos de Autenticação¶
1. Autenticação Local¶
Usuário e senha armazenados no sistema: - Ideal para ambientes internos - Requer que usuário já esteja cadastrado
2. Autenticação Azure AD¶
Integração com Microsoft Azure Active Directory: - Ideal para empresas que usam Azure AD - Suporta criação automática de usuários - Não requer senha (Azure valida)
3. OAuth2 (Google)¶
Login via conta Google: - Ideal para aplicações que preferem SSO social - Configuração opcional
Tokens JWT¶
O que é JWT?¶
JWT (JSON Web Token) é um padrão aberto para transmitir informações de forma segura entre partes.
Estrutura do Token¶
O token JWT retornado contém:
- Header: Metadados (algoritmo, tipo)
- Payload: Claims (username, expiração, etc.)
- Signature: Assinatura para validação
Validade¶
- Padrão: 30 minutos
- Configurável: Via variável
TOKEN_EXPIRATION
Após expirar, é necessário fazer login novamente.
Base URL¶
- Desenvolvimento:
http://localhost:8080 - Produção: Configure conforme seu ambiente
Autenticação em Requisições¶
Para usar endpoints protegidos, inclua o token no header:
Authorization: Bearer <seu-token-jwt>
Exemplo:
GET /api/admin/docker-logs?service=ecosif-auth
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c3VhcmlvQGV4ZW1wbG8uY29tIiwiaWF0IjoxNjQwMDAwMDAwLCJleHAiOjE2NDAwMTgwMDB9.xyz
Códigos de Status HTTP¶
- 200 OK: Requisição bem-sucedida
- 201 Created: Recurso criado com sucesso
- 400 Bad Request: Dados inválidos
- 401 Unauthorized: Não autenticado ou credenciais inválidas
- 403 Forbidden: Não autorizado
- 404 Not Found: Recurso não encontrado
- 500 Internal Server Error: Erro interno do servidor
Formato de Respostas¶
Sucesso¶
{
"accessToken": "eyJhbGciOiJIUzI1NiJ9...",
"user": {
"id": "1",
"displayName": "João Silva",
"email": "joao.silva@exemplo.com",
"roles": ["ADMIN"],
"tenant": "empresa-exemplo"
},
"tenantName": "empresa-exemplo"
}
Erro¶
{
"success": false,
"message": "Mensagem de erro descritiva"
}
Próximos Passos¶
Para começar a integrar:
- Autenticação: Aprenda a autenticar usuários
- Uso da API: Saiba como usar a API
- Exemplos: Veja exemplos práticos
- Erros Comuns: Resolva problemas frequentes
Recursos Adicionais¶
- Swagger UI: Interface interativa para testar a API
- OpenAPI Spec: Especificação completa da API
- Documentação de Endpoints: Lista completa de endpoints
Suporte¶
Para suporte:
- Consulte a documentação completa em /docs
- Teste endpoints no Swagger UI
- Entre em contato com a equipe de desenvolvimento
Versão da API¶
Versão atual: 0.7.01.202511271
A API segue versionamento semântico. Mudanças que quebram compatibilidade serão sinalizadas com antecedência.