Övning – Klassificera känsliga data i ett molnbaserat program
I den här övningen klassificerar du känsliga datatyper i ett exempelprogram eShopLite .
Appen är i aktiv utveckling och har för närvarande två dataklasser och Product Order. De skapar beställningsprocessen och vill att du lägger till koden för att klassificera datatyper.
I den här övningen kan du se hur du:
- Utforska den aktuella appen och dess datatyper.
- Lägg till koden för att klassificera datatyperna.
- Kör och testa appen.
Öppna utvecklingsmiljön
Du kan välja att använda ett GitHub-kodområde som är värd för övningen eller slutföra övningen lokalt i Visual Studio Code.
Om du vill använda ett kodområde skapar du ett förkonfigurerat GitHub Codespace med den här länken för att skapa Codespace.
GitHub tar flera minuter att skapa och konfigurera kodområdet. När processen är klar visas kodfilerna för övningen. Koden som ska användas för resten av den här modulen finns i katalogen /dotnet-compliance .
Om du vill använda Visual Studio Code förgrenar du lagringsplatsen https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative till ditt eget GitHub-konto. Sedan:
- Kontrollera att Docker körs. I ett nytt Visual Studio Code-fönster trycker du på Ctrl+Skift+P för att öppna kommandopaletten.
- Sök efter och välj Dev Containers: Clone Repository in Container Volume (Dev Containers: Clone Repository in Container Volume).
- Välj din förgrenade lagringsplats. Visual Studio Code skapar din utvecklingscontainer lokalt.
eShopLite Testa appen
Längst ned i Visual Studio Code-fönstret väljer du fliken TERMINAL .
Flytta till övningsmappen:
cd dotnet-compliance/eShopLite
Skapa appcontainrarna.
dotnet publish /p:PublishProfile=DefaultContainer
Kör appen med docker:
cd .. docker compose up
Välj fliken PORTar och välj sedan ikonen Öppna i webbläsarens jordglob för frontend-porten (32000).
Välj länken Produkter. Appen visar en lista över produkter.
Välj fliken TERMINAL och tryck sedan på Ctrl+C för att stoppa appen.
Skapa taxonomier och attribut
I den här uppgiften lägger du till kod för att skapa två nya taxonomier. Kommentera sedan datatyperna Product och Order med lämpliga attribut.
Gå till mappen på eShopLite/DataEntities fliken TERMINAL:
cd eShopLite/DataEntities/
Lägg till efterlevnadspaketet:
dotnet add package Microsoft.Extensions.Compliance.Redaction
I explorer-fönstret högerklickar du på mappen DataEntiteter och väljer sedan den nya filen.
I filnamnet anger du Compliance.cs.
I redigeraren anger du den här koden:
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) { } }
Koden ovan skapar två taxonomier och EUII EUPI. Den skapar också två attribut och EUIIDataAttribute EUPDataAttribute. Dessa attribut används för att kommentera datatyperna.
Klassificera datatyperna
Använd dessa taxonomier och attribut för att klassificera datatyperna eShopLite i appen.
I explorer-fönstret expanderar du mappen DataEntiteter och väljer sedan filen Product.cs.
Det finns inte specifika kundkänsliga data i den här klassen, men appen kan läcka pseudonyma data om produkt-ID-egenskapen är ansluten till en kund i loggarna.
EUPData Lägg till attributet i egenskapenProductId:
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }
Koden ovan anger för redigeringsmotorn att egenskapen Id är pseudonyma data.
I explorer-fönstret expanderar du mappen DataEntiteter och väljer sedan filen Order.cs.
Klassen Order innehåller känsliga data. Egenskaperna CustomerName och CustomerAddress är identifierbar information för slutanvändare. Egenskapen Id är pseudonym information för slutanvändare.
EUIIData Lägg till attributet till CustomerName egenskaperna ochCustomerAddress:
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }
Koden ovan talar om för redigeringsmotorn att CustomerName egenskaperna och CustomerAddress är slutanvändarens identifierbara information.
EUPData Lägg till attributet i egenskapenId:
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }
Koden ovan anger för redigeringsmotorn Id att egenskapen är pseudonym information för slutanvändaren.
Testa dina ändringar i eShopLite appen
Gå till mappen dotnet-compliance/eShopLite i terminalfönstret längst ned.
cd ..
Uppdatera appcontainrarna.
dotnet publish /p:PublishProfile=DefaultContainer
Gå till mappen dotnet-compliance och starta appen med Docker:
cd .. docker compose up
Om du stängde fliken i webbläsaren väljer du fliken PORTar och väljer sedan ikonen Öppna i webbläsaren för frontend-porten (32000).
Observera att eShopLite appen är oförändrad.
Prova att lägga till några produkter i korgen och välj sedan Köp korg.
I terminalfönstret trycker du på Ctrl+C för att stoppa appen.
Du lägger till redigerad loggning i nästa övning.