Exercice : Classer les données sensibles dans une application native cloud

Effectué

Dans cet exercice, vous classez les types de données sensibles dans un exemple d’application eShopLite.

L’application est en développement actif et possède actuellement deux classes de données, Product et Order. Le processus de commande est en cours d’élaboration et vous devez ajouter le code nécessaire à la classification des types de données.

Dans cet exercice, vous voyez comment effectuer les opérations suivantes :

  • Explorez l’application actuelle et ses types de données.
  • Ajoutez le code pour classer les types de données.
  • Exécutez et testez l’application.

Ouvrez l’environnement de développement

Vous pouvez choisir d’utiliser un codespace GitHub qui héberge l’exercice ou effectuer l’exercice localement dans Visual Studio Code.

Pour utiliser un codespace, créez un codespace GitHub préconfiguré avec ce lien de création de codespace.

La création et la configuration du codespace par GitHub prend quelques minutes. Lorsque le processus est terminé, vous voyez les fichiers de code de l’exercice. Le code à utiliser pour le reste de ce module se trouve dans le répertoire /dotnet-compliance.

Pour utiliser Visual Studio Code, dupliquez (fork) le référentiel https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative sur votre propre compte GitHub. Ensuite :

  1. Vérifiez que Docker est en cours d’exécution. Dans une nouvelle fenêtre Visual Studio Code, appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes.
  2. Recherchez et sélectionnez Conteneurs de développement : Cloner le dépôt dans le volume de conteneur.
  3. Sélectionnez le référentiel que vous avez dupliqué. Visual Studio Code crée votre conteneur de développement localement.

Testez l’application eShopLite

  1. En bas de la fenêtre Visual Studio Code, sélectionnez l’onglet TERMINAL.

  2. Accédez au dossier de l’exercice :

    cd dotnet-compliance/eShopLite
    
  3. Générez jour les conteneurs d’applications.

    dotnet publish /p:PublishProfile=DefaultContainer 
    
  4. Exécutez l’application en utilisant Docker :

    cd ..
    docker compose up
    
  5. Sélectionnez l’onglet PORTS, puis sélectionnez l’icône de globe Ouvrir dans le navigateur pour le port Front-end (32000).

  6. Sélectionnez le lien Produits. L’application affiche une liste de produits.

    A screenshot of the running eShopLite app.

  7. Sélectionnez l’onglet TERMINAL, puis appuyez sur Ctrl+C pour arrêter l’application.

Créez des taxonomies et des attributs

Dans cette tâche, ajoutez du code pour créer deux nouvelles taxonomies. Annotez ensuite les types de données Product et Order avec les attributs appropriés.

  1. Sous l’onglet TERMINAL, accédez au dossier eShopLite/DataEntities :

    cd eShopLite/DataEntities/
    
  2. Ajoutez le package de conformité :

    dotnet add package Microsoft.Extensions.Compliance.Redaction
    
  3. Dans le volet EXPLORER, faites un clic droit sur le dossier DataEntities, puis sélectionnez le Nouveau fichier.

  4. Dans le nom du fichier, entrez Compliance.cs.

  5. Dans l’éditeur, entrez ce code :

    using Microsoft.Extensions.Compliance.Classification;
    using Microsoft.Extensions.Compliance.Redaction;
    
    public static class DataClassifications
    {
        // End User Identifiable Information
        public static DataClassification EUIIDataClassification {get;} = new DataClassification("EUIIDataTaxonomy", "EUIIData");
    
        // End User Pseudonymous Information
        public static DataClassification EUPDataClassification {get;} = new DataClassification("EUPDataTaxonomy", "EUPData");
    }
    
    public class EUIIDataAttribute : DataClassificationAttribute
    {
        public EUIIDataAttribute() : base(DataClassifications.EUIIDataClassification) { }
    }
    
    public class EUPDataAttribute : DataClassificationAttribute
    {
        public EUPDataAttribute() : base(DataClassifications.EUPDataClassification) { }
    }
    
    

    Le code ci-dessus crée deux taxonomies, EUII et EUPI. Il crée également deux attributs, EUIIDataAttribute et EUPDataAttribute. Ces attributs sont utilisés pour annoter les types de données.

Classer les types de données

Utilisez ces taxonomies et attributs pour classer les types de données dans l’application eShopLite.

  1. Dans le volet EXPLORER, développez le dossier DataEntities, puis sélectionnez le fichier Product.cs.

    Il n’existe pas de données sensibles client spécifiques dans cette classe, mais l’application pourrait divulguer des données pseudonymes si la propriété ID de produit est connectée à un client dans les journaux.

  2. Ajoutez l’attribut EUPData à la propriété ProductId :

    [EUPData]
    [Key]
    [JsonPropertyName("id")]
    public int Id { get; set; }
    

    Le code ci-dessus indique au moteur de masquage que la propriété Id est une donnée pseudonyme.

  3. Dans le volet EXPLORER, développez le dossier DataEntities, puis sélectionnez le fichier Order.cs.

    La classe Order contient des données sensibles. Les propriétés CustomerName et CustomerAddress sont des informations d’identification de l’utilisateur final. La propriété Id est l’information pseudonyme de l’utilisateur final.

  4. Ajoutez l’attribut EUIIData aux propriétés CustomerName et CustomerAddress :

    [EUIIData]
    [JsonPropertyName("customerName")]
    public string? CustomerName { get; set; }
    
    [EUIIData]
    [JsonPropertyName("customerAddress")]
    public string? CustomerAddress { get; set; }
    

    Le code ci-dessus indique au moteur de masquage que les propriétés CustomerName et CustomerAddress sont des informations d’identification de l’utilisateur final.

  5. Ajoutez l’attribut EUPData à la propriété Id :

    [Key]
    [EUPData]
    [JsonPropertyName("id")]
    public int Id { get; set; }
    

    Le code ci-dessus indique au moteur de masquage que la propriété Id est une information pseudonyme de l’utilisateur final.

Testez vos modifications apportées à l’application eShopLite

  1. Dans le volet TERMINAL en bas de l’écran, accédez au dossier dotnet-compliance/eShopLite.

    cd ..
    
  2. Mettez à jour les conteneurs d’applications.

    dotnet publish /p:PublishProfile=DefaultContainer 
    
  3. Accédez au dossier dotnet-compliance, puis démarrez l’application avec Docker :

    cd ..
    docker compose up
    
  4. Si vous avez fermé l’onglet dans votre navigateur, sélectionnez l’onglet PORTS, puis sélectionnez l’icône Ouvrir dans le navigateur pour le port Front-end (32000).

  5. Notez que l’application eShopLite n’est pas modifiée.

  6. Essayez d’ajouter des produits au panier, puis sélectionnez Acheter le panier.

  7. Dans la fenêtre TERMINAL, appuyez sur Ctrl+C pour arrêter l’application.

Vous allez ajouter la journalisation modifiée dans l’exercice suivant.