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

구현: 보호 엔진 추가

파일 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를 통해서만 템플릿을 레이블에 매핑할 수 있습니다.

다음 단계

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