Publikowanie w trybie offline

Publikowanie w trybie offline umożliwia klientowi po nawiązaniu początkowego połączenia z usługą rights management w celu wygenerowania licencji publikowania dla nowo chronionej zawartości bez wykonywania wywołania usługi. Jest to przydatne w przypadku aplikacji, które muszą działać w trybie offline lub chcą uniknąć wykonywania wywołań usług.

Wymagania

Funkcja publikowania w trybie offline ma następujące wymagania:

  • Obsługiwana wersja zestawu MIP SDK.
  • Użytkownik licencjonowany na usługę Microsoft Purview Information Protection. Wymagania dotyczące licencjonowania
  • Łączność z Internetem dla aplikacji w celu inicjowania i buforowania danych w trybie offline.

Niewspierane

Następujące elementy nie są obsługiwane w ramach funkcji publikowania w trybie offline:

  • usługa Active Directory Rights Management Services (AD RMS) nie jest obsługiwana.
  • Podwójne szyfrowanie klucza (DKE): funkcja DKE musi wykonać wywołanie usługi w celu pobrania klucza publicznego podczas publikowania.

Korzystanie z publikowania offline za pomocą pakietu Protection SDK

Publikowanie w trybie offline wymaga wykonania trzech kroków, aby umożliwić publikowanie aplikacji bez wywoływania usługi:

  1. Włącz ustawienie publikowania w trybie offline w ustawieniach profilu (dla odpowiedniego zestawu SDK).
  2. Ustaw częstotliwość odświeżania szablonu. Ten interfejs API ustawia okres ważności dla buforowanych szablonów.
  3. Aby wypełnić pamięć podręczną (GetTemplatesAsync() lub GetTemplates()), wywołaj API pobierania szablonów.

Korzystanie z publikowania w trybie offline za pomocą pakietu SDK plików

SDK plików domyślnie używa publikowania offline i nie wymaga dodatkowej instalacji ani konfiguracji.

Zachowanie buforowania

Aplikacja nie skontaktuje się z usługą, aby pobrać szablony, dopóki okres odświeżania nie wygaśnie lub zadzwonisz GetTemplatesAsync() lub GetTemplates(). Jeśli aplikacja jest w trybie offline i pamięć podręczna wygasła, publikowanie nie powiedzie się. Interwał odświeżania powinien równoważyć użycie trybu offline dla użytkowników końcowych i zapewnić, że szablony są świeże. W przypadku większości aplikacji idealne jest 24 godziny lub mniej.

Przykłady

Następujące fragmenty kodu pochodzą z tych przykładowych aplikacji:

Po wykonaniu poniższych kroków utworzenie licencji publikowania odbywa się bez wywołania usługi, jeśli pamięć podręczna szablonów nie wygasła.

Przykład języka C++

Konfigurowanie ustawień ProtectionProfileSettings (C++)

// Initialize ProtectionProfileSettings using MipContext
ProtectionProfile::Settings profileSettings(mMipContext,
    mip::CacheStorageType::OnDiskEncrypted,
    ::make_shared<sample::consent::ConsentDelegateImpl>(),
    std::make_shared<ProtectionProfileObserverImpl>()
);

// Enable Offline Publishing
profileSettings.SetOfflinePublishing(true);

Ustawianie okresu odświeżania szablonu (C++)

// Set the template refresh interval
engineSettings.SetTemplateRefreshArgs(std::chrono::hours(24));

Pobieranie szablonów w celu zainicjowania pamięci podręcznej (C++)

auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>();
std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future();
mEngine->GetTemplatesAsync(engineObserver, loadPromise);
auto templates = loadFuture.get();

Przykład platformy .NET

Konfigurowanie ustawienia ProtectionProfileSettings (.NET)

// Initialize ProtectionProfileSettings
var profileSettings = new ProtectionProfileSettings(mipContext, 
                CacheStorageType.OnDisk, 
                new ConsentDelegateImplementation());

// Enable Offline Publishing
profileSettings.OfflinePublishing = true;

Ustawianie okresu odświeżania szablonu (.NET)

// Initialize ProtectionEngineSettings
var engineSettings = new ProtectionEngineSettings(identity.Email, authDelegate, "", "")
{
    Identity = identity
};

// Set the template refresh interval
engineSettings.TemplateRefreshRate = new TimeSpan(24, 0, 0);

var engine = profile.AddEngine(engineSettings);

Pobieranie szablonów w celu zainicjowania pamięci podręcznej (.NET)

List<TemplateDescriptor> templates = engine.GetTemplates();

Przykład języka Java

Konfigurowanie ustawienia ProtectionProfileSettings (Java)

ProtectionProfileSettings profileSettings = new ProtectionProfileSettings();
profileSettings.setMipContext(mipContext);
profileSettings.setCacheStorageType(CacheStorageType.ON_DISK);
profileSettings.setConsentDelegate(new ConsentDelegateImplementation());

// Enable Offline Publishing
profileSettings.setOfflinePublishing(true);

Ustawianie okresu odświeżania szablonu (Java)

ProtectionEngineSettings engineSettings = new ProtectionEngineSettings(identity.getEmail(), authDelegate, "", "");
engineSettings.setIdentity(identity);

// Set the template refresh interval in hours
engineSettings.setTemplateRefreshRate(Duration.ofHours(24));

Pobieranie szablonów w celu zainicjowania pamięci podręcznej (Java)

List<TemplateDescriptor> templates = engine.getTemplates();