Pular para conteúdo

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

  1. Login de Usuário: Um funcionário acessa o sistema eCosif pela primeira vez no dia
  2. Autenticação Azure AD: Uma empresa usa Azure AD e seus funcionários fazem login automaticamente
  3. Criação de Usuário: Novo funcionário é criado no sistema via Azure AD
  4. Renovação de Token: Token JWT expira e o usuário precisa fazer login novamente
  5. 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: