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 mithilfe des MIP Protection SDK Schutzvorlagen auflisten, die für den Benutzer verfügbar sind.
Voraussetzungen
Führen Sie die folgenden Voraussetzungen aus, 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 „Auflisten von Schutzvorlagen“ basiert auf der vorherigen Schnellstartanleitung, um die Startlösung richtig zu erstellen.
- Optional: Überprüfen Sie 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 in 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()Hauptteils unterhalb der schließenden Klammer}des letztencatch-Blocks 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 das SDK in Ihrer AuthDelegateImpl::AcquireOAuth2Token Implementierung anfordert. Das Skript verwendet das Get-MsalToken Cmdlet aus dem MSAL.PS-Modul, das Sie zuvor unter „MIP SDK setup and configuration“ installiert haben.
Erstellen Sie eine PowerShell-Skriptdatei (.ps1 Erweiterung), und kopieren Sie das folgende Skript, und fügen Sie es in die Datei ein:
-
$authorityund$resourceUrlwerden später im folgenden Abschnitt aktualisiert. - Aktualisieren Sie
$appIdund$redirectUriso, dass sie den Werten entsprechen, 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 Ihre Clientanwendung.
Drücken Sie STRG+UMSCHALT+B (Projektmappe erstellen), um Ihre Clientanwendung zu erstellen. Wenn der Build keine Fehler aufweist, 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 sind identisch: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 platziert PowerShell das Zugriffstoken in der Zwischenablage.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. Wählen Sie "Annehmen" aus, um Ihre Zustimmung aufzuzeichnen.
Nachdem Sie das Zugriffstoken aus Schritt 2 in die Eingabeaufforderung eingefügt haben, sollte die Konsolenausgabe die Schutzvorlagen anzeigen, ähnlich dem 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 IDs einer oder mehrerer Schutzvorlagen (z. B.
f42a3342-8706-4288-bd31-ebb85995028z), um sie im nächsten Schnellstart zu verwenden.
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 bei API-Aufruf: profile_add_engine_async Fehler: [class mip::PolicySyncException] Fehler beim Abruf von Richtlinie, Fehler bei Anforderung mit HTTP-Statuscode: 401, x-ms-diagnostics: [2000001;reason="Das mit der Anforderung übermittelte OAuth-Token kann nicht analysiert werden.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' 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:
- Erkunden Sie das MIP Protection SDK C++-Beispiel für GitHub.