Contrôles d’accès dans le kit de développement logiciel (SDK) Protection des données Microsoft Purview
L’application des droits de gestion des droits relatifs aux informations définis dans le portail de conformité est la responsabilité du développeur d’applications. Le SDK fournit une API et un ensemble d’énumérateurs pour simplifier ces contrôles d’accès.
Les exemples et les tableaux ci-dessous illustrent les scénarios qui nécessitent un contrôle d’accès, la liste des droits à contrôler et la façon d’effectuer le contrôle.
Liste des droits et résultats
Pour obtenir la liste complète des droits d’utilisation et des descriptions, reportez-vous à Configurer les droits d’utilisation pour Azure Information Protection. Cet article définit les responsabilités d’un développeur d’applications dans l’application des droits et les fonctions activées lorsque des droits spécifiques sont présents ou non.
Important
Il est de la responsabilité des développeurs d’applications de contrôler et appliquer les droits. L’échec de l’exécution des contrôles peut entraîner une perte de données.
Scénarios
Où et comment votre application effectue des contrôles d’accès dépend du type d’application que vous générez. Les applications qui gèrent la sortie de fichier complet et qui n’ont aucune interface utilisateur utilisent le plus souvent les droits EXTRACT
ou OWNER
. Les applications avec une interface utilisateur nécessitent des contrôles plus granulaires, bloquant l’accès aux contrôles utilisateur et exportant les chemins d’accès dans l’application. Consultez la section exécuter des contrôles d’accès pour des exemples de code.
Applications sans interface utilisateur
Les applications sans interface utilisateur sont souvent des interfaces basées sur des services ou en ligne de commande (CLI). Lorsque votre application gère les fichiers protégés par la Protection des données Purview, elle doit s’assurer qu’un utilisateur sans les droits appropriés ne peut pas utiliser le service ou la CLI pour exporter le fichier dans un format non protégé.
Ces applications doivent vérifier que les droits OWNER ou EXTRACT sont présents. Les utilisateurs avec les droits OWNER peuvent effectuer n’importe quelle opération. Les utilisateurs avec les droits EXTRACT peuvent supprimer directement la protection ou enregistrer dans un nouveau format, même si ce format ne prend pas en charge la protection.
Applications avec une interface utilisateur
Les applications du kit de développement logiciel (SDK) File avec une interface utilisateur doivent implémenter des contrôles limitant l’accès aux opérations que l’utilisateur n’est pas autorisé à effectuer. L’un de ces exemples d’application est la visionneuse Azure Information Protection. La visionneuse déchiffre temporairement le fichier et affiche le contenu dans la fenêtre d’application. Elle effectue des contrôles d’accès granulaires avant d’afficher le document et désactive les éléments de l’interface utilisateur en fonction des résultats des contrôles d’accès.
Un flux de travail partiel permettant d’effectuer des contrôles d’accès peut ressembler à ceci :
- L’utilisateur dispose-t-il du droit OWNER ? Si c’est le cas, activez tous les contrôles et arrêtez le traitement des autres droits.
- L’utilisateur dispose-t-il du droit PRINT ? Si c’est le cas, activez le contrôle d’impression. Si ce n’est pas le cas, désactivez le contrôle d’impression.
- L’utilisateur dispose-t-il du droit EXPORT ? Si c’est le cas, activez les contrôles et les éléments de l’interface utilisateur d’exportation. Si ce n’est pas le cas, désactivez ces éléments.
- L’utilisateur dispose-t-il du droit EXTRACT ? Si c’est le cas, activez la copie et les captures d’écran. Si ce n’est pas le cas, désactivez ces fonctions.
- L’utilisateur dispose-t-il du droit EDIT ? Si c’est le cas, activez la modification et enregistrez l’élément actif. Si ce n’est pas le cas, faites en sorte que l’élément soit en lecture seule.
Ces contrôles doivent être effectués pour toutes les autorisations dans la table liste des droits et résultats, à l’exception du droit VIEW. Le fichier ne sera pas accessible sans ce droit.
Exécution des contrôles d’accès
Les modèles d’exécution des contrôles d’accès sont similaires dans les SDK File et Protection pour C++, .NET et Java.
Ces exemples de code supposent que vous ayez suivi les étapes d’initialisation du kit de développement logiciel (SDK) et que vous ayez instancié un moteur et un gestionnaire.
- Démarrage rapide : initialisation des applications clientes (C++)
- Démarrage rapide : initialisation des applications clientes (C#)
- Démarrage rapide : initialisation des applications clientes pour les SDK Protection (C++)
- Démarrage rapide : initialisation des applications clientes pour les SDK Protection (C#)
Exécution de vérifications d’accès dans le kit de développement logiciel (SDK) File avec .NET
Cet extrait de code suppose qu’un FileHandler a été créé et pointe vers un fichier valide.
// Validate that the file referred to by the FileHandler is protected.
if(handler.Protection != null)
{
// Validate that user has rights to remove protection from the file.
if(handler.Protection.AccessCheck(Rights.Extract))
{
// If user has Extract right, remove protection and commit the change. Otherwise, throw exception.
handler.RemoveProtection();
bool result = handler.CommitAsync(outputPath).GetAwaiter().GetResult();
return result;
}
else
{
throw new Microsoft.InformationProtection.Exceptions.AccessDeniedException("User lacks EXPORT right.");
}
}
Exécution des contrôles d’accès dans le kit de développement logiciel (SDK) protection avec .NET
Cet extrait de code part du principe qu’un ProtectionHandler a été créé pour la consommation.
// Validate that the file referred to by the FileHandler is protected.
if(protectionHandler != null)
{
// Validate that user has rights to remove protection from the file.
if(protectionHandler.AccessCheck(Rights.Print))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Exécution de vérifications d’accès dans le kit de développement logiciel (SDK) File avec C++
Cet extrait de code suppose qu’un FileHandler a été créé et pointe vers un fichier valide.
// Validate that the file referred to by the FileHandler is protected.
if (fileHandler->GetProtection() != nullptr)
{
if (fileHandler->GetProtection()->AccessCheck(mip::rights::Extract()))
{
auto commitPromise = std::make_shared<std::promise<bool>>();
auto commitFuture = commitPromise->get_future();
fileHandler->RemoveProtection();
fileHandler->CommitAsync(outputFile, commitPromise);
result = commitFuture.get();
}
else
{
throw std::runtime_error("User doesn't have EXTRACT right.");
}
}
Exécution des contrôles d’accès dans le kit de développement logiciel (SDK) protection avec C++
Cet extrait de code part du principe qu’un ProtectionHandler a été créé pour la consommation.
// Validate that the file referred to by the FileHandler is protected.
if (protectionHandler != nullptr)
{
if (protectionHandler->AccessCheck(mip::rights::Print()))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Étapes suivantes
Maintenant que vous avez une idée de la façon d’effectuer correctement des contrôles d’accès et d’appliquer les droits associés à ces contrôles, poursuivez avec les concepts du gestionnaire de fichiers pour en savoir plus sur la suppression de la protection des fichiers.