Share via


Schnellstart: Auflisten von Schutzvorlagen (C++)

In diesem Schnellstart erfahren Sie, wie Sie das MIP Protection SDK für Schutzvorlagen verwenden, die für Benutzer*innen verfügbar sind.

Voraussetzungen

Stellen Sie vor dem Fortfahren sicher, dass die folgenden Voraussetzungen erfüllt sind:

Hinzufügen von Logik zum Auflisten der Schutzvorlagen

Fügen Sie mithilfe des Protection-Engine-Objekts Logik zum Auflisten der Schutzvorlagen hinzu, die für Benutzer*innen verfügbar sind.

  1. Öffnen Sie die Visual Studio-Projektmappe, die Sie im vorherigen Artikel „Schnellstart: Initialisieren von Clientanwendungen – Protection SDK (C++)“ erstellt haben.

  2. Öffnen Sie im Projektmappen-Explorer die CPP-Datei im Projekt, die die Implementierung der main()-Methode enthält. Standardmäßig weist sie denselben Namen wie das Projekt auf, in dem sie enthalten ist. Diesen Namen haben Sie bei der Projekterstellung angegeben.

  3. Fügen Sie oben in der Datei hinter using mip::ProtectionEngine; die folgende using-Anweisung hinzu:

    using std::endl;
    
  4. Fügen Sie den folgenden Code gegen Ende des Methodenkörpers von main() zwischen der schließenden Klammer } des letzten catch-Blocks und über return 0; (wo Sie im vorherigen Schnellstart aufgehört haben) 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 die Zugriffstoken zu generieren, die für das SDK in Ihrer AuthDelegateImpl::AcquireOAuth2Token-Implementierung erforderlich sind. Das Skript nutzt das Cmdlet Get-ADALToken aus dem Modul „ADAL.PS“, das Sie zuvor in „MIP SDK: Setup und Konfiguration“ installiert haben.

  1. Erstellen Sie eine PowerShell-Skriptdatei (mit der Erweiterung „.ps1“), und fügen Sie das folgende Skript in die Datei ein:

    • Die Variablen $authority und $resourceUrl werden im nächsten Abschnitt aktualisiert.
    • Aktualisieren Sie $appId und $redirectUri so, dass diese den Werten entsprechen, die in Ihrer Azure AD-Anwendungsregistrierung angegeben wurden.
    $authority = '<authority-url>'                   # Specified when SDK calls AcquireOAuth2Token()
    $resourceUrl = '<resource-url>'                  # Specified when SDK calls AcquireOAuth2Token()
    $appId = '<app-ID>'                              # App ID of the Azure AD app registration
    $redirectUri = '<redirect-uri>'                  # Redirect URI of the Azure AD app registration
    $response = Get-ADALToken -Resource $resourceUrl -ClientId $appId -RedirectUri $redirectUri -Authority $authority -PromptBehavior:RefreshSession
    $response.AccessToken | clip                     # Copy the access token text to the clipboard
    
  2. Speichern Sie die Skriptdatei, damit Sie sie später ausführen können, wenn Sie von der Clientanwendung dazu aufgefordert werden.

Erstellen und Testen der Anwendung

Erstellen und testen Sie abschließend die Clientanwendung.

  1. Drücken Sie STRG+UMSCHALT+B (Projektmappe erstellen), um Ihre Clientanwendung zu erstellen. Wenn keine Buildfehler auftreten, verwenden Sie F5 (Debuggen starten), um die Anwendung auszuführen.

  2. Wenn das Projekt erfolgreich erstellt und ausgeführt wird, fragt die Anwendung jedes Mal nach einem Zugriffstoken, wenn das SDK Ihre AcquireOAuth2Token()-Methode aufruft. Sie können ein zuvor generiertes Token erneut verwenden, wenn Sie mehrmals dazu aufgefordert werden und die Werte gleich sind:

  3. Sie können ein Zugriffstoken für die Aufforderung erstellen, indem Sie wieder zu Ihrem PowerShell-Skript wechseln und Folgendes durchführen:

    • Aktualisieren Sie die Variablen $authority und $resourceUrl. Sie müssen den Werten entsprechen, die in der Konsolenausgabe von Schritt 2 angegeben wurden.

    • Führen Sie das PowerShell-Skript aus. Das Cmdlet Get-ADALToken löst eine Eingabeaufforderung für die Azure AD-Authentifizierung ähnlich dem folgenden Beispiel aus. Geben Sie das gleiche Konto an, das in der Konsolenausgabe von Schritt 2 angegeben wurde. Nachdem Sie sich erfolgreich angemeldet haben, wird das Zugriffstoken in der Zwischenablage gespeichert.

      Visual Studio acquire token sign-in

    • Möglicherweise müssen Sie Ihre Einwilligung erteilen, um der Anwendung den Zugriff auf die MIP-APIs zu gewähren, während die Ausführung unter dem Anmeldekonto erfolgt. Dies geschieht, wenn der Azure AD-Anwendungsregistrierung nicht (wie in „MIP SDK: Setup und Konfiguration“ beschrieben) vorab zugestimmt wurde, oder wenn Sie sich mit einem Konto eines anderen Mandanten anmelden (der sich von dem unterscheidet, bei dem Ihre Anwendung registriert ist). Klicken Sie einfach auf Akzeptieren, damit Ihre Einwilligung erfasst wird.

      Visual Studio consent

  4. Nachdem die Zugriffstoken in die Eingabeaufforderung aus Schritt 2 eingefügt wurden, sollten die Vertraulichkeitsbezeichnungen in der Konsolenausgabe ähnlich wie im folgenden Beispiel aussehen:

    *** 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 . . .
    

    Notiz

    Kopieren und speichern Sie die ID von mindestens einer Schutzvorlage (z. B. f42a3342-8706-4288-bd31-ebb85995028z), da Sie diese im nächsten Schnellstart benötigen.

Problembehandlung

Probleme bei der Ausführung der C++-Anwendung

Zusammenfassung Fehlermeldung Lösung
Ungültiges Zugriffstoken Eine 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:[35bc0023-3727-4eff-8062-000006d5d672]'

Die Ausführung von „C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe“ (Prozess 29924) wurde mit dem Code 0 beendet.

Drücken Sie eine beliebige Taste, um dieses Fenster zu schließen. . .
Wenn Ihr Projekt erfolgreich erstellt wird und dennoch eine Ausgabe ähnlich der linken angezeigt wird, enthält Ihre AcquireOAuth2Token()-Methode wahrscheinlich ein ungültiges oder abgelaufenes Token. Wechseln Sie wieder zu Erstellen eines PowerShell-Skripts zum Generieren von Zugriffstoken, generieren Sie das Zugriffstoken neu, aktualisieren Sie AcquireOAuth2Token() erneut, und wiederholen Sie die Erstellung und die Tests. Sie können das Token und dessen Ansprüche auch untersuchen und überprüfen, indem Sie die Single-Page-Webanwendung jwt.ms verwenden.

Nächste Schritte

Nachdem Sie nun erfahren haben, wie Sie die für authentifizierte Benutzer*innen verfügbaren Schutzvorlagen auflisten, fahren Sie mit dem nächsten Schnellstart fort:

[Ver- und Entschlüsseln von Text](quick-protection-encrypt-decrypt-text-cpp.md)