Udostępnij za pośrednictwem


Ponowne publikowanie (C++)

Omówienie

To omówienie koncentruje się na ponownej publikacji w zestawie MIP SDK jest konkretnym scenariuszem napotkanym, gdy aplikacja musi zezwolić użytkownikowi na edycję pliku, ale chce zachować oryginalne informacje o licencji publikowania na temat właściciela, praw, klucza zawartości itp.

Wzorzec może wyglądać mniej więcej tak:

  • Użytkownik otwiera chroniony dokument do edycji.
  • Użytkownik musi mieć uprawnienia do edytowania pliku tylko wtedy, gdy przyznano mu odpowiednie prawa.
  • Użytkownik edytuje, a następnie zapisuje dokument.

Pseudokod zestawu MIP SDK do wykonania tego zadania może wyglądać następująco:

  • Utwórz obiekt mip::FileHandler wskazujący plik docelowy.
  • mip::ProtectionHandler Przechowuj uwidocznione przez metodę mip::FileHandler.sGetProtection().
  • Sprawdź, czy użytkownik ma uprawnienia EDIT , wywołując AccessCheck() metodę .
  • Użyj mip::FileHandlerwartości "s GetDecryptedTemporaryFileAsync() " lub GetDecryptedTemporaryStreamAsync() , aby uzyskać tymczasowe dane wyjściowe odszyfrowane.
  • Edytuj plik tymczasowy lub zawartość strumienia i zapisz.
  • Utwórz nowe mip::FileHandler wystąpienie wskazujące plik tymczasowy i użyj SetProtection() metody , podając parametr przechowywany mip::ProtectionHandler jako parametr.
  • Zatwierdź zmianę.

mip::ProtectionHandler Za pomocą pliku oryginalnego właściciel, identyfikator zawartości, klucz zawartości itp. zostanie zachowany w edytowanym dokumencie. Ten scenariusz ponownego publikowania wymaga, aby aplikacja utrzymywała odwołanie do oryginalnego .mip::ProtectionHandler

Implementacja

Jak wspomniano wcześniej, mip::FileHandler klasa uwidacznia metody odczytywania, zapisywania i usuwania zarówno etykiet, jak i informacji o ochronie. Aby uzyskać pełną listę obsługiwanych operacji, zapoznaj się z dokumentacją programu mip::FileHandler.

W tym scenariuszu są używane następujące metody:mip::FileHandler

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

W scenariuszu jest również używany mip::ProtectionHandlerprogram , który uwidacznia funkcje szyfrowania i odszyfrowywania chronionych strumieni i, przeprowadzania kontroli dostępu, uzyskiwania licencji publikowania i pobierania atrybutów z chronionych informacji. Metoda AccessCheck() będzie używana do sprawdzania, czy użytkownik ma uprawnienia do edytowania pliku.

Aby pomyślnie ukończyć ten scenariusz ponownego włączania ochrony, zapoznaj się z przewodnikami Szybki start w obszarze "Następne kroki" i upewnij się, że aplikacja kompiluje i może pomyślnie wyświetlić listę etykiet.

Tworzenie programu obsługi ochrony na podstawie pliku i odszyfrowywanie pliku

mip::ProtectionHandler Uwidacznia funkcje szyfrowania i odszyfrowywania chronionych strumieni i, przeprowadzania kontroli dostępu, uzyskiwania licencji publikowania i pobierania atrybutów z chronionych informacji. mip::ProtectionHandler obiekty są konstruowane przez podanie klasy ProtectionDescriptor lub licencji publikowania serializowanego. W tym przypadku użycia niejawnie używalibyśmy licencji publikowania jako licencji publikowania podczas odszyfrowywania już chronionej zawartości lub ochrony zawartości, w której została już skonstruowana licencja.

mip::FileHandler Uwidacznia metodę o nazwie GetProtection() , która pobiera mip::ProtectionHandler z pliku skojarzonego z elementem mip::FileHandler. Po pobraniu mip::ProtectionHandler obiektu można użyć go do sprawdzania poprawności poziomów dostępu użytkownika dla pliku, odszyfrowywania pliku i późniejszego szyfrowania pliku po jego edycji.

mip::ProtectionHandlerAccessCheck() Element jest używany do sprawdzania, czy użytkownik ma określone prawo do pliku i zwraca odpowiedź logiczną w zależności od wyniku. Aby na przykład sprawdzić, czy użytkownik ma uprawnienia do edycji, wywołaj metodę przekazującą wartość "EDIT". Jeśli wynik ma wartość true, zezwól użytkownikowi na edycję pliku. Po zweryfikowaniu prawa EDIT użyj mip::FileHandlerpolecenia "s GetDecryptedTemporaryFileAsync() " w celu pobrania tymczasowego odszyfrowanego pliku.

Aby uzyskać więcej informacji na temat różnych praw użytkownika, zapoznaj się z tematem Prawa użytkownika dla usługi Azure Information Protection.

Ważne

Kontrole dostępu i wymuszanie są wyłącznie do dewelopera aplikacji. Użytkownik z uprawnieniami VIEW może odszyfrować chronione informacje. Aplikacja musi zweryfikować zestaw praw udzielonych użytkownikowi i wymusić te prawa za pośrednictwem mechanizmów kontroli ochrony informacji, takich jak zapobieganie kopiowaniu, edytowaniu lub robieniu zrzutów ekranu. Nieprawidłowe wdrożenie mechanizmów kontroli ochrony może spowodować ujawnienie poufnych informacji.

Zapisz i opublikuj edytowany plik, stosując ochronę

Po odszyfrowaniu pliku można edytować plik. Po zakończeniu operacji edycji można zatwierdzać zmiany. IFileHandler Utwórz obiekt przy użyciu powyższego pliku tymczasowego do obsługi zatwierdzonego pliku. Plik tymczasowy można następnie chronić przy użyciu IProtectionHandler obiektu pobranego z oryginalnego pliku.

Następne kroki