Partager via


Stockage des informations d’identification de l’utilisateur à l’aide du stockage sécurisé des informations d’identification (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 ]

Le stockage sécurisé des informations d’identification simplifie le stockage et la récupération des informations d’identification de l’utilisateur en toute sécurité. Il permet aussi de rendre les informations d’identification de l’utilisateur itinérantes avec le compte Microsoft de l’utilisateur, et ce sans frais.

Supposons que vous ayez une application qui se connecte à un service pour accéder à des ressources protégées telles que des fichiers multimédias, des réseaux sociaux, etc. Votre service exige des informations de connexion pour chaque utilisateur. Vous avez pour cela conçu une interface utilisateur dans votre application qui obtient le nom d’utilisateur et le mot de passe de l’utilisateur. Ces données sont ensuite utilisées pour connecter l’utilisateur au service. Tout fonctionne bien.

Vous décidez à présent d’aller plus loin et de stocker les informations de connexion de vos utilisateurs de manière sécurisée afin qu’ils n’aient pas à se connecter chaque fois qu’ils utilisent votre application. C’est là que le stockage sécurisé des informations d’identification entre en jeu. En quelques appels simples à l’API du stockage sécurisé des informations d’identification, vous pouvez stocker le nom d’utilisateur et le mot de passe de votre utilisateur, puis les récupérer facilement pour connecter l’utilisateur la prochaine fois qu’il ouvrira votre application.

Stockage sécurisé

L’avantage principal du stockage sécurisé des informations d’identification, c’est qu’il stocke les informations d’identification de l’utilisateur dans un emplacement sécurisé. Par ailleurs, les informations d’identification sont chiffrées lorsqu’elles sont stockées sur disque. Bien sûr, vous pouvez stocker les informations d’identification de vos utilisateurs dans un fichier du stockage local de votre application. Toutefois, le fait de stocker des informations d’identification d’utilisateur en texte brut présente une faille de sécurité majeure. Si le système d’un utilisateur est compromis d’une manière ou d’une autre, son nom d’utilisateur et son mot de passe sont facilement accessibles et exploitables. Si le nom d’utilisateur et le mot de passe sont stockés à l’aide du stockage sécurisé des informations d’identification, une source malveillante peut au mieux tomber sur un fichier chiffré.

Itinérance des informations d’identification

Le stockage sécurisé des informations d’identification présente un autre avantage pour vos utilisateurs. En effet, lorsque vous utilisez le stockage sécurisé des informations d’identification pour stocker les noms d’utilisateur et mots de passe de vos utilisateurs, les informations d’identification stockées sont transmises avec leur compte Microsoft à tout autre ordinateur de confiance qu’ils utilisent avec ce compte Microsoft. Cela rend votre application sécurisée encore plus pratique pour les utilisateurs, et ce car elle peut les connecter automatiquement (sans les inviter à entrer une nouvelle fois leurs informations d’identification) à tout ordinateur de confiance associé à leur compte Microsoft et sur lequel votre application est installée.

Le fonctionnement des comptes de domaine est quelque peu différent. Si des informations d’identification sont stockées avec votre compte Microsoft et que vous associez ce compte à un compte de domaine (comme le compte que vous utilisez au travail), vos informations sont transmises à ce compte de domaine. Toutefois, les nouvelles informations d’identification ajoutées lors de la connexion au compte de domaine ne seront pas transmises. Cela permet de s’assurer que les informations d’identification privées pour le domaine ne sont pas exposées à l’extérieur du domaine.

Technologies

Instructions

Étape 1: Stockage des informations d’identification de l’utilisateur

Le stockage des informations d’identification de l’utilisateur dans le stockage sécurisé des informations d’identification est un processus rapide en deux étapes.

  1. Obtenez une référence au stockage des informations d’identification de l’utilisateur à l’aide de l’objet PasswordVault de l’espace de noms Windows.Security.Credentials.
  2. Créez un objet PasswordCredential contenant un identificateur pour votre application, le nom d’utilisateur et le mot de passe, puis passez le tout à la méthode PasswordVault.Add pour ajouter les informations d’identification au stockage des informations d’identification de l’utilisateur.
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(
    "My App", username, password));

Étape 2: Récupération des informations d’identification de l’utilisateur

Pour récupérer les informations d’identification de l’utilisateur du stockage des informations d’identification de l’utilisateur suite à la création d’une référence à l’objet PasswordVault, plusieurs options s’offrent à vous.

  • Vous pouvez récupérer toutes les informations d’identification fournies par l’utilisateur pour votre application dans le stockage des informations d’identification de l’utilisateur à l’aide de la méthode PasswordVault.RetrieveAll.

  • Si vous connaissez le nom d’utilisateur associé aux informations d’identification stockées, vous pouvez récupérer toutes les informations d’identification associées à ce nom d’utilisateur à l’aide de la méthode PasswordVault.FindAllByUserName.

  • Si vous connaissez le nom de ressource associé aux informations d’identification stockées, vous pouvez récupérer toutes les informations d’identification associées à ce nom de ressource à l’aide de la méthode PasswordVault.FindAllByResource.

  • Enfin, si vous connaissez à la fois le nom d’utilisateur et le nom de ressource associés aux informations d’identifications, vous pouvez uniquement récupérer ces informations d’identifications à l’aide de la méthode PasswordVault.Retrieve.

Prenons un exemple. Nous avons stocké le nom de ressource globalement dans une application et nous connectons l’utilisateur automatiquement si nous trouvons des informations d’identification correspondantes. Si nous trouvons plusieurs informations d’identification pour l’utilisateur, nous demandons à l’utilisateur de sélectionner les informations d’identification par défaut à utiliser lors de la connexion.

var resourceName = "My App";
var defaultUserName;

function login() {
    var loginCredential = getCredentialFromLocker();

    if (loginCredential != null) {
        // There is a credential stored in the locker.
        // Populate the Password property of the credential
        // for automatic login.
        loginCredential.retrievePassword();
    } else {
        // There is no credential stored in the locker.
        // Display UI to get user credentials.
        loginCredential = getLoginCredentialUI();
    }

    // Log the user in.
    serverLogin(loginCredential.userName, loginCredential.password);
}


function GetCredentialFromLocker() {
    var credential = null;

    var vault = new Windows.Security.Credentials.PasswordVault();
    var credentialList = vault.findAllByResource(resourceName);
    if (credentialList.length > 0) {
        if (credentialList.length == 1) {
            credential = credentialList[0];
        } else {
            // When there are multiple usernames,
            // retrieve the default username. If one doesn’t
            // exist, display UI to have the user select
            // a default username.

            defaultUserName = getDefaultUserNameUI();
            credential = vault.retrieve(resourceName, defaultUserName);
        }
    }

    return credential;
}

Étape 3: Suppression des informations d’identification de l’utilisateur

La suppression des informations d’identification de l’utilisateur dans le stockage sécurisé des informations d’identification est aussi un processus rapide en deux étapes.

  1. Obtenez une référence au stockage des informations d’identification de l’utilisateur à l’aide de l’objet PasswordVault de l’espace de noms Windows.Security.Credentials.

  2. Passez les informations d’identification à supprimer à la méthode PasswordVault.Remove.

var vault = new Windows.Security.Credentials.PasswordVault();
vault.remove(new Windows.Security.Credentials.PasswordCredential(
    "My App", username, password));

Remarques

Comme vous pouvez le voir, le stockage sécurisé des informations d’identification est une fonction conviviale qui simplifie l’authentification des utilisateurs et le stockage des informations d’identification de l’utilisateur pour un usage ultérieur, le tout de manière hautement sécurisée.

Meilleures pratiques

Utilisez uniquement le stockage sécurisé des informations d’identification pour les mots de passe et pas pour des données plus volumineuses.

Enregistrez les mots de passe dans le stockage sécurisé des informations d’identification uniquement si les critères suivants sont satisfaits :

  • L’utilisateur s’est connecté correctement.
  • L’utilisateur a choisi d’enregistrer les mots de passe.

Rubriques associées

Exemple de stockage sécurisé des informations d’identification

Authentification et identité des utilisateurs

Windows.Security.Credentials