# Introdução O FACETID (facet ID) é um identificador único usado em FIDO2/WebAuthn para aplicativos Android que fornece: | Recurso | Descrição | | --- | --- | | Verificação de Identidade do App | Ele identifica de forma única **qual aplicativo Android** está solicitando credenciais FIDO2, com base no **certificado de assinatura** do aplicativo. | | Previne Falsificação de Aplicativos | Apenas o aplicativo assinado com o **mesmo certificado** pode acessar as credenciais criadas sob aquele FACETID. Isso protege contra aplicativos maliciosos que fingem ser seu aplicativo. | | Vinculação de Credenciais | As credenciais FIDO2 (chaves públicas) são **vinculadas ao FACETID**, garantindo que só possam ser usadas pelo mesmo aplicativo no futuro. | | Âncora de Confiança no WebAuthn | O FACETID é enviado durante o registro e autenticação. As partes confiáveis o utilizam para **validar a origem do aplicativo** e impor controle de acesso a nível de aplicativo. | Para usar o Belvo Android SDK para autenticação biométrica, você precisa gerar um FACETID para seu aplicativo. Isso é essencial para operações FIDO2/WebAuthn e é usado para garantir que as credenciais estejam seguramente vinculadas ao seu aplicativo. Neste guia, vamos orientá-lo pelos passos para gerar um FACETID para seu aplicativo Android. ## Gerando FACETID Para gerar o FACETID do seu aplicativo: 1. Localize o certificado de assinatura do seu aplicativo (geralmente **.jks** ou **.keystore**). Por exemplo: my-release-key.jks 2. Exporte o certificado de assinatura no formato **.der**. ```shell Exportar Certificado de Assinatura ## Exportar o certificado keytool -exportcert \ -alias your-key-alias \ -keystore my-release-key.jks \ -storepass your-keystore-password \ -rfc > cert.pem ## Converter para o formato DER openssl x509 -in cert.pem -outform DER -out cert.der ``` 1. Gere o hash SHA-256 do certificado ```shell Gerar Hash SHA-256 openssl dgst -sha256 -binary cert.der | openssl base64 -A ``` 1. Converta Base64 para Base64URL: - Substitua `+` por `-` - Substitua `/` por `_` - Remova o preenchimento `=` no final da string. Por exemplo, `nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai/5ahhSE08=` torna-se `nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai_5ahhSE08`. 1. Construa o FACETID ```shell Exemplo de Construção do FACETID ## Formato do FACETID android:apk-key-hash: ## Exemplo com hash codificado em Base64URL android:apk-key-hash:nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai_5ahhSE08 ``` 1. Compartilhe seu FACETID com a Belvo. Feito! Feito! Você gerou com sucesso o FACETID do seu aplicativo. Depois de compartilhá-lo com a Belvo, você pode continuar com a integração do SDK Android da Belvo para pagamentos biométricos. ## Script Prático Nossa fantástica equipe de desenvolvedores criou um script prático para ajudar a automatizar o processo de geração do FACETID. **Como usar:** 1. Salve o código abaixo como `generate_facetid.sh`. 2. Atualize as variáveis `KEYSTORE_PATH`, `ALIAS` e `STOREPASS` com os detalhes do seu aplicativo. 3. Torne o script executável: `chmod +x generate_facetid.sh` 4. Execute o script: `./generate_facetid.sh` Confira abaixo: ```bash FACETID Generation Script #!/bin/bash # === CONFIGURAÇÃO === KEYSTORE_PATH="my-release-key.jks" ALIAS="your-key-alias" STOREPASS="your-keystore-password" # === ARQUIVOS TEMPORÁRIOS === CERT_PEM="cert.pem" CERT_DER="cert.der" # === 1. Exportar cert em formato PEM === echo "[*] Exportando cert para PEM..." keytool -exportcert -alias "$ALIAS" -keystore "$KEYSTORE_PATH" -storepass "$STOREPASS" -rfc > "$CERT_PEM" # === 2. Converter PEM para DER === echo "[*] Convertendo PEM para DER..." openssl x509 -in "$CERT_PEM" -outform DER -out "$CERT_DER" # === 3. Hash SHA-256 + Base64 === echo "[*] Gerando hash SHA-256..." BASE64_HASH=$(openssl dgst -sha256 -binary "$CERT_DER" | openssl base64 -A) # === 4. Converter Base64 para Base64URL === FACET_HASH=$(echo "$BASE64_HASH" | tr '+/' '-_' | tr -d '=') # === 5. Saída === echo "" echo "✅ FACETID:" echo "android:apk-key-hash:$FACET_HASH" ```