Visão geral
Ao usar chaves de acesso sincronizadas, as pessoas fazem a autenticação com um provedor de chaves de acesso.
Para criar e autenticar com chaves de acesso, use a API WebAuthn para a Web ou a API Credential Manager para apps Android. Essas APIs processam a comunicação entre o cliente e o provedor da chave de acesso.
Embora essas APIs sejam chamadas de um cliente, como uma página da Web ou um app Android, você precisa implementar o restante da funcionalidade no servidor para concluir os casos de uso de autenticação.
Uma implementação de chave de acesso consiste em duas funcionalidades:
- Registro da chave de acesso. Use a API WebAuthn ou a API Credential Manager para permitir que o usuário crie uma chave de acesso. Armazenar a chave pública associada no servidor.
- Autenticação com uma chave de acesso: Receber um desafio de autenticação do servidor e usar a API WebAuthn ou a API Credential Manager para permitir que o usuário assine esse desafio com a chave de acesso. Verifique a assinatura no servidor. Se a assinatura for válida, autentique o usuário.
Bibliotecas do lado do servidor
Embora seja possível implementar a funcionalidade de chaves de acesso do lado do servidor do zero, recomendamos que você use uma biblioteca.
Um servidor compatível com a criação e autenticação de chaves de acesso é chamado de servidor FIDO2 ou servidor FIDO. Por extensão, vamos nos referir aqui às bibliotecas do lado do servidor que implementam o suporte a chaves de acesso como bibliotecas do lado do servidor FIDO.
Por que usar uma biblioteca?
Usar uma biblioteca FIDO do lado do servidor tem várias vantagens:
- Tempo e experiência do desenvolvedor. A especificação WebAuthn é complexa. As bibliotecas do lado do servidor da FIDO podem oferecer APIs simples para implementar chaves de acesso, economizando tempo e recursos de desenvolvimento.
- Capacidade de manutenção. A especificação WebAuthn ainda está sujeita a mudanças. O uso da versão mais recente de uma biblioteca mantida ativamente ajuda a manter sua implementação atualizada.
- Segurança e conformidade. Você quer que a implementação da chave de acesso esteja em conformidade com a especificação WebAuthn e os requisitos de segurança. As bibliotecas FIDO do lado do servidor podem ajudar você a manter sua implementação segura e em conformidade com a especificação. Dependendo do produto e do setor, sua implementação também pode estar sujeita a regulamentos que exigem o uso de padrões de segurança específicos para a autenticação.
Se possível, apoie financeiramente os projetos de código aberto de que seu produto depende.
Bibliotecas
- O repositório awesome-webauthn do GitHub inclui uma lista de bibliotecas do lado do servidor selecionadas pela comunidade. Você vai encontrar bibliotecas para JavaScript e TypeScript, Go, Python e muito mais.
- Uma coleção de bibliotecas está disponível em passkeys.dev e é mantida pelo Grupo da comunidade de adoção do WebAuthn do W3C (link em inglês).
- A FIDO Alliance faz referência a uma coleção de servidores FIDO2.