Condividi tramite


Ripubblicazione (C++)

Panoramica

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 vuole mantenere le informazioni di licenza di pubblicazione originali sul proprietario, i diritti, la chiave simmetrica e così via.

Il modello può essere simile al seguente:

  • Un utente apre un documento protetto per la modifica.
  • L'utente deve essere autorizzato a modificare il file solo se ha ottenuto i diritti appropriati.
  • L'utente modifica e quindi salva il documento.

Lo pseudocodice di MIP SDK per eseguire questa attività può essere simile al seguente:

  • Creare un oggetto mip::FileHandler che punta al file di destinazione.
  • Archiviare l'oggetto mip::ProtectionHandler esposto dal mip::FileHandlermetodo del GetProtection() .
  • Verificare che l'utente disponga dei diritti EDIT chiamando AccessCheck() il metodo .
  • Usare mip::FileHandlero GetDecryptedTemporaryFileAsync()GetDecryptedTemporaryStreamAsync() per ottenere un output decrittografato temporaneo.
  • Modificare il contenuto del file temporaneo o del flusso e salvarlo.
  • Creare una nuova mip::FileHandler istanza che punta al file temporaneo e usare il SetProtection() metodo , specificando l'oggetto archiviato mip::ProtectionHandler come parametro .
  • Eseguire il commit della modifica.

Utilizzando dal mip::ProtectionHandler file originale, il proprietario, l'ID contenuto, la chiave simmetrica e così via, verranno mantenuti nel documento modificato. Questo scenario di ripubblicazione richiede che l'applicazione mantenga un riferimento all'oggetto originale mip::ProtectionHandler.

Implementazione

Come illustrato in precedenza, la mip::FileHandler classe espone metodi per la lettura, la scrittura e la rimozione di etichette e informazioni di protezione. Per l'elenco completo delle operazioni supportate, vedere le informazioni di riferimento per mip::FileHandler.

Questo scenario usa i metodi seguenti di mip::FileHandler:

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

Lo scenario usa mip::ProtectionHandleranche , che espone le funzioni per crittografare e decrittografare flussi e buffer protetti, eseguire controlli di accesso, ottenere la licenza di pubblicazione e ottenere attributi dalle informazioni protette. Il AccessCheck() metodo verrà utilizzato per verificare che l'utente disponga dei diritti per modificare il file.

Per completare correttamente questo scenario di riprotezione, esaminare le guide introduttive in "Passaggi successivi" e assicurarsi che l'applicazione venga compilata e possa elencare correttamente le etichette.

Creare un gestore protezione dal file e decrittografare il file

mip::ProtectionHandler espone le funzioni per crittografare e decrittografare flussi e buffer protetti, eseguire controlli di accesso, ottenere la licenza di pubblicazione e ottenere attributi dalle informazioni protette. mip::ProtectionHandler gli oggetti vengono costruiti fornendo un ProtectionDescriptor o una licenza di pubblicazione serializzata. Per questo caso d'uso, si userebbe in modo implicito la licenza di pubblicazione come licenza di pubblicazione quando si decrittografa il contenuto già protetto o quando si protegge il contenuto in cui è già stata costruita la licenza.

mip::FileHandler espone un metodo denominato GetProtection() che recupera mip::ProtectionHandler dal file associato all'oggetto mip::FileHandler. Una volta recuperato l'oggetto mip::ProtectionHandler , è possibile usare per convalidare i livelli di accesso dell'utente per il file, decrittografare il file e successivamente crittografare il file dopo averlo modificato.

mip::ProtectionHandler's AccessCheck() viene usato per verificare che l'utente abbia un diritto specifico al file e restituisce una risposta booleana, a seconda del risultato. Ad esempio, per verificare che l'utente disponga dei diritti di modifica, chiamare il metodo passando il valore "EDIT". Se il risultato è true, consentire all'utente di modificare il file. Dopo aver verificato il diritto EDIT , usare mip::FileHandler's GetDecryptedTemporaryFileAsync() per recuperare il file decrittografato temporaneo.

Per altre informazioni sui vari diritti utente, vedere Diritti utente per Azure Information Protection.

Importante

I controlli di accesso e l'imposizione sono esclusivamente per lo sviluppatore dell'applicazione. Un utente con diritti VIEW è in grado di decrittografare le informazioni protette. Spetta all'applicazione convalidare il set di diritti concessi all'utente e applicare tali diritti tramite controlli di protezione delle informazioni, ad esempio impedire la copia, la modifica o l'acquisizione di screenshot. Se non si implementano correttamente i controlli di protezione, potrebbe verificarsi un'esposizione di informazioni riservate.

Salvare e pubblicare il file modificato applicando protezione

Dopo la decrittografia del file, è possibile modificare il file. Al termine dell'operazione di modifica, è possibile eseguire il commit delle modifiche. Creare un IFileHandler oggetto usando il file temporaneo precedente per la gestione del file di cui è stato eseguito il commit. Il file temporaneo può quindi essere protetto usando l'oggetto IProtectionHandler recuperato dal file originale.

Passaggi successivi