A API FIDO2 permite que os aplicativos Android criem e usem credenciais fortes com base em chave pública para autenticar usuários. A API oferece uma implementação de cliente WebAuthn que oferece suporte ao uso de autenticadores de roaming BLE, NFC e USB (chaves de segurança), além de um autenticador de plataforma, que permite que o usuário faça a autenticação usando a impressão digital ou o bloqueio de tela.
Integração
O ponto de entrada da API FIDO2 é o Fido2ApiClient.
A API oferece suporte a duas operações:
- O registro é feito uma vez por autenticador por conta, quando o usuário associa um autenticador a uma conta.
- A assinatura é feita sempre que a parte confiável quer autenticar um usuário.
Tanto o registro quanto a assinatura exigem interação do usuário.
Interoperabilidade com seu site
É simples permitir que os usuários compartilhem credenciais entre o site e o aplicativo Android. Para fazer isso, use os Digital Asset Links. É possível declarar associações hospedando um arquivo JSON de Digital Asset Links no site e adicionando um link ao arquivo Digital Asset Link no manifesto do app.
Por exemplo, se você quiser associar https://example.com
a um app Android
com.example.android
, siga estas três etapas:
Etapa 1. Hospedar assetlinks.json
no seu domínio
Crie um arquivo JSON como este e hospede em https://example.com/.well-known/assetlinks.json
.
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "web",
"site" : "https://example.com"
}
},
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "android_app",
"package_name" : "com.example.android",
"sha256_cert_fingerprints" : [
"DE:AD:BE:EF"
]
}
}
]
Verifique se o site pode ser rastreado pelo Google e se ele é veiculado com o cabeçalho HTTP
Content-Type: application/json
.
sha256_cert_fingerprints
são as impressões digitais SHA256 do certificado de assinatura do app.
Confira mais detalhes na documentação sobre links de apps para Android.
Etapa 2. Link para assetlinks.json
no app Android
No app Android, adicione a seguinte linha ao arquivo de manifesto em <application>
:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Etapa 3. Adicione um recurso de string asset_statements
ao arquivo strings.xml.
A string asset_statements
é um objeto JSON que especifica os arquivos assetlinks.json
a serem carregados. É necessário fazer o escape de todos os apóstrofos e aspas que você usa na
string. Exemplo:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Para saber mais sobre como associar o app e o site, leia a documentação do SmartLock para senhas no Android.