Opnieuw publiceren

Dit overzicht richt zich op republiseren in de MIP SDK. Opnieuw publiceren is vereist wanneer een toepassing een gebruiker moet toestaan het bestand te bewerken, maar de oorspronkelijke publicatielicentiegegevens over eigenaar, rechten, inhoudssleutel enzovoort moet behouden.

Het patroon kan er ongeveer als volgt uitzien:

  • Een gebruiker opent een beveiligd document voor bewerking.
  • De gebruiker mag het bestand alleen bewerken als deze over de juiste rechten beschikt.
  • De gebruiker bewerkt het document en slaat het vervolgens op.

De pseudocode van de MIP SDK om deze taak uit te voeren, kan er als volgt uitzien:

  • Maak een mip::FileHandler bestand dat verwijst naar het doelbestand.
  • Sla de mip::ProtectionHandler weergegeven gegevens op door de mip::FileHandlermethode.GetProtection()
  • Controleer of de gebruiker EDIT-rechten heeft door de methode aan te roepen AccessCheck() .
  • Gebruik mip::FileHandler's GetDecryptedTemporaryFileAsync() of GetDecryptedTemporaryStreamAsync() om een tijdelijke ontsleutelde uitvoer op te halen.
  • Bewerk het tijdelijke bestand of de inhoud van de stream en sla het bestand op.
  • Maak een nieuw mip::FileHandler object dat naar het tijdelijke bestand verwijst en gebruik de SetProtection()-methode, waarbij u de opgeslagen mip::ProtectionHandler als parameter opgeeft.
  • Voer de wijziging door.

Met behulp van het mip::ProtectionHandler oorspronkelijke bestand worden de eigenaar, inhouds-id en inhoudssleutel bijgehouden in het bewerkte document. Voor dit scenario voor opnieuw publiceren moet de toepassing een verwijzing naar het origineel mip::ProtectionHandleronderhouden.

Implementatie

Zoals eerder besproken, bevat de mip::FileHandler klasse methoden voor het lezen, schrijven en verwijderen van labels en beveiligingsinformatie. Raadpleeg de referentie voor mip::FileHandler voor de volledige lijst met ondersteunde bewerkingen.

In dit scenario worden de volgende methoden gebruikt:mip::FileHandler

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

In het scenario wordt mip::ProtectionHandlerook gebruikgemaakt van de functies voor het versleutelen en ontsleutelen van beveiligde streams en buffers, het uitvoeren van toegangscontroles, het verkrijgen van de publicatielicentie en het ophalen van kenmerken van de beveiligde informatie. De AccessCheck() methode wordt gebruikt om te valideren dat de gebruiker rechten heeft om het bestand te bewerken.

Als u dit scenario voor opnieuw beveiligen wilt voltooien, bekijkt u de Quickstarts onder 'Volgende stappen' en zorgt u ervoor dat de toepassing wordt opgebouwd en labels succesvol vermeld kunnen worden.

Een beveiligingshandler maken op basis van het bestand en het bestand ontsleutelen

mip::ProtectionHandler maakt de functies beschikbaar voor het versleutelen en ontsleutelen van beveiligde streams en buffers, het uitvoeren van toegangscontroles, het verkrijgen van de publicatielicentie en het ophalen van kenmerken van de beveiligde informatie. mip::ProtectionHandler objecten worden geconstrueerd door een beschermingsdescriptor of een geserialiseerde publicatielicentie op te geven. Voor deze use-case wordt de publicatielicentie gebruikt bij het ontsleutelen van al beveiligde inhoud of bij het beveiligen van inhoud waar de licentie al is samengesteld.

mip::FileHandler stelt een methode genaamd GetProtection() beschikbaar die mip::ProtectionHandler ophaalt uit het bestand dat is gekoppeld aan de mip::FileHandler. Zodra het mip::ProtectionHandler object is opgehaald, kan hetzelfde worden gebruikt om de toegangsniveaus van de gebruiker voor het bestand te valideren, het bestand te ontsleutelen en het bestand later te versleutelen zodra het is bewerkt.

mip::ProtectionHandler's AccessCheck() worden gebruikt om te valideren dat de gebruiker een specifiek recht op het bestand heeft en een Booleaanse reactie retourneert, afhankelijk van het resultaat. Als u bijvoorbeeld wilt controleren of de gebruiker rechten heeft om te bewerken, roept u de methode aan die de waarde BEWERKEN doorgeeft. Als het resultaat waar is, staat u de gebruiker toe het bestand te bewerken. Zodra het EDIT-recht is geverifieerd, gebruikt mip::FileHandleru 's GetDecryptedTemporaryFileAsync() om het tijdelijke ontsleutelde bestand op te halen.

Zie De toegang tot inhoud beperken met behulp van vertrouwelijkheidslabels om versleuteling toe te passen voor meer informatie.

Belangrijk

Toegangscontroles en afdwinging zijn uitsluitend aan de ontwikkelaar van de toepassing. Een gebruiker met VIEW-rechten kan de beveiligde gegevens ontsleutelen. Het is aan de toepassing om te valideren welke set rechten de gebruiker krijgt en om deze rechten af te dwingen via besturingselementen voor gegevensbeveiliging, zoals het voorkomen van kopiƫren, bewerken of schermafbeeldingen maken. Als u geen beveiligingscontroles goed implementeert, kan dit leiden tot blootstelling aan gevoelige informatie.

Het bewerkte bestand opslaan en publiceren door Beveiliging toe te passen

Het bestand kan worden bewerkt nadat het bestand is ontsleuteld. Zodra de bewerking is voltooid, kunnen de wijzigingen worden doorgevoerd. Maak een IFileHandler object met behulp van het tijdelijke bestand voor het verwerken van het vastgelegde bestand. Het tijdelijke bestand kan vervolgens worden beveiligd met behulp van het IProtectionHandler object dat is opgehaald uit het oorspronkelijke bestand.

Offline opnieuw publiceren

Opnieuw publiceren kan offline plaatsvinden wanneer de cache voor publicatielicenties beschikbaar is. Als de toepassing de sjablonen eerder in de cache heeft opgeslagen en licentiegegevens heeft gepubliceerd via offlinepublicatie, is voor de werkstroom voor opnieuw publiceren geen actieve verbinding met de Rights Management-service vereist.

Dit is handig in scenario's waarin:

  • De toepassing moet in onregelmatig verbonden omgevingen functioneren.
  • Grote batchbewerkingen moeten opnieuw worden gepubliceerd zonder serviceoproepen per document.
  • Betere prestaties zijn gewenst door service-aanroepen te voorkomen.

Zorg ervoor dat offlinepublicatie is ingeschakeld en sjablonen in de cache worden opgeslagen voordat u offline opnieuw publiceert. Zie Offline publicatie voor instelgegevens.

Volgende stappen