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