Offlinepublicering

Offlinepublicering gör att en klient, efter att ha gjort en första anslutning till rights management-tjänsten, kan generera publiceringslicenser för nyligen skyddat innehåll utan att göra ett tjänstanrop. Detta är användbart för program som antingen behöver fungera i offlineläge eller vill undvika att göra tjänstanrop.

Krav

Offlinepubliceringsfunktionen har följande krav:

  • En version av MIP SDK som stöds.
  • En användare som är licensierad för Microsoft Purview Information Protection. Licenskrav
  • Internetanslutning för programmet för att initiera och cachelagra data offline.

Stöds inte

Följande objekt stöds inte som en del av offlinepubliceringsfunktionen:

  • Active Directory Rights Management Services (AD RMS) stöds inte.
  • DKE (Double Key Encryption): DKE-funktionen måste göra ett tjänstanrop för att hämta den offentliga nyckeln vid publicering.

Använda offlinepublicering med Skydds-SDK

Offlinepublicering kräver tre steg för att programmet ska kunna publicera utan att anropa tjänsten:

  1. Aktivera inställningen för offlinepublicering i profilinställningarna (för tillämpligT SDK).
  2. Ange uppdateringsfrekvensen för mallen. Det här API:et anger giltighetsperioden för de cachelagrade mallarna.
  3. Anropa API:erna för mallhämtning för att fylla i cachen (GetTemplatesAsync() eller GetTemplates()).

Använda offlinepublicering med Fil-SDK

Fil-SDK använder offlinepublicering som standard och kräver ingen ytterligare konfiguration.

Cachningsbeteende

Ett program kontaktar inte tjänsten för att hämta mallar förrän uppdateringsperioden har upphört att gälla eller tills GetTemplatesAsync() eller GetTemplates() anropas. Om programmet är offline och cachen har upphört att gälla misslyckas publiceringen. Uppdateringsintervallet bör balansera mellan offlineanvändning för slutanvändare och se till att mallarna är fräscha. För de flesta program är 24 timmar eller mindre idealiskt.

Exempel

Följande kodfragment hämtas från dessa exempelprogram:

När du har slutfört följande steg skapas en publiceringslicens utan att ett tjänstanrop görs om mallcachen inte har upphört att gälla.

C++-exempel

Konfigurera 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);

Ange malluppdateringsperioden (C++)

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

Hämta mallar för att initiera cacheminnet (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();

.NET-exempel

Konfigurera ProtectionProfileSettings (.NET)

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

// Enable Offline Publishing
profileSettings.OfflinePublishing = true;

Ange malluppdateringsperiod (.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);

Hämta mallar för att initiera cacheminnet (.NET)

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

Java-exempel

Konfigurera ProtectionProfileSettings (Java)

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

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

Ange malluppdateringsperioden (Java)

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

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

Hämta mallar för att initiera cacheminnet (Java)

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