Partager via


Authentification par empreinte digitale (biométrique) (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Pour renforcer la sécurité de votre application, vous pouvez inclure une demande d’authentification par empreinte digitale (biométrique) lorsque l’utilisateur doit consentir à une action particulière. Par exemple, vous pouvez exiger une authentification par empreinte digitale avant d’autoriser un achat dans l’application ou avant d’autoriser l’accès à des ressources restreintes. Vous pouvez gérer l’authentification par empreinte digitale à l’aide de la classe UserConsentVerifier dans l’espace de noms Windows.Security.Credentials.UI.

Pour savoir si l’appareil dispose d’un lecteur d’empreintes digitales, appelez la méthode UserConsentVerifier.CheckAvailabilityAsync. Même si un appareil prend en charge l’authentification par empreinte digitale, votre application doit fournir aux utilisateurs une option dans Paramètres pour activer ou désactiver l’authentification des empreintes digitales. Pour plus d’informations sur la création de ce paramètre, voir Ajout de paramètres d’application.

Dans l’exemple suivant, la méthode détermine si l’ordinateur actuel prend en charge l’authentification par empreinte digitale, puis retourne un message avec le résultat.

function checkFingerprintAvailability() {
    try {
        // Check the availability of fingerprint authentication.

        Windows.Security.Credentials.UI.UserConsentVerifier.checkAvailabilityAsync().then(
        function (ucvAvailability) {

            switch (ucvAvailability)
            {
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.available:
                    outputDiv.innerHTML = "<br/>Fingerprint verification is available.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.deviceBusy:
                    outputDiv.innerHTML = "<br/>Biometric device is busy.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.deviceNotPresent:
                    outputDiv.innerHTML = "<br/>No biometric device found.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.disabledByPolicy:
                    outputDiv.innerHTML = "<br/>Biometric verification is disabled by policy.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.notConfiguredForUser:
                    outputDiv.innerHTML = "<br/>The user has no fingerprints registered. Please add a fingerprint to the " +
                                    "fingerprint database and try again.";
                    break;
                default:
                    outputDiv.innerHTML = "<br/>Fingerprints verification is currently unavailable.";
                    break;
            }
        });
    }
    catch (ex) {
        outputDiv.innerHTML = "<br/>Fingerprint authentication availability check failed: " + ex.toString();
    }
}

Pour demander à l’utilisateur son consentement par le biais d’une analyse de son empreinte digitale, appelez la méthode UserConsentVerifier.RequestVerificationAsync. Pour que l’authentification par empreinte digitale fonctionne, l’utilisateur doit avoir au préalable ajouté une « signature par empreinte digitale » à la base de données d’empreintes digitales. Lorsque vous appelez la méthode UserConsentVerifier.RequestVerificationAsync, l’utilisateur se voit présenter une boîte de dialogue modale lui demandant une analyse de son empreinte digitale. Vous pouvez inclure un message dans la méthode UserConsentVerifier.RequestVerificationAsync qui est présenté à l’utilisateur dans la boîte de dialogue modale, comme vous pouvez le voir sur l’image suivante.

boîte de dialogue modale d’authentification par empreinte digitale

Dans l’exemple suivant, une méthode demande la vérification de l’empreinte digitale, puis retourne un message avec le résultat.

function requestConsent(userMessage) {
    if (!userMessage) {
        userMessage = "Please provide fingerprint verification.";
    }

    try {
        // Request the logged on user's consent via fingerprint swipe.
        Windows.Security.Credentials.UI.UserConsentVerifier.requestVerificationAsync(userMessage) 
        .then(
            function (consentResult) { 
                switch (consentResult) {
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.verified:
                        outputDiv.innerHTML = "<br/>Fingerprint verified.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.deviceBusy:
                        outputDiv.innerHTML = "<br/>Biometric device is busy.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.deviceNotPresent:
                        outputDiv.innerHTML = "<br/>No biometric device found.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.disabledByPolicy:
                        outputDiv.innerHTML = "<br/>Biometric verification is disabled by policy.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.notConfiguredForUser:
                        outputDiv.innerHTML = "<br/>The user has no fingerprints registered. Please add a fingerprint to the " +
                                        "fingerprint database and try again.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.retriesExhausted:
                        outputDiv.innerHTML = "<br/>There have been too many failed attempts. Fingerprint authentication canceled.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.canceled:
                        outputDiv.innerHTML = "<br/>Fingerprint authentication canceled.";
                        break;
                    default:
                        outputDiv.innerHTML = "<br/>Fingerprint authentication is currently unavailable.";
                        break;
                }
            });
    }
    catch (ex) {
        outputDiv.innerHTML = "<br/>Fingerprint authentication failed: " + ex.toString();
    }
}

Rubriques associées

Exemple UserConsentVerifier

UserConsentVerifier

Windows.Security.Credentials.UI

Authentification et identité des utilisateurs