Share via


指紋認証

"このガイドでは、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 ラッパーです。 これは、指紋スキャナーを起動し、スキャナーからのフィードバックに応答する役割を担います。 このクラスには、非常にわかりやすいインターフェイスが備わっており、次の 3 つのメンバーのみが含まれます。

  • Authenticate – このメソッドはハードウェア スキャナーを初期化し、バックグラウンドでサービスを開始して、ユーザーが指紋をスキャンするのを待機します。
  • EnrolledFingerprints – ユーザーがデバイスに 1 つまたは複数の指紋を登録している場合、このプロパティは 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 では、一部の指紋認証機能をシミュレートすることができます。 これらの 2 つのトピックの詳細については、「指紋の登録」セクションを参照してください。