지문 인증Fingerprint Authentication

이 가이드에서는 Android 6.0에 도입 된 지문 인증을 Xamarin Android 응용 프로그램에 추가 하는 방법을 설명 합니다.This guide discusses how to add fingerprint authentication, introduced in Android 6.0, to a Xamarin.Android application.

지문 인증 개요Fingerprint Authentication Overview

Android 장치에서 지문 스캐너가 도착 하면 응용 프로그램에 사용자 인증의 기존 사용자 이름/암호 방법 대신 사용할 수 있는 방법이 제공 됩니다.The arrival of fingerprint scanners on Android devices provides applications with an alternative to the traditional username/password method of user authentication. 지문을 사용 하 여 사용자를 인증 하면 응용 프로그램에서 사용자 이름 및 암호 보다 개입 수준이 높은 보안을 통합할 수 있습니다.The use of fingerprints to authenticate a user makes it possible for an application to incorporate security that is less intrusive than a username and password.

FingerprintManager Api는 지문 스캐너를 사용 하 여 장치를 대상으로 하며 API 레벨 23 (Android 6.0) 이상을 실행 하 고 있습니다.The FingerprintManager APIs target devices with a fingerprint scanner and are running API level 23 (Android 6.0) or higher. Api는 Android.Hardware.Fingerprints 네임 스페이스에 있습니다.The APIs are found in the Android.Hardware.Fingerprints namespace. Android 지원 라이브러리 v4는 이전 버전의 Android 용 지문 Api 버전을 제공 합니다.The Android Support Library v4 provides versions of the fingerprint APIs meant for older versions of Android. 호환성 Api는 Android.Support.v4.Hardware.Fingerprint 네임 스페이스에서 찾을 수 있으며, xamarin.ios. 지원 V4 NuGet 패키지를 통해 배포 됩니다.The compatibility APIs are found in the Android.Support.v4.Hardware.Fingerprint namespace, are distributed through the Xamarin.Android.Support.v4 NuGet package.

FingerprintManager (및 해당 지원 라이브러리 대응, FingerprintManagerCompat)은 지문 검사 하드웨어를 사용 하기 위한 기본 클래스입니다.The FingerprintManager (and its Support Library counterpart, FingerprintManagerCompat) is the primary class for using the fingerprint scanning hardware. 이 클래스는 하드웨어 자체와의 상호 작용을 관리 하는 시스템 수준 서비스 주위의 Android SDK 래퍼입니다.This class is an Android SDK wrapper around the system level service that manages interactions with the hardware itself. 이는 지문 스캐너를 시작 하 고 스캐너에서 피드백에 응답 하는 일을 담당 합니다.It is responsible for starting the fingerprint scanner and for responding to feedback from the scanner. 이 클래스에는 다음과 같은 세 개의 멤버만 있는 매우 간단한 인터페이스가 있습니다.This class has a fairly straightforward interface with only three members:

  • Authenticate –이 메서드는 하드웨어 스캐너를 초기화 하 고 백그라운드에서 서비스를 시작 하 여 사용자가 지문을 검색할 때까지 대기 합니다.Authenticate – This method will initialize the hardware scanner and start the service in the background, waiting for the user to scan their fingerprint.
  • EnrolledFingerprints 이 속성은 사용자가 하나 이상의 지문을 장치에 등록 한 경우 true를 반환 합니다.EnrolledFingerprints – This property will return true if the user has registered one or more fingerprints with the device.
  • HardwareDetected –이 속성은 장치에서 지문 검색을 지원 하는지 여부를 확인 하는 데 사용 됩니다.HardwareDetected – This property is used to determine if the device supports fingerprint scanning.

FingerprintManager.Authenticate 메서드는 Android 응용 프로그램에서 지문 스캐너를 시작 하는 데 사용 됩니다.The FingerprintManager.Authenticate method is used by an Android application to start the fingerprint scanner. 다음 코드 조각은 지원 라이브러리 호환성 Api를 사용 하 여 호출 하는 방법의 예입니다.The following snippet is an example of how to invoke it using the Support Library compatibility APIs:

// 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 응용 프로그램을 개선 하는 방법을 설명 합니다.This guide will discuss how to use the FingerprintManager APIs to enhance an Android application with fingerprint authentication. 지문 스캐너에서 결과를 보호 하는 데 도움이 되는 CryptoObject을 인스턴스화하고 만드는 방법을 설명 합니다.It will cover how to instantiate and create a CryptoObject to help secure the results from the fingerprint scanner. 응용 프로그램이 FingerprintManager.AuthenticationCallback를 서브클래싱하 고 지문 스캐너에서 피드백에 응답 하는 방식을 살펴보겠습니다.We'll examine how an application should subclass FingerprintManager.AuthenticationCallback and respond to feedback from the fingerprint scanner. 마지막으로 Android 장치 또는 에뮬레이터에서 지문을 등록 하는 방법과 adb 를 사용 하 여 지문 검색을 시뮬레이트하는 방법을 알아봅니다.Finally, we'll see how to enroll a fingerprint on an Android device or emulator and how to use adb to simulate a fingerprint scan.

요구 사항Requirements

지문 인증에는 Android 6.0 (API 수준 23) 이상 및 지문 스캐너가 있는 장치가 필요 합니다.Fingerprint Authentication requires Android 6.0 (API level 23) or higher and a device with a fingerprint scanner.

인증할 각 사용자의 장치에는 지문이 이미 등록 되어 있어야 합니다.A fingerprint must already be enrolled with the device for each user that is to be authenticated. 여기에는 암호, PIN, 살짝 밀기 패턴 또는 얼굴 인식을 사용 하는 화면 잠금을 설정 하는 작업이 포함 됩니다.This involves setting up a screen lock that uses a password, PIN, swipe pattern, or facial recognition. Android Emulator에서 일부 지문 인증 기능을 시뮬레이션할 수 있습니다.It is possible to simulate some of the fingerprint authentication functionality in an Android Emulator. 이러한 두 항목에 대 한 자세한 내용은 지문 등록 섹션을 참조 하세요.For more information on these two topics, please see the Enrolling a Fingerprint section.