Offlineveröffentlichung

Die Offlineveröffentlichung ermöglicht es einem Client, nach einer ersten Verbindung mit dem Rechteverwaltungsdienst Veröffentlichungslizenzen für neu geschützte Inhalte zu generieren, ohne einen Dienstaufruf zu tätigen. Dies ist nützlich für Anwendungen, die entweder in einem Offlinemodus funktionieren müssen oder dienstaufrufe vermeiden möchten.

Anforderungen

Das Offlineveröffentlichungsfeature hat die folgenden Anforderungen:

  • Eine unterstützte Version des MIP SDK.
  • Ein Benutzer, der für Microsoft Purview Information Protection lizenziert ist. Lizenzierungsanforderungen
  • Internetverbindung für die Anwendung zum Initialisieren und Zwischenspeichern von Daten offline.

Nicht unterstützt

Die folgenden Elemente werden im Rahmen des Offlineveröffentlichungsfeatures nicht unterstützt:

  • Active Directory Rights Management Services (AD RMS) wird nicht unterstützt.
  • Double Key Encryption (DKE): Das DKE-Feature muss einen Dienstaufruf ausführen, um den öffentlichen Schlüssel bei der Veröffentlichung abzurufen.

Verwenden der Offlineveröffentlichung mit dem Protection SDK

Für die Offlineveröffentlichung sind drei Schritte erforderlich, damit die Anwendung ohne Aufruf des Diensts veröffentlicht werden kann:

  1. Aktivieren Sie die Offlineveröffentlichungseinstellung für die Profileinstellungen (für das entsprechende SDK).
  2. Legen Sie die Aktualisierungsrate der Vorlage fest. Diese API legt den Gültigkeitszeitraum für die zwischengespeicherten Vorlagen fest.
  3. Aufrufen der Vorlagenabruf-APIs zum Auffüllen des Caches (GetTemplatesAsync() oder GetTemplates()).

Verwendung von Offline-Publishing mit dem File SDK

Das File SDK verwendet standardmäßig die Offlineveröffentlichung und erfordert keine zusätzliche Einrichtung oder Konfiguration.

Cache-Verhalten

Eine Anwendung wird den Dienst nicht kontaktieren, um Vorlagen abzurufen, bis der Aktualisierungszeitraum abgelaufen ist oder bis GetTemplatesAsync() oder GetTemplates() aufgerufen werden. Wenn die Anwendung offline ist und der Cache abgelaufen ist, schlägt die Veröffentlichung fehl. Das Aktualisierungsintervall sollte ein Gleichgewicht zwischen der Offline-Nutzung für Endbenutzer und der Sicherstellung, dass die Vorlagen aktuell sind, finden. Für die meisten Anwendungen ist 24 Stunden oder weniger ideal.

Examples

Die folgenden Codeausschnitte stammen aus diesen Beispielanwendungen:

Nach Abschluss der folgenden Schritte erfolgt das Erstellen einer Veröffentlichungslizenz ohne Dienstaufruf, wenn der Vorlagencache nicht abgelaufen ist.

C++-Beispiel

Konfigurieren Sie 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);

Festlegen des Vorlagenaktualisierungszeitraums (C++)

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

Abrufen von Vorlagen zum Initialisieren des Caches (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-Beispiel

Konfigurieren der ProtectionProfileSettings (.NET)

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

// Enable Offline Publishing
profileSettings.OfflinePublishing = true;

Festlegen des Aktualisierungszeitraums für Vorlagen (.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);

Abrufen von Vorlagen zum Initialisieren des Caches (.NET)

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

Java-Beispiel

Schutzprofil-Einstellungen konfigurieren (Java)

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

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

Festlegen des Aktualisierungszeitraums der Vorlage (Java)

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

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

Abrufen von Vorlagen zum Initialisieren des Caches (Java)

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