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 gerenciam 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 seus casos de uso de autenticação.
Uma implementação de chave de acesso consiste em duas funcionalidades:
- Registro de 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. Receba um desafio de autenticação no servidor e use a API WebAuthn ou a API Credential Manager para permitir que o usuário assine esse desafio com a chave de acesso. Verificar 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 FID. 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?
O uso de 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 FIDO podem fornecer APIs simples para implementar chaves de acesso, o que pode economizar tempo e recursos de desenvolvimento.
- Capacidade de manutenção. A especificação do WebAuthn ainda está sujeita a mudanças. Usar a versão mais recente de uma biblioteca mantida ativamente ajuda a manter sua implementação atualizada.
- Segurança e compliance. Você quer que a implementação da chave de acesso esteja em conformidade com a especificação WebAuthn e os requisitos de segurança dela. As bibliotecas do lado do servidor FIDO podem ajudar a manter sua implementação segura e em conformidade com a especificação. Dependendo do produto e do setor, a implementação também pode estar sujeita a regulamentações que exigem o uso de padrões de segurança específicos para autenticação.
Se possível, considere financiar os projetos de código aberto de que seu produto se baseia.
Bibliotecas
- O repositório awesome-webauthn do GitHub inclui uma lista de bibliotecas do lado do servidor selecionadas pela comunidade (links em inglês). Você encontrará bibliotecas para JavaScript e TypeScript, Go, Python e muito mais.
- Uma coleção de bibliotecas está disponível em passkeys.dev. Ela é mantida pelo Grupo da comunidade de adoção da WebAuthn do W3C (links em inglês).
- A FIDO Alliance referencia uma coleção de servidores FIDO2.