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 hebt gemaakt, kunt u een engine toevoegen aan het profiel.

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

Implementatie: Instellingen voor beveiligingsengine maken

Net als bij een profiel vereist de engine ook een instellingenobject. mip::ProtectionEngine::Settings Met dit object wordt de unieke engine-id opgeslagen, de id die wordt gebruikt voor het mip::AuthDelegate verkrijgen van tokens, aanpasbare clientgegevens die u kunt gebruiken voor foutopsporing of telemetrie, en eventueel de landinstelling.

Met de volgende code maakt u een ProtectionEngine::Settings object met de naam engineSettings.

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

Opmerking

Als u het beveiligingsinstellingenobject met deze methode maakt, stelt u ook de identiteit voor het ProtectionEngine::Settings object in met behulp van SetIdentity() of de doelcloudomgeving met behulp van SetCloud().

Als best practice gebruikt u de eerste parameter, id, om de bijbehorende gebruiker te identificeren of een mip::Identity object te gebruiken. De instellingen initialiseren met mip::Identity:

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

Wanneer u engineSettings op deze manier maakt, moet u ook expliciet een unieke engineId instellen met behulp van:

engineSettings.SetEngineId(engineId);

Gebruik de gebruikersnaam of het e-mailadres om ervoor te zorgen dat de engine consistent wordt geladen telkens wanneer de gebruiker de service of toepassing gebruikt.

Implementatie: De beveiligingsengine toevoegen

Gebruik hetzelfde future-/promise-patroon als waarmee het profiel wordt geladen om de engine toe te voegen. Gebruik mip::ProtectionEngine in plaats van de belofte voor mip::ProtectionProfile te maken.


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

De code voegt een engine voor de geverifieerde gebruiker toe aan het profiel.

Implementatie: Sjablonen weergeven

Nadat u de engine hebt toegevoegd, kunt u alle gevoeligheidssjablonen weergeven die beschikbaar zijn voor de geverifieerde gebruiker door aan te roepen engine->GetTemplatesAsync().

GetTemplatesAsync() haalt de lijst met sjabloondescriptors op. De methode slaat het resultaat op in een vector van std::shared_ptr<mip::TemplateDescriptor>.

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

Implementatie: de sjabloon-id's afdrukken

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

Het afdrukken van de namen laat zien dat de toepassing het beleid van de service heeft opgehaald en de sjablonen heeft opgehaald. Als u de sjabloon wilt toepassen, hebt u de sjabloon-id nodig.

U kunt alleen via de Policy SDK sjablonen aan labels toewijzen door het resultaat van ComputeActions() te onderzoeken.

Volgende stappen 

Nu u het profiel hebt geladen, de engine hebt toegevoegd en sjablonen hebt, kunt u een handler toevoegen om sjablonen te lezen, schrijven of verwijderen uit bestanden. Zie concepten voor beveiligingshandlers.