Freigeben über


Republishing (C++)

Überblick

Dieser Überblick konzentriert sich auf das Republishing in MIP SDK ist ein spezifisches Szenario, das auftritt, wenn eine Anwendung einem Benutzer die Bearbeitung einer Datei erlauben muss, aber die ursprünglichen Veröffentlichungslizenz-Informationen über Eigentümer, Rechte, Inhaltsschlüssel usw. beibehalten will.

Das Muster könnte etwa so aussehen:

  • Ein Benutzer öffnet ein geschütztes Dokument zur Bearbeitung.
  • Der Benutzer darf die Datei nur bearbeiten, wenn er die entsprechenden Rechte besitzt.
  • Der Benutzer bearbeitet das Dokument und speichert es anschließend.

Der Pseudocode des MIP SDK zur Erfüllung dieser Aufgabe könnte wie folgt aussehen:

  • Erstellen Sie einen mip::FileHandler, der auf die Zieldatei zeigt.
  • Speichern Sie die mip::ProtectionHandler, die von der GetProtection()-Methode von mip::FileHandler ausgesetzt sind.
  • Prüfen Sie, ob der Benutzer Bearbeitungsrechte hat, indem Sie die Methode AccessCheck() aufrufen.
  • Verwenden Sie mip::FileHandlers GetDecryptedTemporaryFileAsync() oder GetDecryptedTemporaryStreamAsync(), um eine vorläufige entschlüsselte Ausgabe zu erhalten.
  • Bearbeiten Sie die temporäre Datei oder den Streaminhalt, und speichern Sie sie.
  • Erstellen Sie eine neue mip::FileHandler-Instanz, die auf die temporäre Datei zeigt, und verwenden Sie die SetProtection()-Methode, wobei Sie die gespeicherten mip::ProtectionHandler als Parameter angeben.
  • Führe für die Änderung einen Commit aus.

Unter Verwendung der mip::ProtectionHandler aus der Originaldatei werden der Eigentümer, die Inhalts-ID, der Inhaltsschlüssel usw. im bearbeiteten Dokument beibehalten. Für dieses Szenario der Neuveröffentlichung muss die Anwendung einen Verweis auf das Original mip::ProtectionHandler beibehalten.

Implementierung

Wie bereits erwähnt, verfügt die Klasse mip::FileHandler über Methoden zum Lesen, Schreiben und Entfernen von Etiketten und Schutzinformationen. Die vollständige Liste der unterstützten Vorgänge ist in der API-Referenz zu finden.

Dieses Szenario verwendet die folgenden Methoden von mip::FileHandler:

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

Das Szenario nutzt auch mip::ProtectionHandler, was die Funktionen zum Ver- und Entschlüsseln geschützter Streams und Puffer, zur Durchführung von Zugriffsprüfungen, zum Abrufen der Veröffentlichungslizenz und zum Abrufen von Attributen aus den geschützten Informationen zur Verfügung stellt. Die Methode AccessCheck() wird verwendet, um zu überprüfen, ob der Benutzer das Recht hat, die Datei zu bearbeiten.

Um dieses Reprotection-Szenario erfolgreich abzuschließen, überprüfen Sie die Schnellstarts unter "Nächste Schritte" und stellen Sie sicher, dass die Anwendung erstellt wird und erfolgreich Etiketten auflisten kann.

Erstellen eines Protection Handlers aus der Datei und Entschlüsseln der Datei

mip::ProtectionHandler stellt die Funktionen zum Ver- und Entschlüsseln geschützter Streams und Puffer, zur Durchführung von Zugriffsprüfungen, zum Abrufen der Veröffentlichungslizenz und zum Abrufen von Attributen aus den geschützten Informationen zur Verfügung. mip::ProtectionHandler Objekte werden erstellt, indem entweder ein ProtectionDescriptor oder eine serialisierte Veröffentlichungslizenz bereitgestellt wird. Für diesen Anwendungsfall würden wir implizit die Veröffentlichungslizenz verwenden, da die Veröffentlichungslizenz bei der Entschlüsselung bereits geschützter Inhalte oder beim Schutz von Inhalten, für die die Lizenz bereits erstellt wurde, verwendet wird.

mip::FileHandler stellt eine Methode namens GetProtection() zur Verfügung, die mip::ProtectionHandler aus der mit mip::FileHandler verbundenen Datei abruft. Sobald das mip::ProtectionHandler-Objekt abgerufen ist, kann es dazu verwendet werden, die Zugriffsrechte des Benutzers für die Datei zu überprüfen, die Datei zu entschlüsseln und sie später zu verschlüsseln, sobald sie bearbeitet wird.

mip::ProtectionHandlers AccessCheck() wird verwendet, um zu überprüfen, ob der Benutzer ein bestimmtes Recht auf die Datei hat und gibt je nach Ergebnis eine boolesche Antwort zurück. Um z. B. zu überprüfen, ob der Benutzer Bearbeitungsrechte hat, rufen Sie die Methode mit dem Wert "EDIT" auf. Wenn das Ergebnis wahr ist, erlauben Sie dem Benutzer, die Datei zu bearbeiten. Sobald das Recht EDIT verifiziert ist, verwenden Sie mip::FileHandler's GetDecryptedTemporaryFileAsync(), um die vorübergehend entschlüsselte Datei abzurufen.

Weitere Einzelheiten zu den verschiedenen Benutzerrechten finden Sie unter Benutzerrechte für Azure Information Protection.

Wichtig

Zugangskontrollen und deren Erzwingung sind allein Sache des Anwendungsentwicklers. Ein Benutzer mit VIEW-Rechten kann die geschützten Informationen entschlüsseln. Es ist Aufgabe der Anwendung, die dem Benutzer gewährten Rechte zu überprüfen und diese Rechte durch Informationsschutzkontrollen durchzusetzen, z. B. durch das Verhindern von Kopieren, Bearbeiten oder Erstellen von Screenshots. Werden die Schutzmaßnahmen nicht ordnungsgemäß durchgeführt, kann dies zur Preisgabe sensibler Informationen führen.

Speichern und veröffentlichen Sie die bearbeitete Datei durch Anwendung von Protection

Nachdem die Datei entschlüsselt wurde, kann sie bearbeitet werden. Sobald der Bearbeitungsvorgang abgeschlossen ist, können die Änderungen bestätigt werden. Erstellen Sie ein IFileHandler-Objekt, das die obige temporäre Datei für die Bearbeitung der übergebenen Datei verwendet. Die temporäre Datei kann dann mit dem IProtectionHandler-Objekt geschützt werden, das aus der ursprünglichen Datei abgerufen wurde.

Nächste Schritte