Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classification des données vous aide à classer (ou classifier) les données en fonction de leur niveau de confidentialité et de protection. La DataClassification structure vous permet d’étiqueter des informations sensibles et d’appliquer des stratégies en fonction de ces étiquettes.
- DataClassification.TaxonomyName: identifie le système de classification.
- DataClassification.Value: représente l’étiquette spécifique dans la taxonomie.
Dans certaines situations, vous devrez peut-être spécifier que les données n’ont pas explicitement de classification des données, ce qui est obtenu avec DataClassification.None. De même, vous devrez peut-être spécifier que la classification des données n’est pas connue : utilisez-la DataClassification.Unknown dans ces cas.
Installer le package
Pour commencer, installez le 📦 package NuGet Microsoft.Extensions.Compliance.Abstractions :
dotnet add package Microsoft.Extensions.Compliance.Abstractions
Ou, si vous utilisez le Kit de développement logiciel (SDK) .NET 10+ :
dotnet package add Microsoft.Extensions.Compliance.Abstractions
Créer des classifications personnalisées
Définissez des classifications personnalisées en créant static des membres pour différents types de données sensibles. Cela vous offre un moyen cohérent d’étiqueter et de gérer les données dans votre application. Prenons l’exemple de classe suivant :
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);
}
Si vous souhaitez partager votre taxonomie de classification personnalisée avec d’autres applications, cette classe et ses membres doivent être public au lieu de internal. Par exemple, vous pouvez avoir une bibliothèque partagée contenant des classifications personnalisées, que vous pouvez utiliser dans plusieurs applications.
DataClassificationSet vous permet de composer plusieurs classifications de données en un seul ensemble. Cela vous permet de classifier vos données avec plusieurs classifications de données. En outre, les API de rédaction .NET utilisent un DataClassificationSet.
Remarque
Plusieurs classifications de données allant ensemble comme DataClassificationSet sont traitées comme une classification unique. Vous pouvez le considérer comme une opération logique AND . Par exemple, si vous avez configuré la rédaction pour les données classifiées en tant qu'un DataClassificationSet de PrivateInformation et SocialSecurityNumber, elle ne s’applique pas aux données classifiées uniquement comme PrivateInformation ou uniquement comme SocialSecurityNumber.
Créer des attributs de classification personnalisés
Créez des attributs personnalisés en fonction de vos classifications personnalisées. Utilisez ces attributs pour étiqueter vos données avec la bonne classification. Considérez la définition de classe d’attribut personnalisée suivante :
public sealed class PrivateInformationAttribute : DataClassificationAttribute
{
public PrivateInformationAttribute()
: base(MyTaxonomyClassifications.PrivateInformation)
{
}
}
Le code précédent déclare un attribut d’informations privées, qui est une sous-classe du DataClassificationAttribute type. Il définit un constructeur sans paramètre et transmet le DataClassification personnalisé à son base.
Lier des paramètres de classification des données
Pour lier vos paramètres de classification des données, utilisez le système de configuration .NET. Par exemple, en supposant que vous utilisez un fournisseur de configuration JSON, votre appsettings.json peut être défini comme suit :
{
"Key": {
"PhoneNumber": "MyTaxonomy:PrivateInformation",
"ExampleDictionary": {
"CreditCard": "MyTaxonomy:CreditCardNumber",
"SSN": "MyTaxonomy:SocialSecurityNumber"
}
}
}
Considérez maintenant l’approche de modèle d’options suivante, qui lie ces paramètres de configuration à l’objet TestOptions :
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}");
}
}
}