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.
Cette vue d’ensemble se concentre sur Republishing dans le SDK MIP. La republication est requise lorsqu'une application doit permettre à un utilisateur de modifier le fichier, mais doit garder les informations originales de licence de publication concernant le propriétaire, les droits, la clé de contenu, etc.
Le modèle peut ressembler à ceci :
- Un utilisateur ouvre un document protégé pour modification.
- L’utilisateur doit uniquement être autorisé à modifier le fichier s’il dispose des droits appropriés.
- L’utilisateur modifie puis enregistre le document.
Le pseudocode du SDK MIP pour accomplir cette tâche peut ressembler à ceci :
- Créez un
mip::FileHandlerqui pointe vers le fichier cible. - Stockez le
mip::ProtectionHandlerexposé par lemip::FileHandlervia sa méthodeGetProtection(). - Vérifiez que l’utilisateur dispose de droits EDIT en appelant la méthode
AccessCheck(). - Utilisez
mip::FileHandleravec ses méthodesGetDecryptedTemporaryFileAsync()ouGetDecryptedTemporaryStreamAsync()pour obtenir un fichier ou un flux temporaire déchiffré. - Modifiez le contenu du fichier temporaire ou du flux et enregistrez-le.
- Créez une nouvelle instance de
mip::FileHandlerpointant vers le fichier temporaire et utilisez la méthodeSetProtection(), en fournissant lemip::ProtectionHandlerstocké en tant que paramètre. - Validez la modification.
À l’aide mip::ProtectionHandler du fichier d’origine, le propriétaire, l’ID de contenu et la clé de contenu sont conservés sur le document modifié. Ce scénario de republication nécessite que l’application conserve une référence à au mip::ProtectionHandler original.
Implémentation
Comme indiqué précédemment, la classe mip::FileHandler expose les méthodes de lecture, écriture et suppression des étiquettes et des informations de protection. Pour obtenir la liste complète des opérations prises en charge, passez en revue la référence de mip ::FileHandler.
Ce scénario utilise les méthodes suivantes de mip::FileHandler :
GetProtection()CommitAsync()GetDecryptedTemporaryFileAsync()SetProtection()
Le scénario utilise également mip::ProtectionHandler qui expose les fonctions de chiffrement et de déchiffrement des flux protégés et des mémoires tampons, en effectuant des vérifications d’accès , en obtenant la licence de publication ainsi que des attributs à partir des informations protégées. La méthode AccessCheck() sera utilisée pour vérifier que l’utilisateur dispose des droits nécessaires pour modifier le fichier.
Pour terminer correctement ce scénario de reprotection, consultez Démarrage rapide sous « Étapes suivantes » et vérifiez que l’application se compile et peut répertorier correctement les étiquettes.
Créer un gestionnaire de protection à partir du fichier et déchiffrer le fichier
mip::ProtectionHandler expose les fonctions de chiffrement et de déchiffrement des flux protégés et des mémoires tampons, en effectuant des vérifications d’accès , en obtenant la licence de publication ainsi que des attributs à partir des informations protégées. Les objets mip::ProtectionHandler sont construits en fournissant un ProtectionDescriptor ou une licence de publication sérialisée. Pour ce cas d’usage, la licence de publication est utilisée lors du déchiffrement du contenu déjà protégé ou lors de la protection du contenu où la licence a déjà été construite.
mip::FileHandler expose une méthode nommée GetProtection() qui extrait mip::ProtectionHandler du fichier associé au mip::FileHandlerfichier . Une fois que l’objet mip::ProtectionHandler est récupéré, vous pouvez l’utiliser pour valider les niveaux d’accès de l’utilisateur pour le fichier, déchiffrer le fichier et le chiffrer ultérieurement une fois qu’il est modifié.
La fonction mip::ProtectionHandler de AccessCheck() utilisée pour vérifier que l’utilisateur a un droit spécifique sur le fichier et retourne une réponse booléenne, en fonction du résultat. Par exemple, pour vérifier que l’utilisateur a les droits de modification, appelez la méthode en passant la valeur EDIT. Si le résultat est vrai, autorisez l’utilisateur à modifier le fichier. Une fois le droit EDIT vérifié, utilisez mip::FileHandler avec sa méthode GetDecryptedTemporaryFileAsync() pour récupérer le fichier temporaire déchiffré.
Pour plus d’informations, consultez Restreindre l’accès au contenu à l’aide d’étiquettes de confidentialité pour appliquer le chiffrement.
Importante
Les contrôles d'accès et leur mise en œuvre dépendent exclusivement du développeur de l'application. Un utilisateur disposant de droits VIEW est capable de déchiffrer les informations protégées. Il incombe à l’application de valider l’ensemble des droits accordés par l’utilisateur et d’appliquer ces droits via des contrôles de protection des informations, tels que la prévention de la copie, la modification ou la prise de captures d’écran. L’échec de l’implémentation correcte des contrôles de protection peut entraîner une exposition d’informations sensibles.
Enregistrer et publier le fichier modifié en appliquant Protection
Le fichier peut être modifié une fois le fichier déchiffré. Une fois que l’opération de modification est terminée, les modifications peuvent être commitées. Créez un objet IFileHandler en utilisant le fichier temporaire pour gérer le fichier validé. Le fichier temporaire peut ensuite être protégé à l’aide de l’objet IProtectionHandler récupéré à partir du fichier d’origine.