Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Klasifikasi data membantu Anda mengategorikan (atau mengklasifikasikan) data berdasarkan tingkat sensitivitas dan perlindungannya. Struktur ini DataClassification memungkinkan Anda memberi label informasi sensitif dan menerapkan kebijakan berdasarkan label ini.
- DataClassification.TaxonomyName: Mengidentifikasi sistem klasifikasi.
- DataClassification.Value: Mewakili label tertentu dalam taksonomi.
Dalam beberapa situasi, Anda mungkin perlu menentukan bahwa data secara eksplisit tidak memiliki klasifikasi data, ini dicapai dengan DataClassification.None. Demikian pula, Anda mungkin perlu menentukan bahwa klasifikasi data tidak diketahui—gunakan DataClassification.Unknown dalam kasus ini.
Memasang paket
Untuk memulai, instal 📦 paket NuGet Microsoft.Extensions.Compliance.Abstractions :
dotnet add package Microsoft.Extensions.Compliance.Abstractions
Atau, jika Anda menggunakan .NET 10+ SDK:
dotnet package add Microsoft.Extensions.Compliance.Abstractions
Membuat klasifikasi kustom
Tentukan klasifikasi kustom dengan membuat static anggota untuk berbagai jenis data sensitif. Ini memberi Anda cara yang konsisten untuk memberi label dan menangani data di seluruh aplikasi Anda. Pertimbangkan kelas contoh berikut:
using Microsoft.Extensions.Compliance.Classification;
internal static class MyTaxonomyClassifications
{
internal static string Name => "MyTaxonomy";
internal static DataClassification PrivateInformation => new(Name, nameof(PrivateInformation));
internal static DataClassification CreditCardNumber => new(Name, nameof(CreditCardNumber));
internal static DataClassification SocialSecurityNumber => new(Name, nameof(SocialSecurityNumber));
internal static DataClassificationSet PrivateAndSocialSet => new(PrivateInformation, SocialSecurityNumber);
}
Jika Anda ingin berbagi taksonomi klasifikasi kustom Anda dengan aplikasi lain, kelas ini dan anggotanya harus public bukan internal. Misalnya, Anda dapat memiliki pustaka bersama yang berisi klasifikasi kustom, yang dapat Anda gunakan di beberapa aplikasi.
DataClassificationSet memungkinkan Anda menyusun beberapa klasifikasi data ke dalam satu set. Ini memungkinkan Anda mengklasifikasikan data Anda dengan beberapa klasifikasi data. Selain itu, API redaksi .NET menggunakan DataClassificationSet.
Nota
Beberapa klasifikasi data berjalan bersama sebagai DataClassificationSet diperlakukan sebagai klasifikasi tunggal. Anda dapat menganggapnya sebagai operasi logis AND . Misalnya, jika Anda mengonfigurasi redaksi untuk data yang diklasifikasikan sebagai DataClassificationSet dari PrivateInformation dan SocialSecurityNumber, itu tidak akan berlaku untuk data yang hanya diklasifikasikan sebagai PrivateInformation atau hanya SocialSecurityNumber.
Membuat atribut klasifikasi kustom
Buat atribut kustom berdasarkan klasifikasi kustom Anda. Gunakan atribut ini untuk menandai data Anda dengan klasifikasi yang tepat. Pertimbangkan definisi kelas atribut kustom berikut:
public sealed class PrivateInformationAttribute : DataClassificationAttribute
{
public PrivateInformationAttribute()
: base(MyTaxonomyClassifications.PrivateInformation)
{
}
}
Kode sebelumnya mendeklarasikan atribut informasi privat, yang merupakan subkelas dari jenis tersebut DataClassificationAttribute . Ini mendefinisikan konstruktor tanpa parameter dan meneruskan kustom DataClassification ke base.
Mengikat pengaturan klasifikasi data
Untuk mengikat pengaturan klasifikasi data Anda, gunakan sistem konfigurasi .NET. Misalnya, dengan asumsi Anda menggunakan penyedia konfigurasi JSON, appsettings.json Anda dapat didefinisikan sebagai berikut:
{
"Key": {
"PhoneNumber": "MyTaxonomy:PrivateInformation",
"ExampleDictionary": {
"CreditCard": "MyTaxonomy:CreditCardNumber",
"SSN": "MyTaxonomy:SocialSecurityNumber"
}
}
}
Sekarang pertimbangkan pendekatan pola opsi berikut, yang mengikat pengaturan konfigurasi ini ke TestOptions dalam objek:
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Compliance.Classification;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Options;
public class TestOptions
{
public DataClassification? PhoneNumber { get; set; }
public IDictionary<string, DataClassification> ExampleDictionary { get; set; } = new Dictionary<string, DataClassification>();
}
class Program
{
static void Main(string[] args)
{
// Build configuration from an external json file.
IConfiguration configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.Build();
// Setup DI container and bind the configuration section "Key" to TestOptions.
IServiceCollection services = new ServiceCollection();
services.Configure<TestOptions>(configuration.GetSection("Key"));
// Build the service provider.
IServiceProvider serviceProvider = services.BuildServiceProvider();
// Get the bound options.
TestOptions options = serviceProvider.GetRequiredService<IOptions<TestOptions>>().Value;
// Simple output demonstrating binding results.
Console.WriteLine("Configuration bound to TestOptions:");
Console.WriteLine($"PhoneNumber: {options.PhoneNumber}");
foreach (var item in options.ExampleDictionary)
{
Console.WriteLine($"{item.Key}: {item.Value}");
}
}
}