Пакет 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()
.
Дальнейшие действия
Теперь, когда профиль загружен, модуль добавил и у нас есть шаблоны, можно добавить обработчик для начала чтения, записи или удаления шаблонов из файлов. Основные понятия обработчика защиты.