Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
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 должна вызвать службу, чтобы получить открытый ключ при публикации.
Использование автономной публикации
Для автономной публикации требуется три шага, чтобы приложение было опубликовано без вызова службы:
- Включите параметр автономной публикации на
ProtectionProfileSettings
. - Задайте частоту обновления защиты. Этот API задает срок действия кэшированных шаблонов.
- Вызовите
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();