Übung – Klassifizieren vertraulicher Daten in einer cloudnativen Anwendung
In dieser Übung werden vertrauliche Datentypen in einer BeispieleShopLite-Anwendung klassifiziert.
Die App befindet sich in der Entwicklung und verfügt derzeit über zwei Datenklassen: Product und Order. Aktuell wird am Bestellprozess gearbeitet, und Sie sollen den Code zum Klassifizieren von Datentypen hinzufügen.
In dieser Übung erfahren Sie, wie Sie:
- Erkunden Sie die aktuelle App und die zugehörigen Datentypen.
- Fügen Sie den Code zum Klassifizieren der Datentypen hinzu.
- Führen Sie die App aus, und testen Sie sie.
Öffnen Sie die Entwicklungsumgebung
Sie können entweder einen GitHub-Codespace verwenden, der die Übung hostet, oder die Übung lokal in Visual Studio Code durchführen.
Um einen Codespace zu verwenden, erstellen Sie einen vorkonfigurierten GitHub Codespace mit diesem Link zur Codespace-Erstellung.
Die Erstellung und Konfiguration des Codespace auf GitHub dauert ein paar Minuten. Nach Abschluss des Vorgangs werden die Codedateien für die Übung angezeigt. Der Code, den Sie für den Rest dieses Moduls verwenden müssen, befindet sich im Verzeichnis /dotnet-compliance.
Um Visual Studio Code zu verwenden, forken Sie das https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative-Repository auf Ihr eigenes GitHub-Konto. Führen Sie dann folgende Schritte aus:
- Achten Sie darauf, dass Docker ausgeführt wird. Drücken Sie in einem neuen Visual Studio Code-Fenster STRG+UMSCHALT+P, um die Befehlspalette zu öffnen.
- Suchen Sie nach Dev-Container: Repository in Container-Volume klonen, und wählen Sie dies aus.
- Wählen Sie Ihr Forked Repository aus. Visual Studio Code erstellt Ihren Entwicklungscontainer lokal.
Testen der eShopLite-App
Wählen Sie unten im Visual Studio Code-Fenster die Registerkarte TERMINAL aus.
Navigieren Sie zum Übungsordner:
cd dotnet-compliance/eShopLite
Erstellen Sie die App-Container.
dotnet publish /p:PublishProfile=DefaultContainer
Führen Sie die App mit Docker aus:
cd .. docker compose up
Wählen Sie die Registerkarte PORTS und anschließend das Globussymbol Im Browser öffnen für den Port Front-End (32000) aus.
Wählen Sie den Link für Produkte aus. Die App zeigt eine Produktliste an.
Wählen Sie die Registerkarte TERMINAL aus, und drücken Sie anschließend STRG+C, um die App zu beenden.
Erstellen von Taxonomien und Attributen
Fügen Sie in dieser Aufgabe Code hinzu, um zwei neue Taxonomien zu erstellen. Versehen Sie dann die Product- und Order-Datentypen mit den entsprechenden Attributen.
Navigieren Sie auf der Registerkarte TERMINAL zum Ordner eShopLite/DataEntities:
cd eShopLite/DataEntities/
Fügen Sie das Compliancepaket hinzu:
dotnet add package Microsoft.Extensions.Compliance.Redaction
Klicken Sie im Bereich EXPLORER mit der rechten Maustaste auf den Ordner DataEntities, und wählen Sie Neue Datei aus.
Geben Sie Compliance.cs als Dateiname ein.
Geben Sie im Editor den folgenden Code ein:
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) { } }
Der obige Code erstellt zwei Taxonomien: EUII und EUPI. Außerdem erstellt er zwei Attribute: EUIIDataAttribute und EUPDataAttribute. Diese Attribute werden verwendet, um die Datentypen zu kommentieren.
Klassifizieren der Datentypen
Verwenden Sie diese Taxonomien und Attribute, um die Datentypen in der eShopLite-App zu klassifizieren.
Erweitern Sie im Bereich EXPLORER den Ordner DataEntities, und wählen Sie die Datei Product.cs aus.
In dieser Klasse gibt es zwar keine spezifischen vertraulichen Kundendaten, die App könnte jedoch pseudonyme Daten offenlegen, wenn die Produkt-ID-Eigenschaft mit einem Kunden oder einer Kundin in den Protokollen verknüpft ist.
Fügen Sie der Eigenschaft ProductId das Attribut EUPData hinzu:
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }
Der obige Code teilt dem Modul für die Unkenntlichmachung mit, dass es sich bei der Eigenschaft Id um pseudonyme Daten handelt.
Erweitern Sie im Bereich EXPLORER den Ordner DataEntities, und wählen Sie die Datei Order.cs aus.
Die Klasse Order enthält vertrauliche Daten. Bei den Eigenschaften CustomerName und CustomerAddress handelt es sich um personenbezogene Endbenutzerinformationen. Bei der Eigenschaft Id handelt es sich um pseudonyme Endbenutzerinformationen.
Fügen Sie den Eigenschaften CustomerName und CustomerAddress das Attribut EUIIData hinzu:
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }
Der obige Code teilt dem Modul für die Unkenntlichmachung mit, dass es sich bei den Eigenschaften CustomerName und CustomerAddress um personenbezogene Endbenutzerinformationen handelt.
Fügen Sie der Eigenschaft Id das Attribut EUPData hinzu:
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }
Der obige Code teilt dem Modul für die Unkenntlichmachung mit, dass es sich bei der Eigenschaft Id um pseudonyme Endbenutzerinformationen handelt.
Testen Ihrer Änderungen an der eShopLite-App
Wechseln Sie unten im TERMINAL-Bereich zum Ordner dotnet-compliance/eShopLite.
cd ..
Aktualisieren Sie die App-Container.
dotnet publish /p:PublishProfile=DefaultContainer
Wechseln Sie zum dotnet-compliance-Ordner und starten Sie die Anwendung mit Docker:
cd .. docker compose up
Falls Sie den Tab in Ihrem Browser geschlossen haben, wählen Sie die Registerkarte PORTS und anschließend das Symbol Im Browser öffnen für den Port Front-End (32000) aus.
Wie Sie sehen, ist die eShopLite-App unverändert.
Versuchen Sie, dem Warenkorb einige Produkte hinzuzufügen, und wählen Sie anschließend Warenkorb kaufen aus.
Drücken Sie im Fenster TERMINAL die STRG+C, um die Anwendung zu beenden.
In der nächsten Übung werden Sie die geschwärzte Protokollierung hinzufügen.