Por que precisamos do SHA-256 do certificado do cliente para Passkey funcionar?
Fundamento Técnico: Digital Asset Links (DAL)
O Passkey no Android utiliza o protocolo Digital Asset Links para estabelecer uma associação verificável e segura entre o aplicativo nativo do cliente e o domínio web da Unico. Esta vinculação é obrigatória por design do sistema operacional Android para autenticação com passkeys em aplicações móveis Google.
Como funciona a verificação de segurança
Antes de gerar um par de chaves para passkey, o autenticador Android verifica o Relying Party ID (RP ID) presente na resposta do servidor contra o nome de domínio especificado no arquivo Digital Asset Links. Sem essa verificação bem-sucedida, o Passkey simplesmente não funciona.
O que é o SHA-256 e por que é necessário
O SHA-256 fingerprint é um hash único gerado a partir do certificado de assinatura do aplicativo, usado para identificar a autenticidade e integridade do app.
Este certificado corresponde à chave usada para assinar o APK/AAB antes da distribuição na Google Play Store.
É necessário registrar este fingerprint no arquivo assetlinks.json hospedado no domínio da Unico sob o path
/.well-known/assetlinks.json
Estrutura do arquivo assetlinks.json
O arquivo deve incluir duas permissões específicas: delegate_permission/common.handle_all_urls (para Android App Links) e delegate_permission/common.get_login_creds (para compartilhamento de credenciais entre website e app Android), juntamente com o package name e o SHA-256 fingerprint do cliente.
Por que solicitamos essa informação?
Dados diferentes para debug vs. production: Os fingerprints associados às chaves de assinatura e upload são diferentes. É importante ter essa distinção clara, especialmente considerando que apps podem ter múltiplas versões (debug, release, diferentes product flavors)
Bloqueio total: O servidor precisa conhecer o app do cliente em dois lugares diferentes: no arquivo publicamente disponível (assetlinks.json) e na configuração do servidor (expected origin). Sem o SHA-256 correto, nenhuma operação de passkey funcionará
Como obter o SHA-256
É possível extrair o SHA-256 fingerprint usando a ferramenta keytool do Java Development Kit (JDK) ou encontrá-lo diretamente no Google Play Console na seção "App Signing" sob "Setup > App integrity".
Conclusão
O SHA-256 não é apenas um requisito técnico — é um mecanismo fundamental de segurança do Android para garantir que apenas o aplicativo legítimo do cliente possa criar e utilizar passkeys associados ao domínio da Unico. Sem ele, não há como estabelecer a confiança necessária entre o app e o servidor, tornando impossível ativar a funcionalidade de Passkey para aquele cliente.
Conteúdo relacionado
Atualizado
Isto foi útil?