Поделиться через


Автономная публикация (общедоступная предварительная версия)

Обзор

SDK Microsoft Information Protection 1.13 добавляет поддержку автономной публикации. Автономная публикация позволяет клиенту после первоначального подключения к службе управления правами создавать лицензии на публикацию только что защищенного содержимого без вызова службы. Автономная защита полезна для приложений, которые должны функционировать в автономном режиме или не выполнять вызовы служб.

Эта функция доступна в общедоступной предварительной версии для выпуска 1.13. Поддержка предоставляется на основе наилучших усилий, и исправления могут быть отложены.

Требования

Функция автономной публикации имеет следующие требования:

  • Пакет SDK для MIP Protection версии 1.13 или выше.
  • Пользователь, лицензированный для Microsoft Purview Information Protection. Требования к лицензированию
  • Подключение к Интернету для приложения для инициализации и кэширования данных в автономном режиме.

Не поддерживается

Следующие элементы не поддерживаются в рамках функции автономной публикации:

  • Службы Active Directory Rights Management не поддерживаются.
  • Пакет SDK для файлов MIP. В будущих версиях будет добавлена поддержка этой функции.
  • Двойное шифрование ключей (DKE): функция DKE должна вызвать службу, чтобы получить открытый ключ при публикации.

Использование автономной публикации

Для автономной публикации требуется три шага, чтобы приложение было опубликовано без вызова службы:

  1. Включите параметр автономной публикации на ProtectionProfileSettings.
  2. Задайте частоту обновления защиты. Этот API задает срок действия кэшированных шаблонов.
  3. Вызовите GetTemplatesAsync() или API.

Поведение кэширования

Приложение не связывается со службой, чтобы получить шаблоны, пока не истечёт срок обновления или пока не будут вызваны GetTemplatesAsync() или GetTemplates(). Если приложение находится в автономном режиме, а срок действия кэша истек, публикация не удастся. Интервал обновления должен обеспечить баланс между автономным использованием для конечных пользователей и обеспечением актуальности шаблонов. Для большинства приложений идеально подходит 24 часа или меньше.

Примеры

Следующие фрагменты кода взяты из этих примеров приложений:

После выполнения следующих действий создание лицензии на публикацию будет происходить без вызова службы, если кэш шаблонов не истек.

Пример C++

Настройка 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);

Установка периода обновления шаблона (C++)

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

Получение шаблонов для инициализации кэша (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

Настройка параметров профиля защиты (.NET)

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

// Enable Offline Publishing
profileSettings.OfflinePublishing = true;

Установка периода обновления шаблона (.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);

Получение шаблонов для инициализации кэша (.NET)

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