Пакет SDK Microsoft Information Protection — концепции механизма защиты SDK

Реализация: добавить модуль защиты

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

В следующем примере показано, как использовать один механизм для одного пользователя, прошедшего проверку подлинности.

Реализация: Создание параметров модуля защиты

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

Следующий код создает ProtectionEngine::Settings объект с именем engineSettings.

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

Примечание.

Если вы создаете объект параметров защиты с помощью этого метода, также задайте идентификатор в ProtectionEngineSettings с помощью setIdentity() или целевую облачную среду с помощью setCloud().

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

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

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

engineSettings.SetEngineId(engineId);

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

Реализация: Добавить модуль защиты

Используйте паттерн Future/Promise, применяемый для загрузки профиля, чтобы добавить движок. Вместо создания обещания для 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;
}

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

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

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

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