A autenticação de dois fatores (A2F, ou 2FA – Two-factor authentication em inglês) melhora a segurança ao exigir não apenas uma senha, mas também um segundo fator, como um código gerado por um aplicativo autenticador.
Embora o ASP.NET Core suporte 2FA, ele não oferece suporte nativo para a geração de QR codes para configurar TOTP (Time-based One-time Password) com aplicativos autenticadores. Este artigo mostrará como simplificar esse processo usando a API da QR Plus.
Por Que Usar QR Codes para 2FA?
Os QR codes simplificam o processo de configuração de 2FA com um aplicativo autenticador. Em vez de inserir manualmente uma chave longa, os usuários podem escanear um QR code, que configura automaticamente seu aplicativo autenticador.
Adicionando QR Codes à Página de Configuração de 2FA Usando a QR Plus
Usar uma API externa como a QR Plus pode tornar a implementação simples e sem a necessidade de bibliotecas adicionais. Veja como fazer isso:
Passo 1: Adicionar a Diretiva Necessária
No topo da sua página Razor, adicione a seguinte diretiva para usar a codificação de URL:
@using System.Text.Encodings.Web
Passo 2: Incorporar o QR Code na Sua Página
Dentro da sua página de configuração de 2FA, use uma tag de imagem para incorporar o QR code. Certifique-se de que o URI TOTP esteja codificado para lidar corretamente com caracteres especiais:
<div id="qrCode">
<img src="https://api.qrplus.com.br/generate/png?size=250&margin=5&totp=@(UrlEncoder.Default.Encode(Model.AuthenticatorUri))" />
</div>
Passo 3: Testar Sua Aplicação
Certifique-se de testar sua aplicação para confirmar que o QR code é exibido corretamente e pode ser escaneado por aplicativos autenticadores.
Visão Geral da Documentação da Microsoft
A documentação oficial da Microsoft sugere a inclusão de uma biblioteca como qrcode.js
para gerar QR codes para 2FA. Esse método envolve baixar a biblioteca, adicioná-la ao seu projeto e escrever JavaScript personalizado para gerar o QR code.
Benefícios de Usar a QR Plus
- Simplicidade: Não há necessidade de instalar bibliotecas adicionais.
- Eficiência: Geração de QR codes rápida e fácil.
- Confiabilidade: O serviço externo lida com a renderização do QR code.
- Custo: A QR Plus oferece uma solução gratuita e simples, sem a necessidade de bibliotecas extras ou registro.
Considerações de Segurança
Embora usar um serviço externo como a QR Plus seja conveniente, é importante considerar as implicações de segurança. Certifique-se de que informações sensíveis, como chaves TOTP, sejam manipuladas com segurança e que você confie no provedor de serviços externo.
Conclusão
Ao integrar a QR Plus para a geração de QR codes, você pode simplificar significativamente o processo de configuração de 2FA para seus usuários. Essa abordagem é fácil de implementar e elimina a necessidade de bibliotecas adicionais, tornando-se uma solução prática para muitas aplicações ASP.NET Core.