Esercizio - Classificare i dati sensibili in un'applicazione nativa del cloud
In questo esercizio si classificano i tipi di dati sensibili in un'applicazione di esempio eShopLite .
L'app è in fase di sviluppo attivo e attualmente ha due classi di dati e ProductOrder. Stanno creando il processo di ordinazione e vogliono che tu aggiunga il codice per classificare i tipi di dati.
In questo esercizio vedere come:
- Esplorare l'app corrente e i relativi tipi di dati.
- Aggiungere il codice per classificare i tipi di dati.
- Eseguire e testare l'app.
Aprire l'ambiente di sviluppo
Si può scegliere di ospitare l'esercizio in un codespace GitHub oppure di completarlo in locale in Visual Studio Code.
Per usare un codespace, crea un codespace GitHub preconfigurato con questo link di creazione Codespace.
GitHub richiede alcuni minuti per creare e configurare lo spazio di codice. Al termine del processo, viene visualizzato il file di codice per l'esercizio. Il codice da usare per il resto di questo modulo si trova nella directory /dotnet-compliance .
Per usare Visual Studio Code, creare un fork del https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative repository nel proprio account GitHub. Quindi:
- Verificare che Docker sia in esecuzione. In una nuova finestra di Visual Studio Code premere CTRL+MAIUSC+P per aprire il riquadro comandi.
- Cercare e selezionare Dev Containers: Clone Repository in Container Volume.
- Selezionare il repository di cui è stata creata una copia tramite fork. Visual Studio Code crea il contenitore di sviluppo in locale.
Testare l'app eShopLite
Nella parte inferiore della finestra di Visual Studio Code selezionare la scheda TERMINALE .
Passare alla cartella dell'esercizio:
cd dotnet-compliance/eShopLiteCostruire i contenitori delle app.
dotnet publish /p:PublishProfile=DefaultContainerEseguire l'app usando Docker:
cd .. docker compose upSelezionare la scheda PORTE, quindi selezionare l'icona Apri nel globo del browser per la porta Front End (32000).
Selezionare il collegamento Prodotti. L'app visualizza un elenco di prodotti.
Selezionare la scheda TERMINALE , quindi premere CTRL+C per arrestare l'app.
Creare tassonomie e attributi
In questa attività aggiungere il codice per creare due nuove tassonomie. Annotare quindi i Product tipi di dati e Order con gli attributi appropriati.
Nella scheda TERMINALE passare alla eShopLite/DataEntities cartella :
cd eShopLite/DataEntities/Aggiungere il pacchetto di conformità:
dotnet add package Microsoft.Extensions.Compliance.RedactionNel riquadro EXPLORER fare clic con il pulsante destro del mouse sulla cartella DataEntities e quindi scegliere Nuovo file.
Nel nome del file immettere Compliance.cs.
Nell'editor immettere questo codice:
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) { } }Il codice precedente crea due tassonomie e EUIIEUPI. Crea anche due attributi, EUIIDataAttribute e EUPDataAttribute. Questi attributi vengono usati per annotare i tipi di dati.
Classificare i tipi di dati
Usare questi attributi e tassonomie per classificare i tipi di dati nell'app eShopLite .
Nel riquadro EXPLORER espandere la cartella DataEntities e quindi selezionare il file Product.cs .
In questa classe non sono presenti dati sensibili specifici dei clienti, ma l'app potrebbe perdere dati pseudonimi se la proprietà ID prodotto è connessa a un cliente nei log.
Aggiungere l'attributo EUPData alla ProductId proprietà :
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }Il codice precedente indica al motore di redazione che la proprietà Id è un dato pseudonimo.
Nel riquadro EXPLORER espandere la cartella DataEntities e quindi selezionare il file Order.cs .
La Order classe contiene dati sensibili. Le CustomerName proprietà e CustomerAddress sono informazioni identificabili dall'utente finale. La Id proprietà è informazioni pseudonime dell'utente finale.
Aggiungere l'attributo EUIIData alle CustomerName proprietà e CustomerAddress :
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }Il codice precedente indica al motore di redaction che le CustomerName proprietà e CustomerAddress sono informazioni identificabili dall'utente finale.
Aggiungere l'attributo EUPData alla Id proprietà :
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }Il codice precedente indica al motore di redazione che la proprietà Id è un' informazione pseudonima dell'utente finale.
Testare le modifiche apportate all'app eShopLite
Nel riquadro TERMINALE nella parte inferiore passare alla cartella dotnet-compliance/eShopLite .
cd ..Aggiornare i contenitori delle app.
dotnet publish /p:PublishProfile=DefaultContainerPassare alla cartella dotnet-compliance e avviare l'app con Docker:
cd .. docker compose upSe la scheda è stata chiusa nel browser, selezionare la scheda PORTE, quindi selezionare l'icona Apri nel browser per la porta Front End (32000).
Tieni presente che l'app eShopLite è invariata.
Provare ad aggiungere alcuni prodotti al carrello, quindi selezionare Acquista carrello.
Nella finestra TERMINALE premere CTRL+C per arrestare l'app.
Nella prossima esercitazione si aggiungerà la registrazione modificata.