L'API FIDO2 consente alle applicazioni Android di creare e utilizzare credenziali efficaci e attestate basate su chiave pubblica per autenticare gli utenti. L'API fornisce un'implementazione WebAuthn Client che supporta l'utilizzo di BLE, NFC e USB roaming (token di sicurezza), nonché un autenticatore di piattaforma, che consente all'utente di eseguire l'autenticazione utilizzando la propria impronta o il blocco schermo.
Integrazione
Il punto di ingresso dell'API FIDO2 è Fido2ApiClient.
L'API supporta due operazioni:
- La registrazione viene effettuata una volta per ogni autenticatore per account, quando l'utente associa un autenticatore a un account.
- La firma viene eseguita ogni volta che la parte richiedente vuole autenticare un utente.
Sia la registrazione che la firma richiedono l'interazione dell'utente.
Un'applicazione di esempio che dimostra l'utilizzo delle API è disponibile all'indirizzo https://github.com/android/identity-samples/tree/main/Fido2.
Interoperabilità con il sito web
Consentire agli utenti di condividere facilmente le credenziali tra siti web e app Android è semplice. Per farlo, utilizza Digital Asset Links. 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 file manifest dell'app.
Ad esempio, se vuoi associare https://example.com
a un'app per Android
com.example.android
, sono necessari i 3 passaggi seguenti:
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 possibile eseguire la scansione da parte di Google e che sia pubblicato con l'intestazione HTTP Content-Type: application/json
.
sha256_cert_fingerprints
è le fingerprint SHA256 del certificato di firma della tua app.
Puoi trovare ulteriori dettagli nella documentazione relativa ai link per app Android.
Passaggio 2: Collega a assetlinks.json
nell'app 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 rows.xml
La stringa asset_statements
è un oggetto JSON che specifica i file assetlinks.json
da caricare. Devi eseguire l'escape di tutti gli apostrofi e delle virgolette utilizzati 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 SmartLock for Passwords su Android.