練習 - 將雲端原生應用程式中的敏感資料分類
在此練習中,您會將範例 eShopLite 應用程式中的敏感資料類型分類。
該應用程式處於使用中開發狀態,目前有兩個資料類別:Product 和 Order。 他們正在建置排序流程,並要您新增程式碼,以便將資料類型分類。
在此練習中,了解如何:
- 探索目前的應用程式及其資料類型。
- 新增程式碼以便將資料類型分類。
- 執行和測試應用程式。
開啟開發環境
您可以選擇使用裝載本練習的 GitHub Codespace,或在 Visual Studio Code 本機上完成該練習。
若要使用 Codespace,請使用 此 Codespace 建立連結 來建立預先設定的 GitHub Codespace。
GitHub 需要幾分鐘的時間來建立及設定 Codespace。 流程完成後,您即會看到此練習的程式碼檔案。 用於本課程模組其餘部分的程式碼位於 /dotnet-compliance 目錄中。
若要使用 Visual Studio Code,請將 https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative 存放庫派生到您自己的 GitHub 帳戶。 接下來:
- 確定 Docker 是執行狀態。 在新的 Visual Studio Code 視窗中,選取 Ctrl+Shift+P,以開啟命令選擇區。
- 搜尋並選取 [開發容器:複製容器磁碟區中的存放庫]。
- 選取您的派生存放庫。 Visual Studio Code 會在本機上建立您的開發容器。
測試 eShopLite 應用程式
在 Visual Studio Code 視窗底部,選取 [終端] 索引標籤。
移至練習資料夾:
cd dotnet-compliance/eShopLite
建置應用程式容器。
dotnet publish /p:PublishProfile=DefaultContainer
使用 docker 執行應用程式:
cd .. docker compose up
選取 [連接埠] 索引標籤,然後選取 [前端 (32000)] 連接埠的 [在瀏覽器中開啟] 地球圖示。
選取 [產品] 連結。 應用程式會顯示產品清單。
選取 [終端] 索引標籤,然後按下 Ctrl+C 即可停止應用程式。
建立分類法和屬性
在此工作中,新增程式碼以建立兩個新的分類法。 然後使用適當的屬性標註 Product 和 Order 資料類型。
在 [終端] 索引標籤中,移至 eShopLite/DataEntities 資料夾:
cd eShopLite/DataEntities/
新增合規性套件:
dotnet add package Microsoft.Extensions.Compliance.Redaction
在 [檔案總管] 窗格中,以滑鼠右鍵按一下 [DataEntities] 資料夾,然後選取 [新增檔案]。
在檔案名稱中,輸入 Compliance.cs。
在編輯器中,輸入下列程式碼:
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) { } }
上述程式碼會建立兩個分類法:EUII 和 EUPI。 其也會建立兩個屬性:EUIIDataAttribute 和 EUPDataAttribute。 這些屬性會用於標註資料類型。
將資料類型分類
使用這些分類法和屬性將 eShopLite 應用程式中的資料類型分類。
在 [檔案總管] 窗格中,展開 [DataEntities] 資料夾,然後選取 Product.cs 檔案。
此類別中沒有特定的客戶敏感性資料,但如果產品識別碼屬性已連線到記錄中的客戶,應用程式可能會洩漏匿名資料。
將 EUPData 屬性 (Attribute) 新增至 ProductId 屬性 (Property):
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }
上述程式碼會告知修訂引擎,Id 屬性為匿名資料。
在 [檔案總管] 窗格中,展開 [DataEntities] 資料夾,然後選取 Order.cs 檔案。
類別 Order 包含敏感性資料。 CustomerName 和 CustomerAddress 屬性是終端使用者的可識別資訊。 屬性 Id 是終端使用者的匿名資訊。
將 EUIIData 屬性 (Attribute) 新增至 CustomerName 和 CustomerAddress 屬性 (Property):
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }
上述程式碼會告知修訂引擎,CustomerName 和 CustomerAddress 屬性是終端使用者的可識別資訊。
將 EUPData 屬性 (Attribute) 新增至 Id 屬性 (Property):
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }
上述程式碼會告知修訂引擎,Id 屬性是終端使用者的匿名資訊。
測試您對 eShopLite 應用程式的變更
在底部的 [終端] 窗格中,前往 [dotnet-compliance/eShopLite] 資料夾。
cd ..
更新應用程式容器。
dotnet publish /p:PublishProfile=DefaultContainer
前往 [dotnet-compliance] 資料夾,並使用 Docker 啟動應用程式:
cd .. docker compose up
如果您在瀏覽器中關閉了索引標籤,請選取 [連接埠] 索引標籤,然後選取 [前端 (32000)] 連接埠的 [在瀏覽器中開啟] 地球圖示。
請注意,eShopLite 應用程式並未變更。
請嘗試將某些產品新增至購物籃,然後選取 [購買購物籃]。
在 [終端] 視窗中,按下 Ctrl+C 即可停止應用程式。
您在下一個練習中會新增修訂的記錄。