Oefening: gevoelige gegevens classificeren in een cloudeigen toepassing
In deze oefening classificeert u de typen gevoelige gegevens in een voorbeeld eShopLite toepassing.
De app is actief in ontwikkeling en heeft momenteel twee gegevensklassen, Product en Order. Ze bouwen het bestelproces op en willen dat u de code toevoegt om gegevenstypen te classificeren.
In deze oefening leert u het volgende:
- Verken de huidige app en de bijbehorende gegevenstypen.
- Voeg de code toe om de gegevenstypen te classificeren.
- Voer de app uit en test deze.
De ontwikkelomgeving openen
U kunt ervoor kiezen om een GitHub-coderuimte te gebruiken die als host fungeert voor de oefening of om de oefening lokaal te voltooien in Visual Studio Code.
Om een codespacete gebruiken, moet u een vooraf geconfigureerde GitHub Codespace maken met deze link voor het maken van een codespace.
GitHub duurt enkele minuten om de codespace te maken en te configureren. Wanneer het proces is voltooid, ziet u de codebestanden voor de oefening. De code die voor de rest van deze module moet worden gebruikt, bevindt zich in de map /dotnet-compliance.
Als u Visual Studio Codewilt gebruiken, fork dan de https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative repository naar uw eigen GitHub-account. Dan:
- Zorg ervoor dat Docker wordt uitgevoerd. Druk in een nieuw Visual Studio Code-venster op Ctrl+Shift+P om het opdrachtenpalet te openen.
- Zoek en selecteer Dev Containers: Opslagplaats klonen in containervolume.
- Selecteer de geforkte opslagplaats. Visual Studio Code maakt uw ontwikkelcontainer lokaal.
De eShopLite-app testen
Selecteer onder in het Visual Studio Code-venster het tabblad TERMINAL.
Naar de oefeningsmap gaan:
cd dotnet-compliance/eShopLite
Bouw de apps-containers.
dotnet publish /p:PublishProfile=DefaultContainer
Voer de app uit met docker:
cd .. docker compose up
Selecteer het tabblad POORTEN en selecteer vervolgens het pictogram Openen in browser wereldbol voor de front-end (32000) poort.
Selecteer de koppeling Producten. In de app wordt een lijst met producten weergegeven.
Selecteer het tabblad TERMINAL en druk op Ctrl+C- om de app te stoppen.
Taxonomieën en kenmerken maken
Voeg in deze taak code toe om twee nieuwe taxonomieën te maken. Maak vervolgens aantekeningen op de Product en Order gegevenstypen met de juiste kenmerken.
Ga op het tabblad TERMINAL naar de map eShopLite/DataEntities:
cd eShopLite/DataEntities/
Voeg het nalevingspakket toe:
dotnet add package Microsoft.Extensions.Compliance.Redaction
Klik in het deelvenster EXPLORER met de rechtermuisknop op de map DataEntities en selecteer vervolgens het Nieuwe bestand.
Voer Compliance.csin de bestandsnaam in.
Voer in de editor deze code in:
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) { } }
De bovenstaande code maakt twee taxonomieën, EUII en EUPI. Er worden ook twee kenmerken gemaakt, EUIIDataAttribute en EUPDataAttribute. Deze kenmerken worden gebruikt om aantekeningen te maken bij de gegevenstypen.
De gegevenstypen classificeren
Gebruik deze taxonomieën en kenmerken om de gegevenstypen in de eShopLite-app te classificeren.
Vouw in het deelvenster EXPLORER de map DataEntities uit en selecteer vervolgens het Product.cs bestand.
Er zijn geen specifieke klantgevoelige gegevens in deze klasse, maar de app kan gepseudonimiseerde gegevens lekken als de product-id-eigenschap is verbonden met een klant in de logboeken.
Voeg het kenmerk EUPData toe aan de eigenschap ProductId:
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }
De bovenstaande code vertelt de redaction-engine dat de eigenschap Id gepseudonimiseerde gegevens is.
Vouw in het deelvenster EXPLORER de map DataEntities uit en selecteer vervolgens het Order.cs bestand.
De klasse Order bevat gevoelige gegevens. De eigenschappen CustomerName en CustomerAddress zijn identificeerbare informatie voor eindgebruikers. De eigenschap Id is gepseudonimiseerde gegevens van eindgebruikers.
Voeg het kenmerk EUIIData toe aan de eigenschappen CustomerName en CustomerAddress:
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }
De bovenstaande code vertelt de redaction-engine dat de eigenschappen van de CustomerName en CustomerAddress identificeerbare gegevens van eindgebruikers zijn.
Voeg het kenmerk EUPData toe aan de eigenschap Id:
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }
De bovenstaande code vertelt de redaction engine dat de eigenschap Id gepseudonimiseerde eindgebruikerinformatie is.
Uw wijzigingen in de eShopLite-app testen
Ga naar de map dotnet-compliance/eShopLite in het deelvenster TERMINAL onderaan.
cd ..
Werk de appscontainers bij.
dotnet publish /p:PublishProfile=DefaultContainer
Ga naar de map dotnet-compliance en start de app met Docker:
cd .. docker compose up
Als u het tabblad in uw browser hebt gesloten, selecteert u het tabblad POORTEN en selecteert u vervolgens het pictogram Openen in browser voor de front-end (32000) poort.
Houd er rekening mee dat de eShopLite-app ongewijzigd blijft.
Probeer enkele producten toe te voegen aan de mand en selecteer vervolgens Mandje kopen.
Druk in het TERMINAL- venster op Ctrl+C om de app te stoppen.
In de volgende oefening voegt u gecensureerde logboekregistratie toe.