Authentification par empreinte digitale
Ce guide explique comment ajouter l’authentification par empreinte digitale, introduite dans Android 6.0, à une application Xamarin.Android.
Vue d’ensemble de l’authentification par empreinte
L’arrivée de scanneurs d’empreintes digitales sur les appareils Android offre une alternative à la méthode d’authentification utilisateur/nom d’utilisateur traditionnelle. L’utilisation d’empreintes digitales pour authentifier un utilisateur permet à une application d’incorporer la sécurité moins intrusive qu’un nom d’utilisateur et un mot de passe.
Les API FingerprintManager ciblent les appareils avec un scanneur d’empreintes digitales et exécutent le niveau d’API 23 (Android 6.0) ou version ultérieure. Les API se trouvent dans l’espace Android.Hardware.Fingerprints
de noms. La bibliothèque de support Android v4 fournit des versions des API d’empreinte digitale destinées aux versions antérieures d’Android. Les API de compatibilité se trouvent dans l’espace Android.Support.v4.Hardware.Fingerprint
de noms, sont distribuées via le package NuGet Xamarin.Android.Support.v4.
FingerprintManager (et son équivalent de bibliothèque de support, FingerprintManagerCompat) est la classe principale pour l’utilisation du matériel d’analyse d’empreintes digitales. Cette classe est un wrapper android SDK autour du service de niveau système qui gère les interactions avec le matériel lui-même. Il est responsable du démarrage du scanneur d’empreintes digitales et de la réponse aux commentaires du scanneur. Cette classe a une interface assez simple avec seulement trois membres :
Authenticate
: cette méthode initialise le scanneur matériel et démarre le service en arrière-plan, en attendant que l’utilisateur analyse son empreinte digitale.EnrolledFingerprints
: cette propriété retournetrue
si l’utilisateur a inscrit une ou plusieurs empreintes digitales auprès de l’appareil.HardwareDetected
: cette propriété est utilisée pour déterminer si l’appareil prend en charge l’analyse des empreintes digitales.
La FingerprintManager.Authenticate
méthode est utilisée par une application Android pour démarrer le scanneur d’empreintes digitales. L’extrait de code suivant montre comment l’appeler à l’aide des API de compatibilité de la bibliothèque de support :
// 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
);
Ce guide explique comment utiliser les FingerprintManager
API pour améliorer une application Android avec l’authentification par empreinte digitale. Il explique comment instancier et créer un CryptoObject
pour aider à sécuriser les résultats à partir du scanneur d’empreintes digitales. Nous allons examiner comment une application doit sous-classer FingerprintManager.AuthenticationCallback
et répondre aux commentaires du scanneur d’empreintes digitales. Enfin, nous allons voir comment inscrire une empreinte digitale sur un appareil ou un émulateur Android et comment utiliser adb pour simuler une analyse d’empreinte digitale.
Spécifications
L’authentification par empreinte digitale nécessite Android 6.0 (niveau d’API 23) ou supérieur et un appareil avec un scanneur d’empreintes digitales.
Une empreinte digitale doit déjà être inscrite auprès de l’appareil pour chaque utilisateur qui doit être authentifié. Cela implique la configuration d’un verrou d’écran qui utilise un mot de passe, un code confidentiel, un modèle de balayage ou une reconnaissance faciale. Il est possible de simuler certaines fonctionnalités d’authentification par empreinte digitale dans un émulateur Android. Pour plus d’informations sur ces deux rubriques, consultez la section Inscription d’une empreinte digitale .