認証

AppStudio AppFramework は、サポートされているデバイスで生体情報を通じてユーザーを認証する Authentication プラグインを提供します。これを安全なストレージと組み合わせて使用して、認証情報、トークン、または任意の機密情報を格納およびアクセスすることができます。この機能を使用するには、まず次のインポート ステートメントを含める必要があります。

import ArcGIS.AppFramework.Authentication 1.0

この機能の例については、ArcGIS AppStudio または AppStudio サンプル GitHub リポジトリにあるサンプル アプリをご覧ください。

生体認証システム

BiometricAuthenticator コンポーネントは、iOS、macOS、Android、および Windows プラットフォームでの指紋スキャン、および iPhone X 以降の Face ID による認証をサポートしています。この機能を使用するには、[設定] > [機能] でアプリの [生体認証] を有効にしておく必要があります。

指紋認証を使用するために、ユーザーのデバイスでこの機能を有効にするには、デバイスに内蔵の指紋センサーまたはポータブル リーダーが備わっている必要があり、そのデバイスで指紋を登録する必要があります。 次のサンプル コードは、supportedactivated、および 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;
}

このトピックの内容
  1. 生体認証システム