Aprenda a integrar chaves de acesso ao seu serviço.
Anatomia de um sistema de chaves de acesso
Um sistema de chaves de acesso consiste em alguns componentes:
- Parte confiável: no contexto da chave de acesso, uma parte confiável (RP, na sigla em inglês) processa a emissão e a autenticação da chave de acesso. A RP precisa operar um cliente (um site ou app que crie chaves de acesso ou se autentica com elas) e um servidor para registrar, armazenar e verificar as credenciais geradas por elas no cliente. Um app para dispositivos móveis de chave de acesso precisa ser vinculado a um domínio de servidor RP usando o mecanismo de associação fornecido pelo SO, como Digital Asset Links.
- Authenticator: um dispositivo de computação, como smartphone, tablet, laptop ou computador desktop, que pode criar e verificar chaves de acesso usando o recurso de bloqueio de tela oferecido pelo sistema operacional.
- Gerenciador de senhas: software instalado no dispositivo do usuário final que serve, armazena e sincroniza chaves de acesso, como o Gerenciador de senhas do Google.
Fluxo de registro
Use a API WebAuthn em um site ou a biblioteca do Gerenciador de credenciais em um app Android para criar e registrar uma nova chave de acesso.
Para criar uma nova chave de acesso, alguns componentes precisam ser fornecidos:
- ID da RP: forneça o ID da parte confiável no formato de um domínio da Web.
- Informações do usuário: o ID, o nome de usuário e um nome de exibição.
- Credenciais a serem excluídas: informações sobre chaves de acesso armazenadas anteriormente para evitar um registro duplicado.
- Tipos de chave de acesso: se é usado o próprio dispositivo ("autenticador de plataforma") como autenticador ou uma chave de segurança removível ("autenticador entre plataformas / de roaming"). Além disso, os autores das chamadas podem especificar se a credencial será detectada para que o usuário possa selecionar uma conta para fazer login.
Depois que uma RP solicita a criação de uma chave de acesso e o usuário a verifica com um desbloqueio de tela, uma nova chave de acesso é criada e uma credencial de chave pública é retornada. Envie-os ao servidor e armazene o ID da credencial e a chave pública para autenticação futura.
Aprenda a criar e registrar uma chave de acesso em detalhes:
- Na Web: criar uma chave de acesso para logins sem senha.
- No Android: como trazer a autenticação integrada para seus apps com chaves de acesso usando a API Credential Manager
Fluxo de autenticação
Use a API WebAuthn em um site ou a biblioteca do Gerenciador de credenciais em um app Android para autenticar com uma chave de acesso registrada.
Para autenticar com uma chave de acesso, há alguns componentes importantes a serem fornecidos:
- ID da RP: forneça o ID da parte confiável no formato de um domínio da Web.
- Desafio: um desafio gerado pelo servidor que impede ataques de repetição.
Depois que uma RP solicita uma autenticação com uma chave de acesso e o usuário a verifica com um desbloqueio de tela, uma credencial de chave pública é retornada. Envie-o para o servidor e verifique a assinatura com a chave pública armazenada.
Aprenda a autenticar com uma chave de acesso em detalhes:
- Na Web: faça login com uma chave de acesso usando o preenchimento automático de formulários.
- No Android: como trazer a autenticação integrada para seus apps com chaves de acesso usando a API Credential Manager
Integrações do lado do servidor
Ao criar uma chave de acesso, o servidor precisa fornecer parâmetros importantes, como um desafio, informações do usuário, IDs de credenciais a serem excluídos e muito mais. Em seguida, verifica a credencial de chave pública criada enviada do cliente e armazena a chave pública no banco de dados. Para autenticar com uma chave de acesso, o servidor precisa validar cuidadosamente a credencial e verificar a assinatura para permitir que o usuário faça login.
Saiba mais em nossos guias do lado do servidor:
- Introdução à implementação de chaves de acesso do lado do servidor
- Registro da chave de acesso do lado do servidor
- Autenticação da chave de acesso do lado do servidor
Mecanismos de autenticação (legados) atuais
Quando você oferece suporte a chaves de acesso no serviço atual, a transição do mecanismo de autenticação mais antigo, como senhas para chaves de acesso, não vai acontecer em um dia. Sabemos que você provavelmente eliminaria o método de autenticação mais fraco o quanto antes, mas isso pode confundir os usuários ou deixar alguns para trás. Recomendamos manter o método de autenticação atual por enquanto.
Existem alguns motivos para isso:
- Há usuários em um ambiente incompatível com chaves de acesso: o suporte a chaves de acesso está se expandindo amplamente em vários sistemas operacionais e navegadores, mas aqueles que usam versões mais antigas ainda não podem usá-las.
- O ecossistema das chaves de acesso ainda não amadureceu: o ecossistema das chaves de acesso está evoluindo. Os detalhes da UX e a compatibilidade técnica entre diferentes ambientes podem melhorar.
- Talvez os usuários ainda não estejam prontos para ter uma chave de acesso: há pessoas que ficam hesitantes em adotar novas coisas. À medida que o ecossistema das chaves de acesso amadurecer, eles vão ter uma noção de como elas funcionam e por que são úteis para elas.
Revise seu mecanismo de autenticação atual
Embora as chaves de acesso simplifiquem e simplifiquem a autenticação, manter os mecanismos antigos é como deixar uma brecha. Recomendamos revisitar e melhorar seus mecanismos de autenticação existentes.
Senhas
Criar senhas fortes e gerenciá-las para cada site são tarefas desafiadoras para os usuários. É altamente recomendável usar um gerenciador de senhas integrado ao sistema ou um autônomo. Ao fazer um pequeno ajuste no formulário de login, sites e apps podem fazer uma grande diferença na segurança e na experiência de login. Saiba como fazer essas mudanças:
- Práticas recomendadas para o formulário de login (Web)
- Práticas recomendadas do formulário de inscrição (Web)
- Fazer o login do usuário com o Gerenciador de credenciais (Android)
Autenticação de dois fatores
Embora o uso de um gerenciador de senhas ajude os usuários a lidar com senhas, nem todos os usam. Solicitar outra credencial chamada de senha única (OTP) é uma prática comum para proteger esses usuários. As OTPs geralmente são fornecidas por um e-mail, uma mensagem SMS ou um app autenticador, como o Google Authenticator. Como as OTPs geralmente são um texto curto gerado dinamicamente e válido apenas por um período limitado, ela diminui a probabilidade de invasão de conta. Esses métodos não são tão robustos quanto uma chave de acesso, mas muito melhores do que deixar os usuários apenas com uma senha.
Se você selecionar o SMS como forma de entregar uma OTP, confira as práticas recomendadas abaixo para simplificar a experiência do usuário na inserção da OTP.
- Práticas recomendadas para o formulário de OTP por SMS (Web)
- Verificação automática de SMS com a API SMS Retriever (Android)
Federação da identidade
A federação de identidade é outra opção para permitir que os usuários façam login com segurança e facilidade. Com a federação de identidade, sites e apps podem permitir que os usuários façam login usando a identidade do usuário de um provedor de identidade de terceiros. Por exemplo, o Fazer login com o Google oferece ótimas conversões para os desenvolvedores, e os usuários consideram isso mais fácil e preferível à autenticação baseada em senha. A federação de identidade é complementar às chaves de acesso. É ótima para se inscrever, já que o site ou app pode receber informações básicas de perfil do usuário em uma única etapa, enquanto as chaves de acesso são ótimas para simplificar a reautenticação.
Lembre-se de que, depois que o Chrome desativar cookies de terceiros em 2024, alguns sistemas de federação de identidade poderão ser afetados, dependendo de como eles são criados. Para atenuar o impacto, uma nova API do navegador chamada API Federated Credential Management (FedCM) está sendo desenvolvida. Se você executar um provedor de identidade, confira os detalhes e veja se precisa adotar a FedCM.
- API Federated Credential Management (Web, FedCM)
- Visão geral do recurso Fazer login com o Google para Web (Web, Fazer login com o Google)
- Visão geral do login com um toque no Android (Android, login com um toque)
"Links mágicos"
O login por link mágico é um método de autenticação em que um serviço fornece um link de login por e-mail para que o usuário possa clicar nele para se autenticar. Embora isso ajude os usuários a fazer login sem se lembrar de uma senha, alternar entre o navegador/app e o cliente de e-mail será um atrito. Além disso, como o mecanismo de autenticação depende do e-mail, a segurança fraca do provedor de e-mail pode colocar as contas do usuário em risco.
Recursos de aprendizagem
Web
Para integrar chaves de acesso ao seu site, use a API Web Authentication (WebAuthn). Para saber mais, confira os recursos a seguir:
- Criar uma chave de acesso para logins sem senha: um artigo que discute como permitir que os usuários criem chaves de acesso para um site.
- Fazer login com uma chave de acesso usando o preenchimento automático de formulários: um artigo que discute como um login sem senha com chaves de acesso precisa ser projetado para acomodar usuários de senhas já existentes.
- Implementar chaves de acesso com o preenchimento automático de formulário em um app da Web: um codelab que permite aprender a implementar chaves de acesso com o preenchimento automático de formulários em um app da Web para criar um login mais simples e seguro.
- Aprenda a implementar chaves de acesso com o preenchimento automático de formulário em um app da Web: um vídeo do workshop Implementar chaves de acesso com o preenchimento automático de formulários em um app da Web para implementar chaves de acesso com o preenchimento automático de formulários em um app da Web e criar um login mais simples e seguro.
- Criar seu primeiro app WebAuthn: um codelab que permite aprender a criar uma funcionalidade simples de reautenticação com uma chave de acesso no seu site.
Android
Para integrar chaves de acesso ao seu app Android, use a biblioteca do Gerenciador de credenciais. Para saber mais, confira os recursos abaixo:
- Fazer o login do usuário com o Gerenciador de credenciais (link em inglês): um artigo que discute como integrar o Gerenciador de credenciais ao Android. O Gerenciador de credenciais é uma API do Jetpack que oferece suporte a vários métodos de login, como nome de usuário e senha, chaves de acesso e soluções de login federadas (como o recurso Fazer login com o Google) em uma única API.
- Como trazer a autenticação integrada para seus apps com chaves de acesso usando a API Credential Manager: um artigo que discute como integrar chaves de acesso usando o Gerenciador de credenciais no Android.
- Aprenda a simplificar as jornadas de autenticação usando a API Credential Manager no seu app Android: aprenda a implementar a API Credential Manager para oferecer uma autenticação integrada e segura no app usando chaves de acesso ou senha.
- App de exemplo do Gerenciador de credenciais: um exemplo de código que executa o Gerenciador de credenciais adaptando chaves de acesso.
- Integrar o Gerenciador de credenciais à sua solução de provedor de credenciais | Desenvolvedores Android
UX
Aprenda recomendações de experiência do usuário com chaves de acesso: