O Laravel Fortify é um pacote de autenticação de back-end para Laravel que suporta autenticação de dois fatores (2FA) por meio de senhas únicas baseadas no tempo (TOTP). É flexível e agnóstico ao empregado de usuários de aplicativos do cliente TOTP, o que significa que não o vincula especificamente ao Google Authenticator e pode trabalhar com qualquer aplicativo de autenticação baseado em TOTP, incluindo authy.
o que o laravel fortify faz para 2fa
O Laravel Fortify fornece a lógica de back -end para gerar as teclas secretas 2FA, armazená -las com segurança, gerar códigos de recuperação e validar tokens TOTP durante o login. Ele usa a chave secreta de dois fatores do usuário para verificar a senha única gerada por qualquer aplicativo autenticador que suporta o algoritmo TOTP padrão (RFC 6238). A fortificação não exige ou restringe qual aplicativo móvel ou de desktop o usuário deve usar.
Usando authy em vez do Google Authenticator
Authy e o Google Authenticator são aplicativos autenticadores baseados em TOTP. Ambos geram códigos de 6 dígitos a cada 30 segundos com base em uma chave secreta compartilhada durante a configuração (normalmente digitalizando um código QR). O Laravel Fortify funciona perfeitamente com qualquer aplicativo cliente que suporta esse padrão. Portanto, você pode usar absolutamente o Authy em vez do Google Authenticator com o Laravel Fortify.
Pontos -chave sobre Authy e Google Authenticator neste contexto:
- Compatibilidade: Authy usa o mesmo padrão TOTP do Google Authenticator; portanto, qualquer configuração 2FA no Laravel Fortify funcionará com qualquer aplicativo sem nenhuma alteração no seu back -end do Laravel.
-Experiência do usuário: Authy oferece algumas vantagens sobre o Google Authenticator, como sincronizar tokens entre dispositivos (suporte a vários dispositivos), backups de nuvem criptografadas e aplicativos de desktop (historicamente, atualmente centrados em dispositivos móveis), o que pode criar uma melhor experiência do usuário.
- Segurança: Authy tem opções para proteção de pinos e segurança biométrica no aplicativo e backups criptografados, enquanto o Google Authenticator não possui backups de nuvem criptografadas e sincronização de vários dispositivos. Esses recursos podem tornar o Authy mais fácil de usar e resiliente contra a perda de dispositivos da perspectiva de um usuário.
- Configuração no Laravel Fortify: A única alteração na sua implementação do Laravel Fortify seria fornecer o código QR ou a chave secreta para o usuário para digitalização em authy, em vez do Google Authenticator. Como ambos os aplicativos leem o mesmo formato, o código QR Fortify gera funciona fora da caixa com qualquer um dos aplicativos.
Considerações de implementação
1. Exibição do código QR do frontend: Ao ativar o 2FA, o Fortify geralmente gera um código QR com base na chave secreta. Este código QR pode ser digitalizado pelos aplicativos Authy ou Google Authenticator. Seu front -end só precisa renderizar esse código QR e o usuário pode escolher o aplicativo preferido. Nenhuma alteração de código de back -end é necessária.
2. Etapa de confirmação: um problema às vezes encontrado com o Laravel Fortify é que a possibilidade de 2FA sem confirmar o código inserido pode bloquear os usuários se eles não concluirem a configuração corretamente. A implementação de uma etapa de confirmação em que o usuário insere um código gerado pelo Authy (ou Google Authenticator) após a digitalização do código QR é uma prática recomendada. Isso se aplica independentemente do aplicativo de autenticação usado.
3. Códigos de recuperação: o Fortify fornece códigos de recuperação para desvio 2FA se o usuário perder o acesso ao aplicativo Authenticator. Esses códigos funcionam independentemente da escolha do aplicativo (Authy ou Google Authenticator).
Resumo das diferenças da perspectiva do usuário
- Vantagens authy: **
- Suporte de vários dispositivos e sincronização automática de tokens 2FA.
- Backups de nuvem criptografadas para evitar a perda de tokens na perda de dispositivo.
- PIN opcional e segurança biométrica para o aplicativo.
- Suporte ao aplicativo para desktop e navegador (embora alguns aplicativos de desktop tenham sido descontinuados no início de 2024).
- Autenticação baseada em push (embora não seja TOTP padrão, mais relevante para outras implementações).
- Vantagens do Google Authenticator: **
- mais amplamente conhecido e apoiado por muitos serviços.
- Aplicativo mais simples, infraestrutura de apoio menos complexa (sem contas, sem backups).
- totalmente offline após a configuração inicial (sem backups em nuvem).
Do ponto de vista da integração do Laravel Fortify, essas diferenças não têm conseqüências, pois os códigos TOTP de qualquer aplicativo são validados da mesma maneira por fortificar.
Notas adicionais sobre o uso do Fortify
O Laravel Fortify não fornece vistas de front -end ou interface do usuário; Ele fornece serviços de back -end para autenticação. Muitos desenvolvedores usam o Fortify com o Laravel JetStream ou outros kits de interface do usuário. Independentemente da interface do usuário, a chave é que a Fortify gera o segredo 2FA e valida os códigos, deixando a escolha do aplicativo autenticador ao usuário.
Se for necessária a personalização para melhorar melhor o UX ou lidar com a recuperação da conta (adicionando um sinalizador "Two_Factor_Confirmed", personalizando visualizações, etc.), ela pode ser implementada na camada fortificada, mas é independente da escolha entre o Authy e o Google Authenticator.
Conclusão
Sim, você pode usar o Authy em vez do Google Authenticator no Laravel Fortify, sem nenhuma alteração necessária para a implementação do 2FA de back -end. Ambos os aplicativos usam o mesmo padrão TOTP totalmente suportado pela Fortify. A escolha do Authy pode oferecer recursos aprimorados de usabilidade e backup para seus usuários, especialmente em cenários de perda de dispositivo ou acesso de vários dispositivos, mas do ponto de vista do desenvolvedor de Laravel, a integração permanece a mesma. Os usuários simplesmente digitalizam o código QR fornecido pela Fortify com seu aplicativo preferido para configurar o 2FA.
Essa flexibilidade é por design, permitindo que o Laravel fortify funcione com qualquer código TOTP de geração de aplicativos, incluindo, entre outros, o Google Authenticator, Authy, Microsoft Authenticator e outros.