Dela via


Microsoft Information Protection SDK – Koncept för SDK-motorn för skydd

Implementering: Lägga till en skyddsmotor

I File SDK mip::ProtectionProfile är klassen rotklassen för alla SDK-åtgärder. När profilen redan har skapats kan vi nu lägga till en motor i profilen.

Exemplet nedan visar hur du använder en enda motor för en enda autentiserad användare.

Implementering: Skapa Inställningar för skyddsmotorn

Precis som en profil kräver motorn också ett inställningsobjekt, mip::ProtectionEngine::Settings. Det här objektet lagrar den unika motoridentifieraren, anpassningsbara klientdata som kan användas för felsökning eller telemetri och, om du vill, språkvarianten.

Här skapar vi ett ProtectionEngine::Settings objekt med namnet engine Inställningar.

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

Kommentar

Om du använder den här metoden för att skapa skyddsinställningsobjektet måste du också manuellt ange identiteten på ProtectionEngine Inställningar via setIdentity() eller målmolnmiljön via setCloud().

Bästa praxis är att den första parametern, ID, är något som gör att motorn enkelt kan anslutas till den associerade användaren eller ett mip::Identity objekt. Initiera inställningarna med mip::Identity:

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

När du skapar motorn Inställningar på det här sättet är det viktigt att du också uttryckligen anger ett unikt engineId via:

engineSettings.SetEngineId(engineId);

Genom att använda användarnamnet eller e-postmeddelandet ser du till att samma motor läses in varje gång användaren använder tjänsten eller programmet.

Implementering: Lägg till skyddsmotorn

För att lägga till motorn går vi tillbaka till det framtida/löftesmönster som används för att läsa in profilen. I stället för att skapa löftet för mip::ProtectionProfileanvänder mip::ProtectionEnginevi .


  //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();

Slutresultatet av koden ovan är att vi har lagt till en motor för den autentiserade användaren i profilen.

Implementering: Lista mallar

Med den tillagda motorn är det nu möjligt att lista alla känslighetsmallar som är tillgängliga för den autentiserade användaren genom att anropa engine->GetTemplatesAsync().

GetTemplatesAsync() hämtar listan över mallidentifierare. Resultatet lagras i en vektor av std::shared_ptr<std::string>.

Implementering: 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();

Implementering: Skriv ut mall-ID:t

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

Att skriva ut namnen är ett enkelt sätt att visa att vi har hämtat principen från tjänsten och kunde hämta mallarna. Mallidentifieraren krävs för att tillämpa mallen.

Det går bara att mappa mallar till etiketter via Princip-SDK genom att undersöka resultatet av ComputeActions().

Nästa steg

Nu när profilen har lästs in, motorn har lagts till och vi har mallar, kan vi lägga till en hanterare för att börja läsa, skriva eller ta bort mallar från filer. Se Begrepp för skyddshanterare.