Autenticazione con impronta digitale

Questa guida illustra come aggiungere l'autenticazione con impronta digitale, introdotta in Android 6.0, a un'applicazione Xamarin.Android.

Panoramica dell'autenticazione con impronta digitale

L'arrivo di scanner di impronte digitali nei dispositivi Android offre alle applicazioni un'alternativa al metodo tradizionale di autenticazione utente/password. L'uso delle impronte digitali per autenticare un utente consente a un'applicazione di incorporare la sicurezza meno invadente rispetto a un nome utente e una password.

Le API FingerprintManager sono destinate ai dispositivi con uno scanner di impronte digitali e eseguono il livello API 23 (Android 6.0) o versione successiva. Le API sono disponibili nello spazio dei Android.Hardware.Fingerprints nomi . La libreria di supporto Android v4 fornisce versioni delle API di impronta digitale destinate alle versioni precedenti di Android. Le API di compatibilità sono disponibili nello spazio dei Android.Support.v4.Hardware.Fingerprint nomi e vengono distribuite tramite il pacchetto NuGet Xamarin.Android.Support.v4.

FingerprintManager (e la controparte di Support Library, FingerprintManagerCompat) è la classe principale per l'uso dell'hardware di scansione delle impronte digitali. Questa classe è un wrapper android SDK intorno al servizio a livello di sistema che gestisce le interazioni con l'hardware stesso. È responsabile dell'avvio dello scanner di impronte digitali e della risposta al feedback dello scanner. Questa classe ha un'interfaccia piuttosto semplice con solo tre membri:

  • Authenticate : questo metodo inizializzerà lo scanner hardware e avvierà il servizio in background, in attesa che l'utente analizzi l'impronta digitale.
  • EnrolledFingerprints : questa proprietà restituirà true se l'utente ha registrato una o più impronte digitali con il dispositivo.
  • HardwareDetected : questa proprietà viene usata per determinare se il dispositivo supporta l'analisi delle impronte digitali.

Il FingerprintManager.Authenticate metodo viene usato da un'applicazione Android per avviare lo scanner di impronte digitali. Il frammento di codice seguente è un esempio di come richiamarlo usando le API di compatibilità della libreria di supporto:

// context is any Android.Content.Context instance, typically the Activity 
FingerprintManagerCompat fingerprintManager = FingerprintManagerCompat.From(context);
fingerprintManager.Authenticate(FingerprintManager.CryptoObject crypto,
                                int flags,
                                CancellationSignal cancel,
                                FingerprintManagerCompat.AuthenticationCallback callback,
                                Handler handler
                               );

Questa guida illustra come usare le FingerprintManager API per migliorare un'applicazione Android con l'autenticazione con impronta digitale. Illustra come creare un'istanza di e creare un oggetto CryptoObject per proteggere i risultati dallo scanner di impronte digitali. Si esaminerà come un'applicazione deve sottoclassare FingerprintManager.AuthenticationCallback e rispondere al feedback dello scanner di impronte digitali. Infine, vedremo come registrare un'impronta digitale in un dispositivo o un emulatore Android e come usare adb per simulare un'analisi delle impronte digitali.

Requisiti

L'autenticazione con impronta digitale richiede Android 6.0 (livello API 23) o versione successiva e un dispositivo con uno scanner di impronte digitali.

Un'impronta digitale deve essere già registrata con il dispositivo per ogni utente che deve essere autenticato. Ciò comporta la configurazione di un blocco dello schermo che usa una password, un PIN, un modello di scorrimento rapido o un riconoscimento facciale. È possibile simulare alcune delle funzionalità di autenticazione con impronta digitale in un emulatore Android. Per altre informazioni su questi due argomenti, vedere la sezione Registrazione di un'impronta digitale .