Проверка подлинности по отпечаткам

В этом руководстве описано добавление проверки подлинности по отпечаткам, представленную в Android 6.0, в приложение Xamarin.Android.

Обзор проверки подлинности по отпечаткам

Появление сканеров отпечатков на устройствах Android предоставляет приложению альтернативу традиционному методу проверки подлинности пользователя по имени пользователя или паролю. Использование отпечатков для проверки подлинности пользователя позволяет включить в структуру приложения безопасность, которая является менее навязчивой, чем имя пользователя и пароль.

Целевые устройства с API FingerprintManager и сканером отпечатков работают с API уровня 23 (Android 6.0) или выше. API находятся в пространстве имен Android.Hardware.Fingerprints. В библиотеке поддержки Android версии 4 предусмотрены версии API отпечатков, предназначенные для старых версий Android. API совместимости, доступные в пространстве имен Android.Support.v4.Hardware.Fingerprint, распространяются с помощью пакета NuGet Xamarin.Android.Support.v4.

FingerprintManager (а также его аналог библиотеки поддержки FingerprintManagerCompat) является основным классом для использования оборудования сканирования отпечатков. Этот класс является программой-оболочкой пакета SDK для Android для службы уровня системы, которая управляет взаимодействием с самим оборудованием. Он отвечает за запуск сканера отпечатков и реагирование на отзыв от сканера. Этот класс имеет довольно простой интерфейс с тремя членами.

  • Authenticate — Этот метод инициализирует сканер оборудования и запускает службу в фоновом режиме, ожидая, пока пользователь будет сканировать отпечатки пальцев.
  • EnrolledFingerprints — это свойство возвращается true , если пользователь зарегистрировал один или несколько отпечатков пальцев на устройстве.
  • HardwareDetected — Это свойство используется для определения того, поддерживает ли устройство сканирование отпечатков пальцев.

Для запуска сканера отпечатков приложение Android использует метод FingerprintManager.Authenticate. В следующем фрагменте кода приведен пример его вызова с помощью API совместимости библиотеки поддержки:

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

В этом руководстве объясняется использование API FingerprintManager для улучшения приложения Android с проверкой подлинности по отпечаткам. В нем рассматривается создание экземпляров и CryptoObject для защиты результатов сканера отпечатков. Мы рассмотрим, как приложение должно создать подкласс FingerprintManager.AuthenticationCallback и реагировать на отзывы от сканера отпечатков. Наконец, мы узнаем, как зарегистрировать отпечаток на устройстве или эмуляторе Android и как использовать adb для имитации сканирования отпечатков.

Требования

Для проверки подлинности по отпечаткам требуется Android 6.0 (API уровня 23) или более поздней версии и устройство со сканером отпечатков.

Отпечаток пальца следует зарегистрировать на устройстве для каждого пользователя, который должен пройти проверку подлинности. Это включает в себя настройку блокировки экрана, которая использует пароль, ПИН-код, схему прокрутки или распознавание лиц. Некоторые функции проверки подлинности по отпечаткам можно имитировать в Android Emulator. Дополнительные сведения об этих двух разделах см. в статье Регистрация отпечатка пальца.