Segurança e Tokens no Orion

Segurança e Tokens no Orion

Como Funciona a Autenticação no Orion

O Orion utiliza uma arquitetura de segurança moderna baseada em OAuth2 e Spring Security para garantir que apenas usuários autorizados acessem o sistema. O processo é dividido em etapas para maximizar a segurança e a praticidade.


1. Login Seguro

  • O usuário acessa a tela de login e informa suas credenciais (usuário e senha).

  • Se a autenticação de dois fatores (2FA) estiver ativada, um código de 6 dígitos é enviado por e-mail para o usuário.

  • O usuário informa o código recebido para completar o login.


2. Geração e Uso de Tokens

Após o login, o sistema gera dois tipos principais de tokens:

  • Access Token (Bearer Token):
    Usado para autorizar o acesso às funcionalidades do sistema. Ele é enviado automaticamente em cada requisição feita pelo frontend, garantindo que apenas usuários autenticados possam acessar os recursos.

  • Refresh Token:
    Usado para renovar o access token quando ele expira, sem exigir que o usuário faça login novamente. Isso proporciona uma experiência contínua e segura.


3. Armazenamento e Validação

  • Os tokens são armazenados de forma segura no banco de dados do Orion.

  • O frontend armazena o access token localmente e o envia em cada requisição.

  • O sistema valida o token a cada acesso, garantindo que ele seja válido e não tenha expirado.


4. Gerenciamento por Dispositivo

  • Cada dispositivo (computador, celular) recebe um token específico, permitindo controle detalhado sobre onde e como o usuário está autenticado.

  • Se necessário, tokens podem ser invalidados remotamente, aumentando a segurança.


5. Renovação Transparente

  • Quando o access token expira, o frontend utiliza o refresh token para obter um novo access token automaticamente, sem interromper o uso do sistema.


Finalidade de Cada Token

  • Basic Token:
    Utilizado apenas para autenticação inicial no endpoint /oauth/token.

  • Bearer Token (Access Token):
    Usado para autorizar todas as requisições à API. Deve ser enviado no cabeçalho das requisições como:
    Authorization: Bearer {access_token}

  • Refresh Token:
    Usado para renovar o access token quando ele expira. Ele é armazenado de forma segura e tem um ciclo de vida maior que o access token.


Segurança Adicional

  • Todos os dados sensíveis, como senhas e tokens, são criptografados.

  • Tokens expirados são removidos automaticamente, e todos os tokens podem ser invalidados em caso de alteração de configurações críticas.