Pular para o conteúdo principal

Autenticação de Dois Fatores (2FA)

Segurança Aprimorada com Senhas de Uso Único Baseadas em Tempo

OmniCRM suporta autenticação de dois fatores (2FA) usando senhas de uso único baseadas em tempo (TOTP). Isso adiciona uma camada extra de segurança ao exigir que os usuários forneçam tanto sua senha quanto um código sensível ao tempo de um aplicativo autenticador.

Veja também: RBAC para permissões de gerenciamento de 2FA, Fluxos de Autenticação para detalhes do processo de login.

Propósito

2FA fornece:

  1. Segurança Aprimorada --- Protege contas mesmo que as senhas sejam comprometidas.
  2. Conformidade --- Atende aos requisitos de segurança para indústrias regulamentadas.
  3. Escolha do Usuário --- Opcional para usuários, pode ser aplicado por função ou globalmente.
  4. Padrão da Indústria --- Usa o protocolo TOTP compatível com Google Authenticator, Authy, Microsoft Authenticator e outros aplicativos padrão.

Como 2FA Funciona

Quando 2FA é habilitado para um usuário:

  1. Configuração --- O usuário escaneia um código QR com seu aplicativo autenticador durante o registro.
  2. Login --- Após inserir nome de usuário/senha, o usuário fornece o código de 6 dígitos de seu aplicativo.
  3. Verificação --- O sistema valida se o código baseado em tempo corresponde ao valor esperado.
  4. Acesso --- O usuário ganha acesso somente após ambos os fatores serem verificados.

Habilitando 2FA

Para Usuários Individuais

Os usuários podem habilitar 2FA para sua própria conta:

  1. Navegue até Configurações do Usuário ou Perfil
  2. Selecione Habilitar Autenticação de Dois Fatores
  3. Escaneie o código QR com um aplicativo autenticador
  4. Insira o código de verificação para confirmar a configuração
  5. Salve os códigos de backup em um local seguro

Backup & Recuperação

Códigos de Backup

Ao habilitar 2FA, os usuários recebem códigos de backup que podem ser usados se seu dispositivo estiver indisponível:

  • Cada código é de uso único
  • Armazene os códigos de forma segura offline
  • Gere novos códigos se todos forem usados

Redefinição de Admin

Se um usuário perder o acesso ao seu autenticador e todos os códigos de backup forem esgotados, um administrador com acesso ao banco de dados pode redefinir manualmente o 2FA do usuário limpando o campo totp_secret no banco de dados. O usuário pode então reabilitar o 2FA.

Integração de API

Habilitar 2FA para um usuário

POST /2fa/enable/user/{user_id}

{
"password": "current_password"
}

A resposta inclui a URI de provisionamento (para código QR) e códigos de backup.

Verificar configuração do 2FA

POST /2fa/verify-setup/user/{user_id}

{
"code": "123456"
}

Verificar 2FA durante o login

POST /2fa/verify/user/{user_id}

{
"code": "123456"
}

Retorna o token de acesso, token de atualização e dados do usuário após verificação bem-sucedida.

Regenerar códigos de backup

POST /2fa/backup-codes/regenerate/user/{user_id}

Requer autenticação. Retorna um novo conjunto de códigos de backup.

Melhores Práticas

  • Códigos de backup primeiro. Sempre salve os códigos de backup antes de concluir a configuração do 2FA.
  • Eduque os usuários. Forneça instruções claras para configuração e recuperação.
  • Processo de redefinição seguro. Verifique a identidade do usuário antes de redefinir manualmente o 2FA no banco de dados.

FAQ

Quais aplicativos autenticadores são suportados? Qualquer aplicativo compatível com TOTP (Google Authenticator, Authy, Microsoft Authenticator, 1Password, etc.).

E se eu perder meu telefone? Use um código de backup ou entre em contato com um administrador para redefinir o 2FA.

Posso usar SMS em vez de um aplicativo? Atualmente, apenas aplicativos autenticadores TOTP são suportados.

O 2FA é obrigatório? Depende da política da sua organização. O 2FA é tipicamente obrigatório para funções administrativas e de suporte, mas é opcional para usuários clientes. O sistema não impõe 2FA para contas de clientes (usuários com função de cliente não veem prompts de registro de 2FA).

Por quanto tempo os códigos TOTP são válidos? Os códigos se renovam a cada 30 segundos e têm uma pequena janela de tempo para validação (normalmente aceita códigos da janela atual de 30 segundos mais janelas anteriores/próximas para tolerância de desvio de relógio).