web-dev-qa-db-fra.com

BiometricPrompt iris and face Prompt ne fonctionne pas avec l'authentification d'objet Crypto. #AndroidX

Problème

  • L'iris d'authentification biométrique et la détection de visage n'invitent pas avec l'appel de biometricPrompt.authenticate(**crypto**, promptInfo).

Référence source:

Appareil utilisé pour les tests:

  • Samsung S8 (Android OS 9)

Étapes d'authentification que je suis:

  • val biometricPrompt = BiometricPrompt (...)
  • val promptInfo = BiometricPrompt.PromptInfo.Builder () ...
  • biometricPrompt. authenticate (promptInfo) (PFA: option A, B )

et il y a une autre méthode d'authentification qui prend un objet chiffré pour s'assurer

Tout fonctionnait comme prévu avec la prise en charge de périphériques API nouveaux et plus anciens. Jusqu'à ce que, à moins de réaliser l'application testée pour une autre option d'authentification biométrique iris et en utilisant détection de visage .

Si je suis

  • biometricPrompt. authenticate (promptInfo) puis l'application affiche simplement l'option d'authentification en fonction des préférences de l'utilisateur qu'il doit choisir dans Paramètres du périphérique -> Préférence biométrique. Et effectuez l'authentification indépendamment. (PFA: option A, B )

  • Mais si vous utilisez biometricPrompt.**authenticate**(crypto, promptInfo), il n'affiche que l'option d'authentification par empreinte digitale UNIQUEMENT. Pour les autres options de préférence iris et détection de visage, il n'affiche rien lors de l'appel de la méthode authenticate(..). (PFA: option [~ # ~] c [~ # ~] )

Question

  • Pourquoi une autre authentification biométrique ne demande pas d'authentification par objet cryptographique.

enter image description here

6
CoDe

Certains appareils n'ont qu'un seul facteur de forme, certains ont de nombreux facteurs de forme. Le facteur de forme que votre application finit par utiliser ne dépend pas vraiment de vous; c'est à la mise en œuvre OEM. Comme expliqué dans cet article de blog , si un facteur de forme est Fort ou Faible ne dépend pas de votre code - l'OEM décide. Cependant , vous pouvez demander qu'un appareil utilise une authentification forte pour votre application en spécifiant un CryptoObject lorsque vous appelez authenticate().

Ce que vous vivez, c'est que les OEM de vos appareils ont décidé de faire de l'empreinte digitale la valeur par défaut pour la biométrie forte. Par conséquent, lorsque vous passez un CryptoObject à authenticate(), ces périphériques affichent à l'utilisateur l'interface utilisateur pour l'empreinte digitale.

1
Isai Damier