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


Пакет SDK Для Microsoft Information Protection — основные понятия подсистемы SDK для защиты

Реализация: добавление подсистемы защиты

В пакете SDK mip::ProtectionProfile для файлов класс является корневым классом для всех операций пакета SDK. Создав профиль, теперь можно добавить подсистему в профиль.

В приведенном ниже примере показано использование одного обработчика для одного пользователя, прошедшего проверку подлинности.

Реализация. Создание подсистемы защиты Параметры

Аналогично профилю, обработчику также требуется объект параметров. mip::ProtectionEngine::Settings Этот объект хранит уникальный идентификатор обработчика, настраиваемые клиентские данные, которые можно использовать для отладки или телеметрии, а также, при необходимости, языкового стандарта.

Здесь мы создадим ProtectionEngine::Settings объект с именем engine Параметры.

ProtectionEngine::Settings engineSettings("UniqueID", "");

Примечание.

При использовании этого метода для создания объекта параметров защиты необходимо также вручную задать удостоверение в ProtectionEngine Параметры через setIdentity() или целевую облачную среду.setCloud()

В качестве рекомендации первый параметр, идентификатор, должен быть чем-то, что позволяет обработчику легко подключаться к связанному пользователю или объекту mip::Identity . Инициализация параметров с помощью mip::Identity:

ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com", "");

При создании подсистемы Параметры таким образом, важно также явно задать уникальный engineId с помощью:

engineSettings.SetEngineId(engineId);

Использование имени пользователя или электронной почты помогает убедиться, что один и тот же механизм загружается каждый раз, когда пользователь использует службу или приложение.

Реализация. Добавление обработчика защиты

Чтобы добавить подсистему, мы вернемся к шаблону будущего или обещания, используемому для загрузки профиля. Вместо создания обещания mip::ProtectionProfileмы будем использовать mip::ProtectionEngine.


  //auto profile will be std::shared_ptr<mip::ProtectionProfile>
  auto profile = profileFuture.get();

  //Create the ProtectionEngine::Settings object
  ProtectionEngine::Settings engineSettings("UniqueID", "");

  //Create a promise for std::shared_ptr<mip::ProtectionEngine>
  auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::ProtectionEngine>>>();

  //Instantiate the future from the promise
  auto engineFuture = enginePromise->get_future();

  //Add the engine using AddEngineAsync, passing in the engine settings and the promise
  profile->AddEngineAsync(engineSettings, enginePromise);

  //get the future value and store in std::shared_ptr<mip::ProtectionEngine>
  auto engine = engineFuture.get();

Конечным результатом приведенного выше кода является то, что мы успешно добавили подсистему для прошедшего проверку подлинности пользователя в профиль.

Реализация: Шаблоны списков

Используя добавленный обработчик, теперь можно перечислить все шаблоны конфиденциальности, доступные для пользователя, прошедшего проверку подлинности, путем вызова engine->GetTemplatesAsync().

GetTemplatesAsync() возвращает список идентификаторов шаблонов. Результат хранится в векторе std::shared_ptr<std::string>.

Реализация: ListSensitivityTemplates()

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

Реализация: печать идентификаторов шаблона

//Iterate through all template IDs in the vector
for (const auto& temp : *templates) {
  cout << "Template:" << "\n\tId: " << temp << endl;
}

Печать имен — это простой способ показать, что мы успешно извлекали политику из службы и смогли получить шаблоны. Чтобы применить шаблон, требуется идентификатор шаблона.

Сопоставление шаблонов с метками можно выполнять только с помощью пакета SDK политики, проверив результат ComputeActions().

Дальнейшие действия

Теперь, когда профиль загружен, модуль добавил и у нас есть шаблоны, можно добавить обработчик для начала чтения, записи или удаления шаблонов из файлов. Основные понятия обработчика защиты.