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::FileHandler
wartości "sGetDecryptedTemporaryFileAsync()
" lubGetDecryptedTemporaryStreamAsync()
, 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żyjSetProtection()
metody , podając parametr przechowywanymip::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::ProtectionHandler
program , 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::ProtectionHandler
AccessCheck()
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::FileHandler
polecenia "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.