Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реализация: добавление подсистемы защиты
В файловом 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("[email protected]", "");
При создании 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()
.
Дальнейшие шаги
Теперь, когда профиль загружен, движок добавлен, и у нас есть шаблоны, мы можем добавить обработчик, чтобы начать читать, записывать или удалять шаблоны из файлов. См. понятия обработчика защиты.