web-dev-qa-db-fra.com

API d'empreintes digitales pour le téléphone Android

Je suis nouveau dans l'authentification par empreinte digitale dans les smartphones. Comme nous le savons, le Samsung S5 prend actuellement en charge le lecteur d’empreintes digitales. Est-il possible de développer une application personnalisée pouvant utiliser le scanner pour authentifier un utilisateur? J'ai juste besoin de connaître l'identité de l'utilisateur et s'il a été authentifié correctement. Mon application peut alors prendre à partir de là et intégrer avec le backend.

31
DBS

Samsung fournit l’API Pass pour enregistrer, demander et valider les empreintes digitales. Son ici API d'impression SAMSUNG FINGER . Il existe aussi un exemple de programme.

9
DBS

Google a maintenant annoncé une API d'empreinte digitale générique pour Android) qui peut être utilisée par toutes les applications personnalisées pour obtenir une autorisation, et pas seulement par les applications natives de Google.

Tiré de la page Android Developers liée ci-dessous:

"Pour authentifier les utilisateurs via une analyse d'empreinte digitale, obtenez une instance de la nouvelle classe FingerprintManager et appelez la méthode authenticate()."

Cependant, vous devez également inclure cette autorisation:

<uses-permission Android:name="Android.permission.USE_FINGERPRINT" />

Si vous souhaitez en savoir plus, visitez cette URL et faites défiler jusqu'à Authentication:

https://developer.Android.com/about/versions/Marshmallow/Android-6.0.html#fingerprint-authentication

20
edwoollard

Aperçu de l'API d'empreinte digitale pour Android) est trouvé ici avec exemple d'application . Au moment de la rédaction de cet article, Android = Définition de la compatibilité pour Android M n'a pas été publié. Ainsi, si le capteur d'empreinte digitale, le composant matériel clé du cadre d'empreinte digitale, reste comme condition "DEVRAIT" (le plus susceptible d'être vrai ), les OEM décident alors d’intégrer ou non le capteur. Mais, étant donné que Android Pay est fortement lié à la structure des empreintes digitales, il est possible que les constructeurs optent pour l’inclusion du capteur d’empreintes digitales.

6
samson

J'ai trouvé ceci dans des exemples Google qui montre comment vous pouvez utiliser les empreintes digitales enregistrées dans votre application pour authentifier l'utilisateur avant de procéder à des opérations telles que l'achat d'un article.

Vous devez d’abord créer une clé symétrique dans le Android Magasin de clés utilisant KeyGenerator , qui ne peut être utilisé que lorsque l’utilisateur s’est authentifié avec empreinte digitale et a passé un KeyGenParameterSpec .

En définissant KeyGenParameterSpec.Builder.setUserAuthenticationRequired sur true, vous pouvez autoriser l'utilisation de la clé uniquement après son authentification par l'utilisateur, y compris lorsqu'il est authentifié avec l'empreinte digitale de l'utilisateur.

Ensuite, commencez à écouter une empreinte digitale sur le capteur d’empreinte digitale en appelant FingerprintManager.authenticate avec un Cipher initialisé avec la clé symétrique créée. Sinon, vous pouvez utiliser le mot de passe vérifié côté serveur en tant qu'authentificateur.

Une fois l'empreinte digitale (ou le mot de passe) vérifiée, le rappel FingerprintManager.AuthenticationCallback # onAuthenticationSucceeded () est appelé.

Il nécessite le SDK V23. Autant que je sache, ce n'est pas utile pour Samsung S5, mais cela pourrait aider les autres à utiliser cette fonctionnalité.

4
Milad Faridnia