Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erfahren Sie, wie Sie das MIP Protection SDK verwenden, um für den Benutzer verfügbare Schutzvorlagen zu schützen.
Voraussetzungen
Falls noch nicht geschehen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen, bevor Sie fortfahren:
- Vervollständigen Sie zuerst Schnellstartanleitung – Initialisierung der Clientanwendung – Protection SDK (C++), die eine Starterlösung für Visual Studio erstellt. Diese Schnellstartanleitung "Listenschutzvorlagen" basiert auf der vorherigen Vorlage, um die Startlösung ordnungsgemäß zu erstellen.
- Optional: Überprüfen Sie die RMS-Vorlagenkonzepte .
Hinzufügen von Logik zum Auflisten der Schutzvorlagen
Fügen Sie mithilfe des Protection-Modulobjekts Logik zu Listenschutzvorlagen hinzu, die einem Benutzer zur Verfügung stehen.
Öffnen Sie die Visual Studio-Lösung, die Sie im vorherigen Artikel "Schnellstart – Clientanwendungsinitialisierung – Protection SDK (C++)" erstellt haben.
Öffnen Sie im Projektmappen-Explorer die datei .cpp in Ihrem Projekt, die die Implementierung der
main()Methode enthält. Standardmäßig wird derselbe Name wie das Projekt verwendet, das es enthält, das Sie während der Projekterstellung angegeben haben.Fügen Sie die folgende
using-Direktive nachusing mip::ProtectionEngine;, nahe dem Anfang der Datei, hinzu.using std::endl;Fügen Sie gegen Ende des
main()Textkörpers unter der schließenden Klammer}des letztencatchBlocks und oberhalb vonreturn 0;(wo Sie im vorherigen Schnellstart aufgehört haben) den folgenden Code ein:// List protection templates const shared_ptr<ProtectionEngineObserver> engineObserver = std::make_shared<ProtectionEngineObserver>(); // Create a context to pass to 'ProtectionEngine::GetTemplateListAsync'. That context will be forwarded to the // corresponding ProtectionEngine::Observer methods. In this case, we use promises/futures as a simple way to detect // the async operation completes synchronously. auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>(); std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future(); engine->GetTemplatesAsync(engineObserver, loadPromise); auto templates = loadFuture.get(); cout << "*** Template List: " << endl; for (const auto& protectionTemplate : templates) { cout << "Name: " << protectionTemplate->GetName() << " : " << protectionTemplate->GetId() << endl; }
Erstellen eines PowerShell-Skripts zum Generieren von Zugriffstoken
Verwenden Sie das folgende PowerShell-Skript, um Zugriffstoken zu generieren, die vom SDK in Ihrer AuthDelegateImpl::AcquireOAuth2Token Implementierung angefordert werden. Das Skript verwendet das Get-MsalToken Cmdlet aus dem zuvor installierten Modul MSAL.PS in "MIP SDK Einrichtung und Konfiguration".
Erstellen Sie eine PowerShell-Skriptdatei (.ps1 Erweiterung), und kopieren/fügen Sie das folgende Skript in die Datei ein:
-
$authorityund$resourceUrlwerden später im folgenden Abschnitt aktualisiert. - Aktualisieren
$appIdund$redirectUri, um die Werte anzupassen, die Sie in Ihrer Microsoft Entra App-Registrierung angegeben haben.
$authority = '<authority-url>' # Specified when SDK calls AcquireOAuth2Token() $resourceUrl = '<resource-url>' # Specified when SDK calls AcquireOAuth2Token() $appId = '<app-ID>' # App ID of the Microsoft Entra app registration $redirectUri = '<redirect-uri>' # Redirect URI of the Microsoft Entra app registration $scope = $resourceUrl + "/.default" $response = Get-MsalToken -ClientId $appId -Authority $authority -RedirectUri $redirectUri -Scopes $scope -Interactive $response.AccessToken | clip # Copy the access token text to the clipboard-
Speichern Sie die Skriptdatei, damit Sie sie später ausführen können, wenn sie von Ihrer Clientanwendung angefordert wird.
Erstellen und Testen der Anwendung
Erstellen und testen Sie schließlich Ihre Clientanwendung.
Verwenden Sie STRG+UMSCHALT+B (Lösung erstellen), um Ihre Client-Anwendung zu erstellen. Wenn keine Buildfehler auftreten, verwenden Sie F5 (Debuggen starten), um Ihre Anwendung auszuführen.
Wenn Ihr Projekt erfolgreich erstellt und ausgeführt wird, fordert die Anwendung jedes Mal, wenn das SDK Ihre
AcquireOAuth2Token()Methode aufruft, ein Zugriffstoken ein. Sie können ein zuvor generiertes Token wiederverwenden, wenn Sie mehrmals dazu aufgefordert werden und die angeforderten Werte gleich sind:Um ein Zugriffstoken für die Eingabeaufforderung zu generieren, wechseln Sie zurück zu Ihrem PowerShell-Skript und:
Aktualisieren Sie die Variablen
$authorityund$resourceUrl. Sie müssen mit den Werten übereinstimmen, die in der Konsolenausgabe in Schritt 2 angegeben sind.Führen Sie das PowerShell-Skript aus. Das
Get-MsalTokenCmdlet löst eine Microsoft Entra-Authentifizierungsaufforderung aus, ähnlich dem folgenden Beispiel. Geben Sie dasselbe Konto an, das in der Konsolenausgabe in Schritt 2 bereitgestellt wird. Nach erfolgreicher Anmeldung wird das Zugriffstoken in der Zwischenablage platziert.Möglicherweise müssen Sie auch die Zustimmung erteilen, damit die Anwendung auf die MIP-APIs zugreifen kann, während sie unter dem Anmeldekonto ausgeführt wird. Dies geschieht, wenn die Registrierung der Microsoft Entra-Anwendung nicht vorab zugestimmt wird (wie in "MIP SDK-Setup und -Konfiguration" beschrieben), oder Sie melden sich mit einem Konto von einem anderen Mandanten (außer dem konto, in dem Ihre Anwendung registriert ist) an. Klicken Sie einfach auf "Annehmen" , um Ihre Zustimmung aufzuzeichnen.
Nachdem Sie das Zugriffstoken aus Schritt 2 in die Eingabeaufforderung eingefügt haben, sollte die Konsolenausgabe die Schutzvorlagen anzeigen, ähnlich wie im folgenden Beispiel:
*** Template List: Name: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607 Name: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990 Name: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05 Name: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720 C:\MIP Sample Apps\ProtectionQS\Debug\ProtectionQS.exe (process 8252) exited with code 0. To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops. Press any key to continue . . .Hinweis
Kopieren und speichern Sie die ID einer oder mehrerer Schutzvorlagen (z. B.
f42a3342-8706-4288-bd31-ebb85995028z), da Sie diese im nächsten Schnellstart verwenden werden.
Problembehandlung
Probleme bei der Ausführung der C++-Anwendung
| Zusammenfassung | Fehlermeldung | Lösung |
|---|---|---|
| Ungültiges Zugriffstoken |
Ausnahme ist aufgetreten... ist das Zugriffstoken falsch/abgelaufen? Fehler beim API-Aufruf: profile_add_engine_async fehlgeschlagen mit: [Klasse mip::PolicySyncException] Fehler beim Abrufen der Richtlinie, Anforderung fehlgeschlagen mit http-Statuscode: 401, x-ms-diagnostics: [2000001;reason="OAuth-Token, das mit der Anforderung übermittelt wurde, kann nicht geparst werden.";error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (Prozess 29924) wurde mit Code 0 beendet. Drücken Sie eine beliebige Taste, um dieses Fenster zu schließen. . . |
Wenn Ihr Projekt erfolgreich kompiliert wird, die Ausgabe jedoch der auf der linken Seite gezeigten ähnlich ist, verfügen Sie wahrscheinlich über ein ungültiges oder abgelaufenes Token in Ihrer AcquireOAuth2Token()-Methode. Wechseln Sie zurück zum Erstellen eines PowerShell-Skripts, um Zugriffstoken zu generieren und das Zugriffstoken neu zu generieren, es erneut zu aktualisieren AcquireOAuth2Token() und erneut zu testen. Sie können das Token und seine Ansprüche auch mithilfe der jwt.ms Einzelseiten-Webanwendung untersuchen und überprüfen. |
Nächste Schritte
Nachdem Sie erfahren haben, wie Sie die für einen authentifizierten Benutzer verfügbaren Schutzvorlagen auflisten, probieren Sie die nächste Schnellstartanleitung aus: