AppStudio AppFramework は、サポートされているデバイスで生体情報を通じてユーザーを認証する Authentication プラグインを提供します。これを安全なストレージと組み合わせて使用して、認証情報、トークン、または任意の機密情報を格納およびアクセスすることができます。この機能を使用するには、まず次のインポート ステートメントを含める必要があります。
import ArcGIS.AppFramework.Authentication 1.0
この機能の例については、ArcGIS AppStudio または AppStudio サンプル GitHub リポジトリにあるサンプル アプリをご覧ください。
生体認証システム
BiometricAuthenticator コンポーネントは、iOS、macOS、Android、および Windows プラットフォームでの指紋スキャン、および iPhone X 以降の Face ID による認証をサポートしています。この機能を使用するには、[設定] > [機能] でアプリの [生体認証] を有効にしておく必要があります。
指紋認証を使用するために、ユーザーのデバイスでこの機能を有効にするには、デバイスに内蔵の指紋センサーまたはポータブル リーダーが備わっている必要があり、そのデバイスで指紋を登録する必要があります。 次のサンプル コードは、supported、activated、および errorMessage プロパティを使用して、この機能がサポートされているかどうかを表示します。認証システムを使用できない場合、エラー メッセージが表示されます。
Text {
id: supportCheck
text: BiometricAuthenticator.supported ? "Fingerprint supported" : "Fingerprint not supported"
}
Text {
id: activeCheck
text: BiometricAuthenticator.activated ? "Fingerprint activated" : "Fingerprint not activated"
anchors.top: supportCheck.bottom
}
Text {
id: errormessage
text: BiometricAuthenticator.errorMessage
anchors.top: activeCheck.bottom
}
BiometricAuthenticator コンポーネントには、ネイティブな指紋認証ダイアログ ボックスを表示する authenticate メソッドと、ダイアログ ボックスで認証メッセージを設定する message プロパティがあります。生体認証を使用するには、message プロパティを設定して、authenticate メソッドを呼び出す必要があります。message は、authenticate を呼び出す前に設定する必要があるので注意してください。次のサンプル コードは、authenticate メソッドの使用方法を、指定したメッセージとともに示しています。
Component.onCompleted: {
BiometricAuthenticator.message = "Authenticate to log into your account"
BiometricAuthenticator.authenticate()
}
BiometricAuthenticator には、認証プロセスの結果を表示する 2 つの信号があります。承認信号は、認証が成功したときに発信されます。一方、エラーやキャンセルによって認証が失敗したときは、説明とともに拒否信号が発信されます。次のサンプル コードは、これらの信号を使用して、スキャンの結果を返しています。それぞれの失敗の状態には、ユーザーにわかりやすい文字列が指定されています。
Text {
id: status anchors.top: errormessage.bottom
}
Connections {
target: BiometricAuthenticator
onAccepted: {
status.text = "Success"
}
onRejected: {
status.text = constructMessage(reason) }
}
function constructMessage(reason) {
var result = "";
switch (reason) {
case 1:
result = qsTr("Cancelled By User");
break;
case 2:
result = qsTr("Invalid Credentials");
break;
case 3:
result = qsTr("Not Configured");
break;
case 4:
result = qsTr("User Fallback");
break;
case 5:
result = qsTr("Permission Denied");
break;
case 6:
result = qsTr("Biometric Not Supported");
break;
case 7:
result = qsTr("Bad Capture");
break;
case 8:
result = qsTr("Platform Not Supported");
break;
default:
result = qsTr("Unknown");
}
return result;
}