Ripubblicazione (C++)Republishing (C++)

PanoramicaOverview

Questa panoramica è incentrata sulla ripubblicazione in MIP SDK è uno scenario specifico rilevato quando un'applicazione deve consentire a un utente di modificare il file, ma desidera mantenere le informazioni di licenza di pubblicazione originali su proprietario, diritti, chiave simmetrica e così via.This overview focuses on Republishing in MIP SDK is a specific scenario encountered when an application must allow a user to edit the file, but wants to maintain the original publishing license information about owner, rights, content key, etc.

Il modello può avere un aspetto simile al seguente:The pattern may look something like:

  • Un utente apre un documento protetto per la modifica.A user opens a protected document for editing.
  • L'utente deve essere autorizzato a modificare il file solo se gli è stato concesso il diritto appropriato.The user must only be permitted to edit the file if they've been granted the appropriate rights.
  • L'utente modifica e quindi Salva il documento.The user edits and then saves the document.

Lo pseudocodice SDK MIP per completare questa attività può avere un aspetto simile al seguente:The MIP SDK pseudocode to accomplish this task may look like:

  • Creare un oggetto mip::FileHandler che punti al file di destinazione.Create an mip::FileHandler that points to the target file.
  • Archiviare l'oggetto mip::ProtectionHandler esposto dal mip::FileHandler GetProtection() metodo di.Store the mip::ProtectionHandler exposed by the mip::FileHandler's GetProtection() method.
  • Verificare che l'utente disponga dei diritti di modifica chiamando il AccessCheck() metodo.Check that the user has EDIT rights by calling AccessCheck() method.
  • Usare mip::FileHandler GetDecryptedTemporaryFileAsync() o GetDecryptedTemporaryStreamAsync() per ottenere un output decrittografato temporaneo.Use mip::FileHandler's GetDecryptedTemporaryFileAsync() or GetDecryptedTemporaryStreamAsync() to get a temporary decrypted output.
  • Modificare il contenuto del flusso o del file temporaneo e salvarlo.Edit the temp file or stream contents and save.
  • Creare una nuova mip::FileHandler istanza di che punta al file temporaneo e usare il SetProtection() metodo, specificando l'oggetto archiviato mip::ProtectionHandler come parametro.Create a new mip::FileHandler instance pointing to the temp file and use the SetProtection() method, providing the stored mip::ProtectionHandler as the parameter.
  • Eseguire il commit della modifica.Commit the change.

Utilizzando il mip::ProtectionHandler dal file originale, il proprietario, l'ID contenuto, la chiave simmetrica e così via verranno mantenuti nel documento modificato.Using the mip::ProtectionHandler from the original file, the owner, content ID, content key, etc. will be maintained on the edited document. Questo scenario di ripubblicazione richiede che l'applicazione mantenga un riferimento all'originale mip::ProtectionHandler .This republishing scenario requires that the application maintains a reference to the original mip::ProtectionHandler.

ImplementazioneImplementation

Come illustrato in precedenza, la mip::FileHandler classe espone metodi per la lettura, la scrittura e la rimozione di etichette e informazioni di protezione.As discussed earlier, the mip::FileHandler class, exposes methods for reading, writing, and removing both labels and protection information. Per l'elenco completo delle operazioni supportate, vedere le informazioni di riferimento sulle API.For the full list of supported operations, review the API reference.

In questo scenario vengono utilizzati i metodi seguenti mip::FileHandler :This scenario uses the following methods of mip::FileHandler:

  • GetProtection()
  • CommitAsync()
  • GetDecryptedTemporaryFileAsync()
  • SetProtection()

Lo scenario usa inoltre mip::ProtectionHandler , che espone le funzioni per la crittografia e la decrittografia di flussi e buffer protetti, l'esecuzione di controlli di accesso, la concessione della licenza di pubblicazione e il recupero degli attributi dalle informazioni protette.The scenario also uses mip::ProtectionHandler, which exposes the functions for encrypting and decrypting protected streams and buffers, performing access checks, obtaining the publishing license, and getting attributes from the protected information. Il AccessCheck() metodo verrà usato per verificare che l'utente disponga dei diritti necessari per la modifica del file.The AccessCheck() method will be used to validate that the user has rights to edit the file.

Per completare correttamente questo scenario di riprotezione, rivedere le guide introduttive in ' passaggi successivi ' e assicurarsi che l'applicazione venga compilata e possa elencare correttamente le etichette.To successfully complete this reprotection scenario, review the Quick starts under 'Next steps' and ensure that the application builds and can successfully list labels.

Creare un gestore protezione dal file e decrittografare il fileCreate a Protection Handler from the file and decrypt the file

mip::ProtectionHandler espone le funzioni per la crittografia e la decrittografia di flussi e buffer protetti, l'esecuzione di controlli di accesso, la concessione della licenza di pubblicazione e il recupero degli attributi dalle informazioni protette.mip::ProtectionHandler exposes the functions for encrypting and decrypting protected streams and buffers, performing access checks, obtaining the publishing license, and getting attributes from the protected information. mip::ProtectionHandler gli oggetti vengono costruiti fornendo una licenza di pubblicazione ProtectionDescriptor o serializzata.mip::ProtectionHandler objects are constructed by providing either a ProtectionDescriptor or a serialized publishing license. Per questo caso d'uso, la licenza di pubblicazione verrà usata in modo implicito quando si esegue la decrittografia di contenuto già protetto o quando si protegge il contenuto in cui è già stata costruita la licenza.For this use case, we would be implicitly using the publishing license as publishing license is used when decrypting already-protected content or when protecting content where the license has already been constructed.

mip::FileHandler espone un metodo denominato GetProtection() che recupera mip::ProtectionHandler dal file associato a mip::FileHandler .mip::FileHandler exposes a method named GetProtection() which retrieves mip::ProtectionHandler from the file associated with the mip::FileHandler. Una volta mip::ProtectionHandler recuperato, l'oggetto può essere usato per convalidare i livelli di accesso dell'utente per il file, decrittografare il file e crittografare successivamente il file dopo che è stato modificato.Once the mip::ProtectionHandler object is retrieved the same can be used to validate user's access levels for the file, decrypt the file and later encrypt the file once it is edited.

mip::ProtectionHandler``AccessCheck()viene usato per verificare che l'utente disponga di un diritto specifico per il file e restituisce una risposta booleana, a seconda del risultato.mip::ProtectionHandler's AccessCheck() is used to validate that the user has a specific right to the file and returns a boolean response, depending on the result. Per verificare, ad esempio, che l'utente disponga dei diritti per la modifica, chiamare il metodo passando il valore "EDIT".For example, to verify that the user has rights to edit, call the method passing in the value "EDIT". Se il risultato è true, consentire all'utente di modificare il file.If the result is true, permit the user to edit the file. Una volta verificato il diritto di modifica , mip::FileHandler utilizzare GetDecryptedTemporaryFileAsync() per recuperare il file temporaneo decrittografato.Once the EDIT right is verified, use mip::FileHandler's GetDecryptedTemporaryFileAsync() to retrieve the temporary decrypted file.

Per ulteriori informazioni sui diversi diritti utente, consultare i diritti utente per Azure Information Protection.For further details on various user rights, consult User rights for Azure Information Protection.

Importante

I controlli di accesso e l'imposizione sono esclusivamente allo sviluppatore di applicazioni.Access checks and enforcement are purely up to the application developer. Un utente con diritti di visualizzazione è in grado di decrittografare le informazioni protette.A user with VIEW rights is capable of decrypting the protected information. Spetta all'applicazione convalidare il set di diritti concessi all'utente e applicare tali diritti tramite controlli di protezione delle informazioni, ad esempio impedendo la copia, la modifica o l'acquisizione di schermate.It's up to the application to validate the set of rights granted to the user and to enforce those rights via information protection controls such as preventing copy, editing, or taking screenshots. L'impossibilità di implementare correttamente i controlli di protezione può comportare l'esposizione di informazioni riservate.Failure to properly implement protection controls may result in sensitive information exposure.

Salvare e pubblicare il file modificato applicando la protezioneSave and publish the edited file by applying Protection

Dopo la decrittografia del file, il file può essere modificato.After the file is decrypted the file can be edited. Al termine dell'operazione di modifica, è possibile eseguire il commit delle modifiche.Once the edit operation is completed, the changes can be committed. Creare un IFileHandler oggetto utilizzando il file temporaneo sopra riportato per gestire il file di cui è stato eseguito il commit.Create a IFileHandler object using the temporary file above for handling the committed file. Il file temporaneo può quindi essere protetto utilizzando l' IProtectionHandler oggetto recuperato dal file originale.The temporary file can then be protected using the IProtectionHandler object retrieved from the original file.

Passaggi successiviNext Steps