Partager via


Vérifications d’accès dans le Kit de développement logiciel (SDK) Microsoft Purview Information Protection

L’application des droits de gestion des droits relatifs aux informations définies dans le portail de conformité est la responsabilité du développeur d’applications. Le Kit de développement logiciel (SDK) fournit une API et un ensemble d’énumérateurs pour simplifier ces vérifications d’accès.

Les exemples et les tableaux ci-dessous illustrent quels scénarios nécessitent une vérification d’accès, la liste des droits à vérifier et comment effectuer la vérification.

Liste des droits et résultats

Pour obtenir la liste complète des droits d’utilisation et des descriptions, consultez Configurer les droits d’utilisation pour Microsoft Purview 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 incombe aux développeurs d’applications de vérifier et d’appliquer les droits. L’échec de l’exécution des vérifications peut entraîner une perte de données.

Scénarios

Où et comment votre application effectue des vérifications 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 n’utilise le ou OWNER les droits les EXTRACT plus fréquemment. 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 des vérifications d’accès pour obtenir des exemples de code.

Applications sans interface utilisateur

Les applications sans interface utilisateur sont souvent des interfaces basées sur le service ou de ligne de commande (CLI). Lorsque votre application gère les fichiers protégés par Purview Information Protection, elle doit s’assurer qu’un utilisateur sans les droits appropriés ne peut pas utiliser le service ou l’interface 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 OWNER peuvent effectuer n’importe quelle opération. Les utilisateurs avec 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) de fichiers 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. Un exemple de telle application est microsoft Purview Information Protection Viewer. La visionneuse déchiffre temporairement le fichier et affiche le contenu dans la fenêtre de l’application. Il effectue des vérifications d’accès granulaires avant d’afficher le document et désactive les éléments d’interface utilisateur en fonction des résultats des vérifications d’accès.

Un flux de travail partiel d’exécution des vérifications d’accès peut ressembler à ceci :

  • L’utilisateur dispose-t-il du propriétaire ? Si c’est le cas, activez tous les contrôles et arrêtez le traitement d’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 a-t-il le droit d’exporter ? Si c’est le cas, activez les contrôles d’exportation et les éléments d’interface utilisateur. Si ce n’est pas le cas, désactivez ces éléments.
  • L’utilisateur a-t-il le droit d’extraire ? 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 a-t-il le droit DE MODIFIER ? 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 lu uniquement.

Ces vérifications doivent être effectuées pour toutes les autorisations de la table des droits et des résultats , à l’exception du droit VIEW . Le fichier ne sera pas accessible sans ce droit.

Exécution de vérifications d’accès

Les modèles d’exécution de la vérification d’accès sont similaires dans le Kit de développement logiciel (SDK) File and Protection pour C++, .NET et Java.

Ces exemples de code supposent que vous avez suivi les étapes d’initialisation du Kit de développement logiciel (SDK) et que vous avez instancié un moteur et un gestionnaire.

Exécution de vérifications d’accès dans le Kit de développement logiciel (SDK) de fichier avec .NET

Ce code snip 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 de vérifications d’accès dans le Kit de développement logiciel (SDK) protection avec .NET

Ce code snip part du principe qu’un Gestionnaire de protection 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) de fichier avec C++

Ce code snip 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 de vérifications d’accès dans le Kit de développement logiciel (SDK) Protection avec C++

Ce code snip part du principe qu’un Gestionnaire de protection 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 vérifications d’accès et d’appliquer les droits associés à ces vérifications, poursuivez avec les concepts du gestionnaire de fichiers pour en savoir plus sur la suppression de la protection des fichiers.