Authentifizierung

AppStudio AppFramework stellt ein Authentifizierungs-Plug-in bereit, das Benutzer über ihre biometrische Signatur auf unterstützten Geräten authentifiziert. Sie können es in Verbindung mit einer sicheren Speicherung verwenden, um Anmeldeinformationen, Token oder vertrauliche Informationen zu speichern und darauf zuzugreifen. Um diese Funktionalität nutzen zu können, müssen Sie zunächst die folgende Import-Anweisung einbeziehen:

import ArcGIS.AppFramework.Authentication 1.0

Ein Beispiel für diese Funktionalität finden Sie in der Beispiel-App, die in ArcGIS AppStudio verfügbar ist, oder im Repository für AppStudio-Beispiele in GitHub.

Biometrischer Authentifizierer

Die biometrische Authentifizierer-Komponente unterstützt die Authentifizierung durch Scannen des Fingerabdrucks auf iOS-, macOS-, Android- und Windows-Plattformen sowie durch die Gesichtserkennung mit Face ID auf iPhone 10 und höher. Um diese Funktion verwenden zu können, muss die Option Biometrische Authentifizierung für Ihre App aktiviert sein, was unter Einstellungen > Funktionen möglich ist.

Um die Authentifizierung per Fingerabdruck verwenden zu können, muss das Gerät des Benutzers über einen Fingerabdrucksensor oder einen mobilen Leser verfügen, so dass diese Funktion auf dessen Gerät aktiviert werden kann. Außerdem muss dessen Fingerabdruck auf dem jeweiligen Gerät registriert sein. Das folgende Codebeispiel verwendet die Eigenschaften supported, activated und errorMessage, um anzuzeigen, ob diese Funktion unterstützt wird. Wenn der Authentifizierer nicht verwendet werden kann, wird eine Fehlermeldung angezeigt.

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
}

Die biometrische Authentifizierer-Komponente verfügt über eine authenticate-Methode, die ein natives Dialogfeld für die Fingerabdruckauthentifizierung anzeigt. Ebenfalls verfügbar ist eine message-Eigenschaft, mit der die Authentifizierungsmeldung im Dialogfeld festgelegt werden kann. Zur Verwendung der biometrischen Authentifizierung müssen Sie die message-Eigenschaft festlegen und die authenticate-Methode aufrufen. Beachten Sie dabei, dass message festgelegt werden muss, bevor authenticate aufgerufen werden kann. Im folgenden Codebeispiel wird neben einer angegebenen Nachricht gezeigt, wie die authenticate-Methode verwendet wird:

Component.onCompleted: {
    BiometricAuthenticator.message = "Authenticate to log into your account"
    BiometricAuthenticator.authenticate()
}

Der biometrische Authentifizierer enthält zwei Signale, um das Ergebnis des Authentifizierungsprozesses anzuzeigen. Das Signal für Akzeptanz wird ausgegeben, wenn die Authentifizierung erfolgreich war, das Signal für Zurückweisung hingegen, wenn die Authentifizierung aufgrund eines Fehlers oder Abbruchs nicht ausgeführt werden konnte. Der folgende Beispielcode verwendet diese Signale, um das Ergebnis eines Scanvorgangs zurückzugeben, wobei jede mögliche Bedingung, die zu einem Fehler führen kann, mit einer kurzen für den Benutzer lesbaren Zeichenfolge versehen ist:

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;
}