Dela via


Publicera om (C++)

Översikt

Den här översikten fokuserar på publicering i MIP SDK är ett specifikt scenario som uppstår när ett program måste tillåta en användare att redigera filen, men vill behålla den ursprungliga publiceringslicensinformationen om ägare, rättigheter, innehållsnyckel osv.

Mönstret kan se ut ungefär så här:

  • En användare öppnar ett skyddat dokument för redigering.
  • Användaren får endast tillåtas att redigera filen om de har beviljats lämpliga rättigheter.
  • Användaren redigerar och sparar sedan dokumentet.

MIP SDK-pseudokoden för att utföra den här uppgiften kan se ut så här:

  • Skapa en mip::FileHandler som pekar på målfilen.
  • Lagra den mip::ProtectionHandler som exponeras av mip::FileHandlermetoden 's GetProtection() .
  • Kontrollera att användaren har redigeringsbehörighet genom att anropa AccessCheck() metoden.
  • Använd mip::FileHandler's GetDecryptedTemporaryFileAsync() eller GetDecryptedTemporaryStreamAsync() för att hämta temporära dekrypterade utdata.
  • Redigera temp-filen eller strömma innehållet och spara.
  • Skapa en ny mip::FileHandler instans som pekar på temp-filen och använd SetProtection() metoden och ange den lagrade mip::ProtectionHandler som parameter.
  • Genomför ändringen.

mip::ProtectionHandler Med hjälp av från den ursprungliga filen behålls ägaren, innehålls-ID,innehållsnyckeln osv. i det redigerade dokumentet. Det här ompubliceringsscenariot kräver att programmet har en referens till den ursprungliga mip::ProtectionHandler.

Implementering

Som tidigare mip::FileHandler nämnts exponerar klassen metoder för att läsa, skriva och ta bort både etiketter och skyddsinformation. En fullständig lista över åtgärder som stöds finns i API-referensen.

I det här scenariot används följande metoder:mip::FileHandler

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

Scenariot använder mip::ProtectionHandlerockså , som exponerar funktionerna för kryptering och dekryptering av skyddade strömmar och buffertar, utför åtkomstkontroller, hämtar publiceringslicensen och hämtar attribut från den skyddade informationen. Metoden AccessCheck() används för att verifiera att användaren har behörighet att redigera filen.

Om du vill slutföra det här återaktiveringsscenariot läser du Snabbstarter under Nästa steg och ser till att programmet skapar och kan lista etiketter.

Skapa en skyddshanterare från filen och dekryptera filen

mip::ProtectionHandler exponerar funktionerna för att kryptera och dekryptera skyddade strömmar och buffertar, utföra åtkomstkontroller, hämta publiceringslicensen och hämta attribut från den skyddade informationen. mip::ProtectionHandler objekt skapas genom att antingen tillhandahålla en ProtectionDescriptor eller en serialiserad publiceringslicens. I det här användningsfallet använder vi implicit publiceringslicensen eftersom publiceringslicensen används vid dekryptering av redan skyddat innehåll eller när vi skyddar innehåll där licensen redan har skapats.

mip::FileHandler exponerar en metod med namnet GetProtection() som hämtar mip::ProtectionHandler från filen som är associerad med mip::FileHandler. När objektet mip::ProtectionHandler har hämtats kan samma sak användas för att verifiera användarens åtkomstnivåer för filen, dekryptera filen och senare kryptera filen när den har redigerats.

mip::ProtectionHandler's AccessCheck() används för att verifiera att användaren har en specifik rätt till filen och returnerar ett booleskt svar, beroende på resultatet. Om du till exempel vill kontrollera att användaren har behörighet att redigera anropar du metoden som skickar värdet "EDIT". Om resultatet är sant tillåter du att användaren redigerar filen. När redigeringsbehörigheten har verifierats använder du mip::FileHandler's GetDecryptedTemporaryFileAsync() för att hämta den temporära dekrypterade filen.

Mer information om olika användarrättigheter finns i Användarrättigheter för Azure Information Protection.

Viktigt!

Åtkomstkontroller och tillämpning är enbart upp till programutvecklaren. En användare med VIEW-rättigheter kan dekryptera den skyddade informationen. Det är upp till programmet att verifiera den uppsättning rättigheter som beviljas användaren och framtvinga dessa rättigheter via informationsskyddskontroller, till exempel förhindra kopiering, redigering eller skärmbilder. Om skyddskontrollerna inte implementeras korrekt kan det leda till exponering av känslig information.

Spara och publicera den redigerade filen genom att tillämpa Skydd

När filen har dekrypterats kan filen redigeras. När redigeringsåtgärden har slutförts kan ändringarna checkas in. Skapa ett IFileHandler objekt med hjälp av den tillfälliga filen ovan för att hantera den bekräftade filen. Den temporära filen kan sedan skyddas med hjälp av objektet IProtectionHandler som hämtats från den ursprungliga filen.

Nästa steg