API FIDO2 per Android

L'API FIDO2 consente alle applicazioni Android di creare e utilizzare credenziali basate su chiavi pubbliche efficaci e attestate per autenticare gli utenti. L'API fornisce un'implementazione di client WebAuthn che supporta l'utilizzo 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 avviene ogni volta che la terza parte attendibile vuole autenticare un utente.

Sia la registrazione che la firma richiedono l'interazione dell'utente.

Interoperabilità con il tuo sito web

È facile consentire agli utenti di condividere facilmente le credenziali tra il tuo sito web e la tua applicazione per Android. Per farlo, utilizza i link agli 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: Ospitare 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.

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 strings.xml

La stringa asset_statements è un oggetto JSON che specifica i file assetlinks.json da caricare. Devi eseguire l'interpretazione letterale di eventuali apici e 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 Smart Lock per le password su Android.