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:
- Segurança Aprimorada --- Protege contas mesmo que as senhas sejam comprometidas.
- Conformidade --- Atende aos requisitos de segurança para indústrias regulamentadas.
- Escolha do Usuário --- Opcional para usuários, pode ser aplicado por função ou globalmente.
- 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:
- Configuração --- O usuário escaneia um código QR com seu aplicativo autenticador durante o registro.
- Login --- Após inserir nome de usuário/senha, o usuário fornece o código de 6 dígitos de seu aplicativo.
- Verificação --- O sistema valida se o código baseado em tempo corresponde ao valor esperado.
- 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:
- Navegue até Configurações do Usuário ou Perfil
- Selecione Habilitar Autenticação de Dois Fatores
- Escaneie o código QR com um aplicativo autenticador
- Insira o código de verificação para confirmar a configuração
- 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).