Ponowne opublikowanie (C++)

Omówienie

W tym omówieniem skupiono się na ponownej publikowaniu w zestawie SDK programu MIP to konkretny scenariusz, który występuje, gdy aplikacja musi zezwolić użytkownikowi na edytowanie pliku, ale chce zachować oryginalne informacje o licencji publikowania dotyczące właściciela, praw, klucza zawartości itp.

Wzorzec może wyglądać podobnie do:

  • Użytkownik otwiera chroniony dokument do edycji.
  • Użytkownik może edytować plik tylko wtedy, gdy otrzymał odpowiednie prawa.
  • Użytkownik edytuje, a następnie zapisuje dokument.

Kod zestawu SDK usługi MIP w celu wykonania tego zadania może wyglądać tak:

  • Utwórz mip::FileHandler element, który wskazuje plik docelowy.
  • Przechowuj dostępne mip::ProtectionHandler informacje mip::FileHandlerGetProtection() metodą.
  • Sprawdź, czy użytkownik ma uprawnienia do edytowania, korzystając z metody wywoływania.
  • Użyj mip::FileHandler plików GetDecryptedTemporaryFileAsync() lub, aby uzyskać tymczasowe GetDecryptedTemporaryStreamAsync() odszyfrowane dane wyjściowe.
  • Edytuj plik tymczasowy lub zawartość strumienia i zapisz plik.
  • Utwórz nowe wystąpienie, które wskaże plik temp, i użyj metody, podając mip::FileHandlerSetProtection() jako parametr mip::ProtectionHandler przechowywaną.
  • Zat zatwierdzeniu zmiany.

W edytowanym dokumencie będą zachowywane pliki z oryginalnego pliku: właściciel, identyfikator zawartości, klucz mip::ProtectionHandler zawartości itp. Ten scenariusz ponownego rozpowszechniania wymaga, aby aplikacja zachowywała odwołanie do mip::ProtectionHandler oryginału.

Implementacja

Jak wspomniano wcześniej, klasa udostępnia metody czytania, pisania i usuwania zarówno etykiet, mip::FileHandler jak i informacji dotyczących ochrony. Aby uzyskać pełną listę obsługiwanych operacji, zapoznaj się z dokumentacja interfejsu API.

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

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

W scenariuszu użyto również pliku , który udostępnia funkcje do szyfrowania i odszyfrowywania chronionych strumieni i buforów, wykonywania testów dostępu, uzyskiwania licencji publikowania i uzyskiwania atrybutów z chronionych mip::ProtectionHandler informacji. Ta AccessCheck() metoda służy do sprawdzania, czy użytkownik ma prawa do edytowania pliku.

Aby pomyślnie ukończyć ten scenariusz ponownej ochrony, przejrzyj przewodnik Szybki start w obszarze "Następne kroki" i upewnij się, że aplikacja tworzy kompilacje i może pomyślnie wyświetlić etykiety listy.

Tworzenie programu obsługi ochrony z pliku i odszyfrowywanie pliku

mip::ProtectionHandler udostępnia funkcje do szyfrowania i odszyfrowywania chronionych strumieni i buforów, wykonywania testów dostępu, uzyskiwania licencji publikowania i uzyskiwania atrybutów z chronionych informacji. mip::ProtectionHandler Obiekty są skonstruowane za pomocą licencji ProtectionDescriptor lub serializowanej licencji publikowania. W tym przypadku niejawnie korzystalibyśmy z licencji publikowania, ponieważ licencja publikowania jest używana podczas odszyfrowywania już chronionej zawartości lub podczas chroniania zawartości, w której licencja została już skonstruowana.

mip::FileHandlerudostępnia metodę o nazwie GetProtection() pobieraną mip::ProtectionHandler z pliku skojarzonego z . mip::FileHandler Po pobraniu obiektu można użyć tego samego pliku do zweryfikowania poziomów dostępu użytkownika do pliku, odszyfrowania pliku, a następnie zaszyfrowania go po mip::ProtectionHandler jego edytowaniu.

mip::ProtectionHandlersłuży do sprawdzania, czy użytkownik ma określone prawo do pliku i zwraca odpowiedź logiczną, w zależności AccessCheck() od wyniku. Aby na przykład sprawdzić, czy użytkownik ma uprawnienia do edycji, wywołaj metodę przekazującą wartość "EDYTUJ". Jeśli wynik jest prawdziwy,zezwalaj użytkownikowi na edytowanie pliku. Po zweryfikowaniu prawej strony EDIT (EDYTUJ) użyj s, aby GetDecryptedTemporaryFileAsync() pobrać tymczasowy odszyfrowany plik.

Aby uzyskać więcej szczegółowych informacji na temat różnych praw użytkownika, zobacz Prawa użytkowników do usługi Azure Information Protection.

Ważne

Testy i wymusze dostępu są tylko dla dewelopera aplikacji. Użytkownik z uprawnieniami do wyświetlania może odszyfrowywać chronione informacje. To aplikacja może sprawdzić zestaw praw przyznanych użytkownikowi i wymusić te prawa za pośrednictwem kontrolek ochrony informacji, takich jak uniemożliwianie kopiowania, edytowania lub robienia zrzutów ekranu. Jeśli nie wdrożysz poprawnie kontroli ochrony, może to spowodować narażenie na poufne informacje.

Zapisywanie i publikowanie edytowanego pliku przez zastosowanie ochrony

Po odszyfrowanym pliku można go edytować. Po zakończeniu operacji edycji można zatwierdzone zmiany. Utwórz IFileHandler obiekt, używając powyższego pliku tymczasowego do obsługi zatwierdzonego pliku. Plik tymczasowy może być następnie chroniony przy użyciu IProtectionHandler obiektu pobranego z oryginalnego pliku.

Następne kroki