L'API FIDO2 consente alle applicazioni Android di creare e utilizzare credenziali basate su chiavi pubbliche efficaci e attestate allo scopo di autenticare gli utenti. L'API fornisce un'implementazione di client WebAuthn che supporta l'uso di autenticatori roaming BLE, NFC e USB (token di sicurezza) e un autenticatore di piattaforma che consente all'utente di autenticarsi utilizzando l'impronta o la schermata di blocco.
Integrazione
Il punto di contatto dell'API FIDO2 è Fido2ApiClient.
L'API supporta due operazioni:
- La registrazione avviene una volta per ogni authenticator per account, quando l'utente associa un authenticator a un account.
- La firma viene eseguita ogni volta che la parte coinvolta vuole autenticare un utente.
Sia la registrazione che la firma richiedono l'interazione dell'utente.
Un'applicazione di esempio che dimostra l'utilizzo dell'API è disponibile all'indirizzo https://github.com/android/identity-samples/tree/main/Fido2.
Interoperabilità con il sito web
È facile consentire agli utenti di condividere facilmente le credenziali sul tuo sito web e nella tua applicazione per Android. Per farlo, utilizza i link ai asset digitali. Puoi dichiarare le associazioni ospitando un file JSON Digital Asset Links sul tuo sito web e aggiungendo un link al file Digital Asset Link al manifest della tua app.
Ad esempio, se vuoi associare https://example.com
a un'app per Androidcom.example.android
, ecco i tre passaggi necessari:
Passaggio 1: Ospita assetlinks.json
nel tuo dominio
Crea un file JSON come questo e ospitalo all'indirizzo 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"
]
}
}
]
Assicurati che sia scansionabile da Google e che venga pubblicato con l'intestazione HTTPContent-Type: application/json
.
sha256_cert_fingerprints
sono le impronte SHA256 del certificato di firma della tua app.
Scopri di più nella documentazione di Link per app Android.
Passaggio 2: Collega a assetlinks.json
nell'app per Android
Nell'app per Android, aggiungi la seguente riga al file manifest in <application>
:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Passaggio 3: Aggiungi una risorsa stringa asset_statements
al file variables.xml
La stringa asset_statements
è un oggetto JSON che specifica i file assetlinks.json
da caricare. Devi eseguire l'interpretazione letterale di ogni apostrofi e virgolette utilizzate nella stringa. Ad esempio:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Per scoprire di più su come associare la tua app e il tuo sito web, leggi la documentazione di Smart Lock per le password su Android.