Microsoft Information Protection SDK – Konzepte der Protection SDK-Engine

Implementierung: Hinzufügen eines Schutzmoduls

Im File SDK ist die mip::ProtectionProfile Klasse die Stammklasse für alle SDK-Vorgänge. Nachdem Sie das Profil erstellt haben, können Sie dem Profil eine Engine hinzufügen.

Das folgende Beispiel zeigt, wie eine einzelne Engine für einen einzelnen authentifizierten Benutzer verwendet wird.

Implementierung: Schutzmodul-Einstellungen erstellen

Ähnlich wie ein Profil benötigt die Engine auch ein Einstellungsobjekt, mip::ProtectionEngine::Settings. Dieses Objekt speichert die eindeutige Engine-ID, das zum Abrufen von Token verwendete mip::AuthDelegate, anpassbare Clientdaten, die Sie für Debugging oder Telemetrie verwenden können, und optional auch das Gebietsschema.

Der folgende Code erstellt ein ProtectionEngine::Settings Objekt namens engineSettings.

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

Note

Wenn Sie das Schutzeinstellungsobjekt mit dieser Methode erstellen, legen Sie auch die Identität am ProtectionEngine::Settings-Objekt mithilfe von SetIdentity() oder die Ziel-Cloudumgebung mithilfe von SetCloud() fest.

Verwenden Sie als bewährte Methode den ersten Parameter, die ID, um den zugehörigen Benutzer zu identifizieren oder ein mip::Identity Objekt zu verwenden. So initialisieren Sie die Einstellungen mit mip::Identity:

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

Wenn Sie engineSettings auf diese Weise erstellen, legen Sie auch explizit eine eindeutige engineId mit Folgendem fest:

engineSettings.SetEngineId(engineId);

Verwenden Sie den Benutzernamen oder die E-Mail , um sicherzustellen, dass das Modul jedes Mal konsistent geladen wird, wenn der Benutzer den Dienst oder die Anwendung verwendet.

Implementierung: Hinzufügen des Schutzmoduls

Verwenden Sie das Future-/Promise-Muster, das zum Laden des Profils verwendet wird, um die Engine hinzuzufügen. Verwenden Sie mip::ProtectionEngine, anstatt das Promise für mip::ProtectionProfile zu erstellen.


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

Der Code fügt dem Profil ein Modul für den authentifizierten Benutzer hinzu.

Implementierung: Listenvorlagen

Nachdem Sie die Engine hinzugefügt haben, können Sie durch Aufrufen von engine->GetTemplatesAsync() alle Vertraulichkeitsvorlagen auflisten, die dem authentifizierten Benutzer zur Verfügung stehen.

GetTemplatesAsync() ruft die Liste der Vorlagendeskriptoren ab. Die Methode speichert das Ergebnis in einem Vektor von std::shared_ptr<mip::TemplateDescriptor>.

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

Implementierung: Drucken der Vorlagen-IDs

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

Beim Drucken der Namen wird angezeigt, dass die Anwendung die Richtlinie erfolgreich aus dem Dienst abgerufen und die Vorlagen abgerufen hat. Um die Vorlage anzuwenden, benötigen Sie den Vorlagenbezeichner.

Sie können Vorlagen nur über das Policy SDK Labels zuordnen, indem Sie das Ergebnis von ComputeActions() untersuchen.

Nächste Schritte

Nachdem Sie das Profil geladen und das Modul hinzugefügt haben und über Vorlagen verfügen, können Sie einen Handler hinzufügen, um mit dem Lesen, Schreiben oder Entfernen von Vorlagen aus Dateien zu beginnen. Siehe Schutzhandlerkonzepte.