Delen via


Microsoft Information Protection SDK - Concepten van de Protection SDK-engine

Implementatie: Een beveiligingsengine toevoegen

In de File SDK is de mip::ProtectionProfile klasse de hoofdklasse voor alle SDK-bewerkingen. Nadat u het profiel al hebt gemaakt, kunnen we nu een engine toevoegen aan het profiel.

In het onderstaande voorbeeld ziet u hoe u één engine gebruikt voor één geverifieerde gebruiker.

Implementatie: Beveiligingsengine maken Instellingen

Net als bij een profiel vereist de engine ook een instellingenobject. mip::ProtectionEngine::Settings Dit object slaat de unieke engine-id op, aanpasbare clientgegevens die kunnen worden gebruikt voor foutopsporing of telemetrie, en, optioneel, de landinstelling.

Hier maken we een ProtectionEngine::Settings object met de naam engine Instellingen.

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

Notitie

Als u deze methode gebruikt om het object beveiligingsinstellingen te maken, moet u de identiteit ook handmatig instellen op ProtectionEngine Instellingen via setIdentity() of de doelcloudomgeving via setCloud().

Als best practice moet de eerste parameter, id, iets zijn waarmee de engine eenvoudig kan worden verbonden met de bijbehorende gebruiker of een mip::Identity object. De instellingen initialiseren met mip::Identity:

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

Wanneer u een engine maakt Instellingen op deze manier, is het belangrijk om ook expliciet een unieke engineId in te stellen via:

engineSettings.SetEngineId(engineId);

Door de gebruikersnaam of e-mail te gebruiken, zorgt u ervoor dat dezelfde engine telkens wordt geladen wanneer de gebruiker de service of toepassing gebruikt.

Implementatie: De beveiligingsengine toevoegen

Om de engine toe te voegen, gaan we terug naar het toekomstige/beloftepatroon dat wordt gebruikt om het profiel te laden. In plaats van de belofte voor mip::ProtectionProfilete maken, gebruiken mip::ProtectionEnginewe .


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

Het eindresultaat van de bovenstaande code is dat we een engine voor de geverifieerde gebruiker aan het profiel hebben toegevoegd.

Implementatie: Lijstsjablonen

Met behulp van de toegevoegde engine is het nu mogelijk om alle gevoeligheidssjablonen weer te geven die beschikbaar zijn voor de geverifieerde gebruiker door aan te roepen engine->GetTemplatesAsync().

GetTemplatesAsync() haalt de lijst met sjablonen-id's op. Het resultaat wordt opgeslagen in een vector van std::shared_ptr<std::string>.

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

Implementatie: De sjabloon-id's afdrukken

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

Het afdrukken van de namen is een eenvoudige manier om te laten zien dat we beleid hebben opgehaald uit de service en de sjablonen konden ophalen. Als u de sjabloon wilt toepassen, is de sjabloon-id vereist.

Toewijzingssjablonen aan labels kunnen alleen worden uitgevoerd via beleids-SDK door het resultaat van ComputeActions().

Volgende stappen

Nu het profiel is geladen, de engine is toegevoegd en we sjablonen hebben, kunnen we een handler toevoegen om sjablonen te lezen, schrijven of verwijderen uit bestanden. Zie concepten voor beveiligingshandlers.