다음을 통해 공유


Microsoft Information Protection SDK - 보호 SDK 엔진 개념

구현: 보호 엔진 추가

파일 SDK에서 mip::ProtectionProfile 클래스는 모든 SDK 작업의 루트 클래스입니다. 프로필을 이미 만들었으므로 이제 프로필에 엔진을 추가할 수 있습니다.

아래 예제에서는 단일 인증된 사용자에 대해 단일 엔진을 사용하는 방법을 보여 줍니다.

구현: 보호 엔진 설정 만들기

프로필과 마찬가지로 엔진에는 설정 개체 mip::ProtectionEngine::Settings도 필요합니다. 이 개체는 고유한 엔진 식별자, 디버깅 또는 원격 분석에 사용할 수 있는 사용자 지정 가능한 클라이언트 데이터 및 필요에 따라 로캘을 저장합니다.

여기서는 engine설정라는 개체를 ProtectionEngine::Settings 만듭니다.

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

참고 항목

이 메서드를 사용하여 보호 설정 개체를 만드는 경우 setIdentity()를 통해 ProtectionEngineSettings에서 또는 setCloud()를 통해 대상 클라우드 환경에서 ID를 수동으로 설정해야 합니다.

첫 번째 매개 변수 ID는 엔진을 연결된 사용자 또는 mip::Identity 개체에 쉽게 연결할 수 있는 매개 변수여야 합니다. 다음을 사용하여 설정을 mip::Identity초기화하려면

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

이러한 방식으로 engineSettings를 만들 때는 다음을 통해 고유한 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();

구현: 템플릿 ID 인쇄

//Iterate through all template IDs in the vector
for (const auto& temp : *templates) {
  cout << "Template:" << "\n\tId: " << temp << endl;
}

이름을 인쇄하면 서비스에서 정책을 성공적으로 가져와서 템플릿을 가져올 수 있음을 쉽게 표시할 수 있습니다. 템플릿을 적용하려면 템플릿 식별자가 필요합니다.

템플릿을 레이블에 매핑하는 작업은 ComputeActions()의 결과를 검사하여 정책 SDK를 통해서만 수행할 수 있습니다.

다음 단계

이제 프로필이 로드되고 엔진이 추가되었으며 템플릿이 있으므로 파일에서 템플릿을 읽거나 쓰거나 제거하는 처리기를 추가할 수 있습니다. 보호 처리기 개념을 참조 하세요.