지문 인증

이 가이드에서는 Android 6.0에 도입된 지문 인증을 Xamarin.Android 애플리케이션에 추가하는 방법을 설명합니다.

지문 인증 개요

Android 디바이스에서 지문 스캐너가 도착하면 애플리케이션에 사용자 인증의 기존 사용자 이름/암호 방법 대신 사용할 수 있는 방법이 제공됩니다. 지문을 사용하여 사용자를 인증하면 애플리케이션에서 사용자 이름 및 암호보다 파급력이 낮은 보안을 통합할 수 있습니다.

FingerprintManager API는 지문 스캐너를 사용하여 디바이스를 대상으로 하며 API 레벨 23(Android 6.0) 이상을 실행하고 있습니다. API는 Android.Hardware.Fingerprints 네임스페이스에 있습니다. Android 지원 라이브러리 v4는 이전 버전의 Android용 지문 API 버전을 제공합니다. 호환성 API는 Android.Support.v4.Hardware.Fingerprint 네임 스페이스에서 찾을 수 있으며, Xamarin.Android.Support.v4 NuGet 패키지를 통해 배포됩니다.

FingerprintManager(및 해당 지원 라이브러리 항목, FingerprintManagerCompat)는 지문 스캔 하드웨어를 사용하기 위한 기본 클래스입니다. 이 클래스는 하드웨어 자체와의 상호 작용을 관리하는 시스템 수준 서비스 주위의 Android SDK 래퍼입니다. 이는 지문 스캐너를 시작하고 스캐너에서 피드백에 응답하는 일을 담당합니다. 이 클래스에는 다음과 같은 세 개의 멤버만 있는 매우 간단한 인터페이스가 있습니다.

  • Authenticate – 이 메서드는 하드웨어 스캐너를 초기화하고 백그라운드에서 서비스를 시작하여 사용자가 지문을 스캔할 때까지 기다립니다.
  • EnrolledFingerprints – 사용자가 디바이스에 하나 이상의 지문을 등록한 경우 이 속성이 반환 true 됩니다.
  • HardwareDetected – 이 속성은 디바이스에서 지문 검사를 지원하는지 확인하는 데 사용됩니다.

FingerprintManager.Authenticate 메서드는 Android 애플리케이션에서 지문 스캐너를 시작하는 데 사용됩니다. 다음 코드 조각은 지원 라이브러리 호환성 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
                               );

이 가이드에서는 FingerprintManager API를 사용하여 지문 인증으로 Android 애플리케이션을 개선하는 방법을 설명합니다. 지문 스캐너에서 결과를 보호하는 데 도움이 되는 CryptoObject를 인스턴스화하고 만드는 방법을 설명합니다. 애플리케이션이 FingerprintManager.AuthenticationCallback을 서브클래싱하고 지문 스캐너에서 피드백에 응답하는 방식을 살펴보겠습니다. 마지막으로 Android 디바이스 또는 에뮬레이터에서 지문을 등록하는 방법 및 adb를 사용하여 지문 스캔을 시뮬레이트하는 방법을 알아봅니다.

요구 사항

지문 인증에는 Android 6.0(API 수준 23) 이상 및 지문 스캐너가 있는 디바이스가 필요합니다.

인증할 각 사용자의 디바이스에는 지문이 이미 등록되어 있어야 합니다. 여기에는 암호, PIN, 살짝 밀기 패턴 또는 얼굴 인식을 사용하는 화면 잠금을 설정하는 작업이 포함됩니다. Android Emulator에서 일부 지문 인증 기능을 시뮬레이트할 수 있습니다. 이러한 두 항목에 대한 자세한 내용은 지문 등록 섹션을 참조하세요.