구현: 보호 엔진 추가
파일 SDK mip::ProtectionProfile 에서 클래스는 모든 SDK 작업에 대한 루트 클래스입니다. 프로필을 만든 후 프로필에 엔진을 추가할 수 있습니다.
다음 예제에서는 단일 인증된 사용자에 대해 단일 엔진을 사용하는 방법을 보여 줍니다.
구현: 보호 엔진 설정 만들기
프로필과 마찬가지로 엔진에는 설정 개체 mip::ProtectionEngine::Settings도 필요합니다. 이 개체는 고유한 엔진 식별자, mip::AuthDelegate 토큰을 획득하는 데 사용되는 데이터, 디버깅 또는 원격 분석에 사용할 수 있는 사용자 지정 가능한 클라이언트 데이터 및 선택적으로 로캘을 저장합니다.
다음 코드는 engineSettings라는 개체를 만듭니다ProtectionEngine::Settings.
ProtectionEngine::Settings engineSettings("UniqueID", authDelegate, "");
비고
이 메서드를 사용하여 보호 설정 개체를 만드는 경우, SetCloud()를 사용하여 SetIdentity() 개체에 ID를 설정하거나 ProtectionEngine::Settings를 사용하여 대상 클라우드 환경을 설정합니다.
가장 좋은 방법은 첫 번째 매개 변수 ID를 사용하여 연결된 사용자를 식별하거나 개체를 사용하는 것입니다 mip::Identity .
mip::Identity를 통해 설정을 초기화하려면
ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com"), authDelegate, "");
이러한 방식으로 engineSettings를 만들 때 다음을 사용하여 고유한 engineId 를 명시적으로 설정합니다.
engineSettings.SetEngineId(engineId);
사용자 이름 또는 전자 메일을 사용하여 사용자가 서비스 또는 애플리케이션을 사용할 때마다 엔진이 일관되게 로드되도록 합니다.
구현: 보호 엔진 추가
프로필을 로드하여 엔진을 추가하는 데 사용되는 미래/약속 패턴을 사용합니다.
mip::ProtectionProfile에 대한 Promise를 생성하는 대신 mip::ProtectionEngine를 사용하세요.
//auto profile will be std::shared_ptr<mip::ProtectionProfile>
auto profile = profileFuture.get();
//Create the ProtectionEngine::Settings object
ProtectionEngine::Settings engineSettings("UniqueID", authDelegate, "");
//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<mip::TemplateDescriptor>.
구현: ListSensitivityTemplates()
auto loadPromise = std::make_shared<std::promise<std::vector<std::shared_ptr<mip::TemplateDescriptor>>>>();
auto loadFuture = loadPromise->get_future();
engine->GetTemplatesAsync(engineObserver, loadPromise);
auto templates = loadFuture.get();
구현: 템플릿 ID 인쇄
//Iterate through all template IDs in the vector
for (const auto& temp : templates) {
cout << "Template:" << "\n\tId: " << temp->GetId() << endl;
}
이름을 인쇄하면 애플리케이션이 서비스에서 정책을 성공적으로 가져와서 템플릿을 검색했음을 알 수 있습니다. 템플릿을 적용하려면 템플릿 식별자가 필요합니다.
ComputeActions()의 결과를 확인하여 Policy SDK를 통해서만 템플릿을 레이블에 매핑할 수 있습니다.
다음 단계
이제 프로필을 로드하고, 엔진을 추가했으며, 템플릿이 있으므로 파일에서 템플릿을 읽거나 쓰거나 제거하는 처리기를 추가할 수 있습니다. 보호 처리기 개념을 참조하세요.
- 샘플 코드는 GitHub MIP Protection SDK C++ 샘플을 참조하세요.