Fermer

août 6, 2021

En savoir plus sur le stockage sécurisé Xamarin Essentials


Dans Xamarin Essentials, Secure Storage vous permet d'enregistrer des données sensibles, comme un mot de passe. Nous examinerons le trousseau et le magasin de clés de chaque plate-forme spécifique.

Cette fois, nous allons découvrir le stockage sécurisé à l'aide de l'une des excellentes API que Xamarin.Essentials nous apporte.

Imaginez. par exemple, l'utilisateur souhaite enregistrer son mot de passe dans une application afin de ne pas avoir à le saisir à chaque fois qu'il ouvre l'application. Ce type d'informations est sensible et doit être traité avec une plus grande sécurité. Comment stockerions-nous en toute sécurité ces données très importantes et sensibles dans nos applications ? 🤔

Le stockage sécurisé intervient lorsque vous devez enregistrer certaines données telles qu'un oauth_token ou en tant que mot de passe dans l'exemple ci-dessus. De plus, nous utilisons le trousseau et le magasin de clés de chaque plate-forme spécifique. Apprenons à l'utiliser ! 💪🏼

Préférences

Vous connaissez probablement déjà les Préférencesqui sont très utiles lorsque vous souhaitez enregistrer des informations non privées, par exemple, Voulez-vous que l'appareil se souvienne de votre e-mail ? / Oui. 🕵‍♂

Mais vous vous demanderez sûrement, Peut-on utiliser les préférences ? Ne couvrent-ils pas des sujets similaires ? Et la réponse est certainement oui, ce sont des sujets très similaires, mais ne confondez pas les préférences et le stockage de sécurité. Il existe des différences clés, comme vous pouvez le voir dans le tableau ci-dessous :

 Description = les données cryptées sont prises en charge dans le stockage de sécurité mais pas dans les préférences ; Il est préférable d'inclure des valeurs non sensibles dans les préférences ; Le stockage de sécurité est préférable d'inclure des valeurs sensibles ; Le stockage de sécurité reçoit la valeur de tout type de données

🔧 Paramètres de la plate-forme

📒 Sur iOS : (Cette configuration n'est nécessaire que si vous développez dans un simulateur, sinon elle doit être supprimée.)[19659011]Activez le droit Keychain puis ajoutez le groupe d'accès au trousseau pour l'identifiant du bundle de l'application.

  • Dans votre Entitlements.plist activez le trousseau.
  • Dans les propriétés du projet sous [19659012]iOS Bundle Signingdéfinissez les Custom Entitlements sur Entitlements.plist.
  • 📗 Sur Android :

    First option—activer ou désactiver la sauvegarde : Si vous souhaitez désactiver la sauvegarde complète de votre application, accédez à votre AndroidManifest.xml et dans les balises de votre application, définissez android:allowBackup sur false.

    <manifest[19659023]... >
      <application android :allowB ackup="false" ... >
      </application>
    </manifest>
    

    Deuxième option—sauvegarde sélective : Ou vous pouvez configurer la sauvegarde automatique pour désactiver la sauvegarde de contenu spécifique de la sauvegarde. (Vous pouvez également créer un ensemble de règles personnalisées pour exclure les éléments SecureStore de la sauvegarde.)

    1. Dans votre AndroidManifest.xmldéfinissez l'attribut android:fullBackupContent :[19659037]<application android :fullBackupContent="@xml/auto_bk_rules">
      </ application>

      1. Dans le répertoire Resources/xml, créez un fichier XML : Dans cet exemple, le fichier est nommé auto_bk_rules.xml. Définissez AndroidResource en tant qu'action de génération.

      2. Ensuite, définissez le contenu suivant qui inclut toutes les préférences partagées à l'exception de SecureStorage :

      
      <full-backup-content>
        <include  domaine="sharedpref" chemin="."/>[19659025]<exclude domain="sharedpref" path="${applicationId}.xamarinessentials .xml"/>
      </full-backup-content>
      

      📘 Sur UWP : Aucune configuration supplémentaire requise.[19659069]Commençons !

      Qu'est-ce que le stockage sécurisé ? 🤔

      La classe SecureStorage permet de stocker en toute sécurité des paires clé/valeur simples.

      📬 Configuration du stockage sécurisé

      Pour définir une valeur, il vous suffit d'appeler la classe SecureStorage suivie de la méthode SetAsync. Cette méthode stocke les valeurs chiffrées pour une clé donnée. Il prend les paramètres suivants :

      🔹 Nom de la clé : Il reçoit le nom avec lequel vous souhaitez que les données soient identifiées.

      🔹 Valeur de la clé : Il reçoit la valeur avec laquelle vous souhaitez enregistrer la clé précédemment enregistrée.

      await SecureStorage.SetAsync("oauth_token", "secret-oauth-token -value");
      

      📫 Obtenir des valeurs à partir du stockage sécurisé

      Pour récupérer une valeur à partir du stockage sécurisé, utilisez la méthode GetAsync. Il prend les paramètres suivants :

      🔹 Nom de la clé : Reçoit le nom de la clé dont vous souhaitez obtenir la valeur. (⚠ S'il n'y a pas de valeur avec cette clé, elle renverra un null.)

      var oauthToken = await SecureStorage.[19659077]GetAsync("oauth_token");
      

      📭 Suppression d'une clé de magasin sécurisé spécifique

      ➖ Pour supprimer une clé spécifique : Il vous suffit de indiquez le nom de la clé que vous souhaitez supprimer.

      SecureStorage.Remove("oauth_token");
      

      ➖ Pour tout supprimer :

      SecureStorage.RemoveAll();
      

      Important : Lorsque vous l'utilisez, essayez de gérer de petites quantités de texte ; sinon les performances peuvent ralentir.

      Et c'est fait ! Vous pouvez maintenant utiliser le stockage sécurisé ! 💪🏼

      Merci de m'avoir lu ! 💚

      Références : https://docs.microsoft.com/en-us/xamarin/essentials/secure-storage?tabs=ios




    Source link