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:
- Úplný rychlý start – Inicializace klientské aplikace – Protection SDK (C++), která vytvoří počáteční řešení sady Visual Studio. Tento rychlý start "List protection templates" (Šablony ochrany seznamu) využívá předchozí šablony pro správné vytvoření počátečního řešení.
- Volitelně: Projděte si koncepty šablon RMS.
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.
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++).
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.Přidejte následující
using
direktivu zausing mip::ProtectionEngine;
, v horní části souboru:using std::endl;
Na konec
main()
těla vložte pod pravou složenou závorku}
posledníhocatch
bloku a výšereturn 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.
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
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.
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í).
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é: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.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.
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)