Sdílet prostřednictvím


Rychlý start: Výpis šablon ochrany (C++)

V tomto rychlém startu se dozvíte, jak používat sadu MIP Protection SDK k ochraně šablon dostupných pro uživatele.

Předpoklady

Pokud jste to ještě neudělali, nezapomeňte před pokračováním dokončit následující požadavky:

Přidání logiky pro výpis šablon ochrany

Přidejte logiku k výpisu šablon ochrany, které jsou uživateli k dispozici, pomocí objektu modulu ochrany.

  1. Otevřete řešení sady Visual Studio, které jste vytvořili v předchozím článku Rychlý start – Inicializace klientské aplikace – Protection SDK (C++).

  2. Pomocí Průzkumník řešení otevřete soubor .cpp v projektu, který obsahuje implementaci main() metody. Ve výchozím nastavení se použije stejný název jako projekt, který obsahuje, který jste zadali při vytváření projektu.

  3. Přidejte následující using direktivu za using mip::ProtectionEngine;, v horní části souboru:

    using std::endl;
    
  4. Na konec main() těla vložte pod pravou složenou závorku } posledního catch bloku a výše return 0; (kde jste skončili v předchozím rychlém startu), vložte následující kód:

     // 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;
     }
    
    

Vytvoření skriptu PowerShellu pro generování přístupových tokenů

Pomocí následujícího skriptu PowerShellu vygenerujte přístupové tokeny, které sada SDK požaduje ve vaší AuthDelegateImpl::AcquireOAuth2Token implementaci. Skript používá rutinu Get-ADALToken z modulu ADAL.PS, který jste nainstalovali dříve, v části Nastavení a konfigurace sady MIP SDK.

  1. Vytvořte soubor powershellového skriptu (přípona .ps1) a zkopírujte nebo vložte do souboru následující skript:

    • $authority a $resourceUrl aktualizují se později v následující části.
    • Aktualizujte $appId a $redirectUri, aby odpovídaly hodnotám, které jste zadali v registraci aplikace Microsoft Entra.
    $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. Uložte soubor skriptu, abyste ho mohli spustit později, když to vyžaduje klientská aplikace.

Sestavení a otestování aplikace

Nakonec sestavte a otestujte klientskou aplikaci.

  1. K sestavení klientské aplikace použijte kombinaci kláves Ctrl+Shift+b (Řešení sestavení). Pokud nemáte žádné chyby sestavení, spusťte aplikaci pomocí klávesy F5 (spustit ladění).

  2. Pokud se projekt sestaví a úspěšně spustí, aplikace vyzve k zadání přístupového tokenu pokaždé, když sada SDK volá vaši AcquireOAuth2Token() metodu. Pokud se zobrazí výzva vícekrát, můžete znovu použít dříve vygenerovaný token a požadované hodnoty jsou stejné:

  3. Pokud chcete vygenerovat přístupový token pro výzvu, vraťte se do skriptu PowerShellu a proveďte následující:

    • Aktualizujte proměnné$authority.$resourceUrl Musí odpovídat hodnotám zadaným ve výstupu konzoly v kroku 2.

    • Spusťte skript PowerShellu. Rutina Get-ADALToken aktivuje výzvu k ověření Microsoft Entra, podobně jako v následujícím příkladu. Zadejte stejný účet, který jste zadali ve výstupu konzoly v kroku 2. Po úspěšném přihlášení se přístupový token umístí do schránky.

      Visual Studio acquire token sign-in

    • Možná budete muset udělit souhlas, abyste aplikaci umožnili přístup k rozhraním API MIP při spuštění pod přihlašovacím účtem. K tomu dochází v případě, že registrace aplikace Microsoft Entra není předem odsouhlasována (jak je uvedeno v nastavení a konfiguraci sady MIP SDK), nebo se přihlašujete pomocí účtu z jiného tenanta (jiného než registrace vaší aplikace). Jednoduše klikněte na Přijmout a poznamenejte si svůj souhlas.

      Visual Studio consent

  4. Po vložení přístupového tokenu do výzvy z kroku 2 by se ve výstupu konzoly měly zobrazit šablony ochrany, podobně jako v následujícím příkladu:

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

    Poznámka:

    Zkopírujte a uložte ID jedné nebo více šablon ochrany (například f42a3342-8706-4288-bd31-ebb85995028z), protože ho použijete v dalším rychlém startu.

Řešení problému

Problémy při provádění aplikace jazyka C++

Shrnutí Chybová zpráva Řešení
Chybný přístupový token Došlo k výjimce... je přístupový token nesprávný nebo vypršela jeho platnost?

Neúspěšné volání rozhraní API: profile_add_engine_async Selhalo: [class mip::P olicySyncException] Nepodařilo se získat zásadu, požadavek selhal se stavovým kódem HTTP: 401, x-ms-diagnostics: [2000001; reason="Token OAuth odeslaný s žádostí nelze analyzovat." error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proces 29924) se ukončil s kódem 0.

Stisknutím libovolné klávesy zavřete toto okno . . .
Pokud se projekt úspěšně sestaví, ale zobrazí se výstup podobný levé straně, pravděpodobně máte ve své AcquireOAuth2Token() metodě neplatný token nebo token s vypršenou platností. Vraťte se k vytvoření skriptu PowerShellu, který vygeneruje přístupové tokeny a znovu vygeneruje přístupový token, aktualizuje AcquireOAuth2Token() se znovu a znovu sestaví nebo znovu otestuje. Token a jeho deklarace identity můžete také prozkoumat a ověřit pomocí jwt.ms jednostrákové webové aplikace.

Další kroky

Teď, když jste se dozvěděli, jak zobrazit seznam šablon ochrany dostupných ověřeným uživatelům, vyzkoušejte následující rychlý start:

[Šifrování a dešifrování textu] (quick-protection-encrypt-decrypt text-cpp.md)