Visão Geral Funcional - ecosif-auth
O que é o ecosif-auth?
O ecosif-auth é o serviço central de autenticação e autorização do ecossistema eCosif. Ele é responsável por:
- Autenticar usuários através de diferentes métodos (local, Azure AD, OAuth2)
- Emitir tokens JWT para acesso aos demais serviços do sistema
- Gerenciar perfis e permissões de usuários
- Fornecer informações sobre usuários autenticados
Contexto no Ecossistema eCosif
O ecosif-auth atua como o gateway de autenticação para todos os outros serviços:
┌─────────────────┐
│ Cliente │
│ (Frontend) │
└────────┬────────┘
│
▼
┌─────────────────────────────┐
│ ecosif-auth │
│ (Autenticação & JWT) │
└────────┬────────────────────┘
│
│ Token JWT
▼
┌──────────────────────────────────────────┐
│ Outros Serviços eCosif │
│ - ecosif-masterdata │
│ - ecosif-moviments │
│ - ecosif-querys │
│ - ecosif-reports │
│ - ecosif-compliance │
└──────────────────────────────────────────┘
Principais Funcionalidades
1. Autenticação Multi-Método
O sistema suporta três métodos de autenticação:
Autenticação Local
- Usuário e senha armazenados no banco de dados
- Senha criptografada com BCrypt
- Ideal para ambientes internos ou quando não há integração com provedores externos
Autenticação Azure AD
- Integração com Microsoft Azure Active Directory
- Suporte a criação automática de usuários
- Ideal para empresas que utilizam Azure AD
Autenticação OAuth2 (Google)
- Login via conta Google
- Configuração opcional
- Ideal para ambientes que preferem autenticação social
2. Geração de Tokens JWT
- Tokens seguros e assinados com HMAC SHA-256
- Validade configurável (padrão: 30 minutos)
- Stateless: não requer armazenamento de sessão no servidor
- Inclui informações do usuário (username, roles, tenant)
3. Gestão de Usuários
- Cadastro e manutenção de usuários
- Controle de ativação/desativação
- Gestão de expiração de contas
- Associação de usuários a tenants (empresas)
4. Perfis e Permissões
- Sistema de roles (perfis) de usuário
- Roles principais: ADMIN, STAFF
- Controle de acesso baseado em roles
5. Multi-Tenancy
- Suporte a múltiplas empresas (tenants)
- Isolamento de dados por tenant
- Cada usuário pertence a um tenant específico
6. Funcionalidades Administrativas
- Visualização de logs dos containers Docker
- Endpoints de monitoramento (health check, métricas)
Público-Alvo
Usuários Finais
- Funcionários de empresas que utilizam o sistema eCosif
- Administradores do sistema
- Usuários que precisam acessar os serviços eCosif
Desenvolvedores
- Equipe de desenvolvimento eCosif
- Desenvolvedores de integrações externas
- Equipe de DevOps
Integradores
- Empresas que integram seus sistemas com eCosif
- Desenvolvedores de aplicações que consomem a API
Benefícios
Para Usuários
- ✅ Login único (SSO) para todos os serviços eCosif
- ✅ Autenticação segura com tokens JWT
- ✅ Suporte a múltiplos métodos de login
Para Desenvolvedores
- ✅ API REST bem documentada (Swagger/OpenAPI)
- ✅ Arquitetura clara e manutenível
- ✅ Código aberto e extensível
Para a Empresa
- ✅ Centralização da autenticação
- ✅ Segurança robusta
- ✅ Escalabilidade horizontal
- ✅ Integração com Azure AD e OAuth2
Casos de Uso Principais
- Login de Usuário: Um funcionário acessa o sistema eCosif pela primeira vez no dia
- Autenticação Azure AD: Uma empresa usa Azure AD e seus funcionários fazem login automaticamente
- Criação de Usuário: Novo funcionário é criado no sistema via Azure AD
- Renovação de Token: Token JWT expira e o usuário precisa fazer login novamente
- Acesso a Serviços: Um serviço ecosif-masterdata valida o token JWT do usuário
Tecnologias e Padrões
- REST API: Interface HTTP RESTful
- JWT: Tokens JSON Web Token para autenticação stateless
- Spring Security: Framework de segurança para Java
- BCrypt: Hash de senhas seguro
- OAuth2: Protocolo de autorização (opcional)
- OpenAPI/Swagger: Documentação interativa da API
Próximos Passos
Para mais informações, consulte:
- Objetivos: Objetivos e metas do sistema
- Regras de Negócio: Regras e validações do sistema
- Casos de Uso: Casos de uso detalhados