Latihan - Mengklasifikasikan data sensitif dalam aplikasi cloud-native
Dalam latihan ini, Anda mengklasifikasikan jenis data sensitif dalam sampel aplikasi eShopLite.
Aplikasi ini sedang dalam pengembangan aktif dan saat ini memiliki dua kelas data, Product dan Order. Mereka membangun proses pemesanan dan ingin Anda menambahkan kode untuk mengklasifikasikan jenis data.
Dalam latihan ini, lihat cara:
- Jelajahi aplikasi saat ini dan jenis datanya.
- Tambahkan kode untuk mengklasifikasikan jenis data.
- Jalankan dan uji aplikasi.
Buka lingkungan pengembangan
Anda dapat memilih untuk menggunakan ruang kode GitHub yang menghosting latihan, atau menyelesaikan latihan secara lokal di Visual Studio Code.
Untuk menggunakan codespace , buat GitHub Codespace yang telah dikonfigurasi sebelumnya dengan tautan ini untuk pembuatan Codespace .
GitHub membutuhkan waktu beberapa menit untuk membuat dan mengonfigurasi codespace. Setelah proses selesai, Anda akan melihat file kode untuk latihan. Kode yang digunakan untuk sisa modul ini ada di direktori /dotnet-compliance.
Untuk menggunakan Visual Studio Code, fork https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative repositori ke akun GitHub Anda sendiri. Kemudian:
- Pastikan Docker berjalan. Di jendela Visual Studio Code baru, tekan Ctrl+Shift+P untuk membuka palet perintah.
- Cari dan pilih Dev Containers: Clone Repository di Container Volume.
- Pilih repositori fork Anda. Visual Studio Code membuat kontainer pengembangan Anda secara lokal.
Menguji aplikasi eShopLite
Di bagian bawah jendela Visual Studio Code, pilih tab TERMINAL .
Pindah ke folder latihan:
cd dotnet-compliance/eShopLiteBuat kontainer aplikasi.
dotnet publish /p:PublishProfile=DefaultContainerJalankan aplikasi menggunakan docker:
cd .. docker compose upPilih tab PORTS lalu pilih ikon Buka di Browser untuk port Front End (32000).
Pilih tautan Produk. Aplikasi ini menampilkan daftar produk.
Pilih tab TERMINAL , lalu tekan Ctrl+C untuk menghentikan aplikasi.
Membuat taksonomi dan atribut
Dalam tugas ini, tambahkan kode untuk membuat dua taksonomi baru. Kemudian buat anotasi jenis data Product dan Order dengan atribut yang sesuai.
Di tab TERMINAL , pindah ke eShopLite/DataEntities folder:
cd eShopLite/DataEntities/Tambahkan paket kepatuhan:
dotnet add package Microsoft.Extensions.Compliance.RedactionDi panel EXPLORER , klik kanan folder DataEntities , lalu pilih File baru.
Dalam nama file, masukkan Compliance.cs.
Di editor, masukkan kode ini:
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) { } }Kode di atas membuat dua taksonomi, EUII dan EUPI. Ini juga membuat dua atribut, EUIIDataAttribute dan EUPDataAttribute. Atribut ini digunakan untuk membuat anotasi jenis data.
Mengklasifikasikan jenis data
Gunakan taksonomi dan atribut ini untuk mengklasifikasikan jenis data di aplikasi eShopLite.
Di panel EXPLORER , perluas folder DataEntities , lalu pilih file Product.cs .
Tidak ada data sensitif pelanggan yang spesifik di kelas ini, tetapi aplikasi dapat membocorkan data pseudonim jika properti ID produk terhubung dengan pelanggan dalam log.
Tambahkan atribut EUPData ke properti ProductId:
[EUPData] [Key] [JsonPropertyName("id")] public int Id { get; set; }Kode di atas memberi tahu mesin redaksi bahwa properti Id adalah data samar.
Di panel EXPLORER , perluas folder DataEntities , lalu pilih file Order.cs .
Kelas Order berisi data sensitif. Properti CustomerName dan CustomerAddress adalah informasi yang dapat diidentifikasi pengguna akhir. Properti Id adalah informasi pseudonim dari pengguna akhir.
Tambahkan atribut EUIIData ke properti CustomerName dan CustomerAddress:
[EUIIData] [JsonPropertyName("customerName")] public string? CustomerName { get; set; } [EUIIData] [JsonPropertyName("customerAddress")] public string? CustomerAddress { get; set; }Kode di atas memberi tahu mesin redaksi bahwa properti CustomerName dan CustomerAddress adalah informasi pengidentifikasi pengguna akhir.
Tambahkan atribut EUPData ke properti Id:
[Key] [EUPData] [JsonPropertyName("id")] public int Id { get; set; }Kode di atas memberi tahu mesin redaksi bahwa properti Id adalah informasi nama samar pengguna akhir.
Menguji perubahan Anda ke aplikasi eShopLite
Pada panel TERMINAL di bagian bawah, buka folder dotnet-compliance/eShopLite .
cd ..Perbarui kontainer aplikasi.
dotnet publish /p:PublishProfile=DefaultContainerBuka folder dotnet-compliance , dan mulai aplikasi dengan Docker:
cd .. docker compose upJika Anda menutup tab di browser, pilih tab PORT, lalu pilih ikon Buka di Browser untuk port Front End (32000).
Perhatikan bahwa aplikasi eShopLite tidak berubah.
Coba tambahkan beberapa produk ke keranjang, lalu pilih Beli Keranjang.
Di jendela TERMINAL , tekan Ctrl+C untuk menghentikan aplikasi.
Anda akan menambahkan pengelogan yang diredaksi di latihan berikutnya.