Fingerabdruckauthentifizierung

In diesem Leitfaden wird erläutert, wie Sie Fingerabdruckauthentifizierung, die in Android 6.0 eingeführt wurde, in eine Xamarin.Android-Anwendung einfügen.

Fingerabdruckauthentifizierung: Übersicht

Die Einführung von Fingerabdruckscannern auf Android-Geräten bietet Anwendungen eine Alternative zur herkömmlichen Methode der Benutzerauthentifizierung über den Benutzernamen und ein Kennwort. Die Verwendung von Fingerabdrücken zum Authentifizieren eines Benutzers ermöglicht einer Anwendung die Einbindung von Sicherheit, die weniger aufdringlich ist als ein Benutzername und ein Kennwort.

Die FingerprintManager-APIs sind für Geräte mit einem Fingerabdruckscanner vorgesehen, die die API-Ebene 23 (Android 6.0) oder höher ausführen. Die APIs befinden sich im Android.Hardware.Fingerprints-Namespace. Die Android-Unterstützungsbibliothek v4 stellt auch Versionen der Fingerabdruck-APIs bereit, die für ältere Android-Versionen vorgesehen sind. Die Kompatibilitäts-APIs befinden sich im Android.Support.v4.Hardware.Fingerprint-Namespace und werden über das NuGet-Paket Xamarin.Android.Support.v4 verteilt.

FingerprintManager (und das Unterstützungsbibliothekspendant FingerprintManagerCompat) ist die primäre Klasse für die Verwendung der Fingerabdruck-Überprüfungshardware. Bei dieser Klasse handelt es sich um einen Android SDK-Wrapper um den Dienst auf Systemebene, der Interaktionen mit der Hardware selbst verwaltet. Er ist verantwortlich für das Starten des Fingerabdruckscanners und das Reagieren auf Feedback vom Scanner. Diese Klasse verfügt über eine relativ unkomplizierte Schnittstelle mit nur drei Membern:

  • Authenticate – Diese Methode initialisiert den Hardwarescanner und startet den Dienst im Hintergrund, und wartet darauf, dass der Benutzer seinen Fingerabdruck überprüft.
  • EnrolledFingerprints – Diese Eigenschaft wird zurückgegeben true , wenn der Benutzer einen oder mehrere Fingerabdrücke beim Gerät registriert hat.
  • HardwareDetected – Diese Eigenschaft wird verwendet, um zu bestimmen, ob das Gerät die Fingerabdrucküberprüfung unterstützt.

Die FingerprintManager.Authenticate-Methode wird von einer Android-Anwendung verwendet, um den Fingerabdruckscanner zu starten. Der folgende Codeausschnitt ist ein Beispiel dafür, wie Sie ihn mit den Kompatibilitäts-APIs der Unterstützungsbibliothek aufrufen:

// 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
                               );

In diesem Leitfaden wird erläutert, wie Sie die FingerprintManager-APIs verwenden, um eine Android-Anwendung durch Fingerabdruckauthentifizierung zu optimieren. Es wird erläutert, wie ein CryptoObject instanziiert und erstellt wird, um die Ergebnisse des Fingerabdruckscanners zu sichern. Wir untersuchen, wie eine Anwendung FingerprintManager.AuthenticationCallback-Unterklassen erstellt und auf Feedback des Fingerabdruckscanners reagiert. Abschließend erfahren Sie, wie Sie einen Fingerabdruck auf einem Android-Gerät oder einem Emulator registrieren und ADB verwenden, um eine Fingerabdrucküberprüfung zu simulieren.

Anforderungen

Die Fingerabdruckauthentifizierung erfordert Android 6.0 (API-Ebene 23) oder höher und ein Gerät mit einem Fingerabdruckscanner.

Für jeden Benutzer, der authentifiziert werden soll, muss bereits ein Fingerabdruck für das Gerät registriert sein. Dies umfasst das Einrichten einer Bildschirmsperre, die ein Kennwort, eine PIN, ein Wischmuster oder Gesichtserkennung verwendet. Es ist möglich, einige der Fingerabdruck-Authentifizierungsfunktionen in einem Android-Emulator zu simulieren. Weitere Informationen zu diesen beiden Themen finden Sie im Abschnitt Registrieren eines Fingerabdrucks.