Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der Datenklassifizierung können Sie Daten basierend auf ihrer Vertraulichkeits- und Schutzebene kategorisieren (oder klassifizieren). Mit der DataClassification Struktur können Sie vertrauliche Informationen bezeichnen und Richtlinien basierend auf diesen Bezeichnungen erzwingen.
- DataClassification.TaxonomyName: Identifiziert das Klassifizierungssystem.
- DataClassification.Value: Stellt die spezifische Bezeichnung innerhalb der Taxonomie dar.
In einigen Fällen müssen Sie möglicherweise angeben, dass Daten explizit keine Datenklassifizierung aufweisen, dies wird mit DataClassification.Noneerreicht. Ebenso müssen Sie möglicherweise angeben, dass die Datenklassifizierung unbekannt ist – verwenden Sie in diesen Fällen DataClassification.Unknown.
Installiere das Paket
Installieren Sie zunächst das 📦 Microsoft.Extensions.Compliance.Abstractions NuGet-Paket:
dotnet add package Microsoft.Extensions.Compliance.Abstractions
Oder, wenn Sie .NET 10+ SDK verwenden:
dotnet package add Microsoft.Extensions.Compliance.Abstractions
Erstellen benutzerdefinierter Klassifizierungen
Definieren Sie benutzerdefinierte Klassifizierungen, indem Sie static Member für verschiedene Typen vertraulicher Daten erstellen. Dadurch erhalten Sie eine konsistente Möglichkeit zum Bezeichnen und Verarbeiten von Daten in Ihrer App. Betrachten Sie die folgende Beispielklasse:
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);
}
Wenn Sie Ihre benutzerdefinierte Klassifizierungstaxonomie für andere Apps freigeben möchten, sollte diese Klasse und ihre Member anstelle von publicinternal werden. Sie können beispielsweise eine freigegebene Bibliothek mit benutzerdefinierten Klassifizierungen haben, die Sie in mehreren Anwendungen verwenden können.
mit DataClassificationSet können Sie mehrere Datenklassifizierungen in einem einzigen Satz erstellen. Auf diese Weise können Sie Ihre Daten mit mehreren Datenklassifizierungen klassifizieren. Darüber hinaus nutzen die .NET-Bearbeitungs-APIs DataClassificationSet.
Hinweis
Mehrere Datenklassifizierungen, die als DataClassificationSet zusammengefasst werden, werden als eine einzige Klassifizierung behandelt. Sie können sich dies als logische AND Operation vorstellen. Wenn Sie z. B. die Redaction für Daten konfiguriert haben, die als ein DataClassificationSet von PrivateInformation und SocialSecurityNumber klassifiziert wurden, gilt sie nicht für Daten, die nur als PrivateInformation oder nur als SocialSecurityNumber klassifiziert sind.
Erstellen von benutzerdefinierten Klassifizierungsattributen
Erstellen Sie benutzerdefinierte Attribute basierend auf Ihren benutzerdefinierten Klassifizierungen. Verwenden Sie diese Attribute, um Ihre Daten mit der richtigen Klassifizierung zu kennzeichnen. Betrachten Sie die folgende benutzerdefinierte Attributklassendefinition:
public sealed class PrivateInformationAttribute : DataClassificationAttribute
{
public PrivateInformationAttribute()
: base(MyTaxonomyClassifications.PrivateInformation)
{
}
}
Der vorangehende Code deklariert ein attribut für private Informationen, d. h. eine Unterklasse des DataClassificationAttribute Typs. Es definiert einen parameterlosen Konstruktor und übergibt die benutzerdefinierte DataClassification an ihre base.
Binden von Datenklassifizierungseinstellungen
Verwenden Sie das .NET-Konfigurationssystem, um Ihre Datenklassifizierungseinstellungen zu binden. Angenommen, Sie verwenden einen JSON-Konfigurationsanbieter, ihre appsettings.json könnte wie folgt definiert werden:
{
"Key": {
"PhoneNumber": "MyTaxonomy:PrivateInformation",
"ExampleDictionary": {
"CreditCard": "MyTaxonomy:CreditCardNumber",
"SSN": "MyTaxonomy:SocialSecurityNumber"
}
}
}
Betrachten Sie nun den folgenden Musteransatz für Optionen, der diese Konfigurationseinstellungen an das TestOptions-Objekt bindet:
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}");
}
}
}