Microsoft Information Protection SDK - Protection SDK-Enginekonzepte
Implementierung: Hinzufügen einer Schutz-Engine
Im File SDK ist die Klasse mip::ProtectionProfile
die Stammklasse für alle SDK-Vorgänge. Nachdem wir das Profil bereits erstellt haben, können wir nun dem Profil eine Engine hinzufügen.
Das folgende Beispiel veranschaulicht die Verwendung einer einzelnen Engine für einen einzelnen authentifizierten Benutzer.
Implementierung: Erstellen von Schutz-Engine-Einstellungen
Ähnlich wie bei einem Profil erfordert die Engine auch ein Einstellungsobjekt, mip::ProtectionEngine::Settings
. Dieses Objekt speichert den eindeutigen Enginebezeichner, anpassbare Client-Daten, die für Debugging oder Telemetrie verwendet werden können, und optional das Gebietsschema.
Hier erstellen wir ein ProtectionEngine::Settings
-Objekt namens Engine Einstellungen.
ProtectionEngine::Settings engineSettings("UniqueID", "");
Hinweis
Wenn Sie diese Methode zur Erstellung des Schutzeinstellungsobjekts verwenden, müssen Sie auch die Identität auf ProtectionEngineSettings über setIdentity()
oder die Ziel-Cloud-Umgebung über setCloud()
manuell festlegen.
Als bewährte Methode sollte der erste Parameter, die ID, etwas sein, das es der Engine ermöglicht, einfach mit dem zugeordneten Benutzer oder einem mip::Identity
-Objekt verbunden zu werden. So initialisieren Sie die Einstellungen mit mip::Identity
:
ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com", "");
Beim Erstellen von EngineSettings auf diese Weise ist es wichtig, auch explizit eine eindeutige EngineId über folgendes festzulegen:
engineSettings.SetEngineId(engineId);
Die Verwendung des Benutzernamens oder der E-Mail trägt dazu bei, dass jedes Mal, wenn der Benutzer den Dienst oder die Anwendung nutzt, dieselbe Engine geladen wird.
Implementierung: Hinzufügen der Schutz-Engine
Um die Engine hinzuzufügen, kehren wir zum Zukünftigen/Zusagemuster zurück, das zum Laden des Profils verwendet wird. Anstatt die Zusage für mip::ProtectionProfile
zu erstellen, verwenden wir mip::ProtectionEngine
.
//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();
Das Endergebnis des obigen Codes ist, dass wir dem Profil erfolgreich eine Engine für den authentifizierten Benutzer hinzugefügt haben.
Implementierung: Listenvorlagen
Mithilfe des hinzugefügten Moduls ist es jetzt möglich, alle für den authentifizierten Benutzer verfügbaren Vertraulichkeitsvorlagen durch Aufrufen von engine->GetTemplatesAsync()
aufzulisten.
GetTemplatesAsync()
ruft die Liste der Vorlagenbezeichner ab. Das Ergebnis wird in einem Vektor von std::shared_ptr<std::string>
gespeichert.
Implementierung: 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();
Implementierung: Drucken der Vorlagen-IDs
//Iterate through all template IDs in the vector
for (const auto& temp : *templates) {
cout << "Template:" << "\n\tId: " << temp << endl;
}
Das Drucken der Namen ist eine einfache Möglichkeit, zu zeigen, dass wir die Richtlinie erfolgreich aus dem Dienst abgerufen und die Vorlagen abgerufen haben. Um die Vorlage anzuwenden, ist der Vorlagenbezeichner erforderlich.
Die Zuordnung von Vorlagen zu Bezeichnungen kann nur über das Policy SDK erfolgen, indem das Ergebnis von ComputeActions()
untersucht wird.
Nächste Schritte
Nachdem das Profil geladen wurde, das Modul hinzugefügt wurde und wir über Vorlagen verfügen, können wir einen Handler hinzufügen, um mit dem Lesen, Schreiben oder Entfernen von Vorlagen aus Dateien zu beginnen. Siehe Schutzhandlerkonzepte.