Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu se dozvíte, jak pomocí sady MIP Protection SDK zobrazit seznam šablon ochrany dostupných pro uživatele.
Požadavky
Než budete pokračovat, splňte následující předpoklady:
- Dokončit Quickstart - Inicializace klientské aplikace - Protection SDK (C++) jako první, které vytvoří počáteční řešení sady Visual Studio. Tento rychlý start „Vypsání šablon ochrany“ vychází z předchozího rychlého startu, aby bylo počáteční řešení vytvořeno správně.
- Volitelné: Projděte si koncepty šablon RMS .
Přidat logiku 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++).
V Průzkumník řešení otevřete soubor .cpp v projektu, který obsahuje implementaci
main()metody. V rámci výchozího nastavení se použije stejný název jako projekt, který ho obsahuje a který jste zadali při vytváření projektu.Přidejte následující
usingdirektivu zausing mip::ProtectionEngine;, v horní části souboru:using std::endl;Ke konci těla
main(), pod uzavírací složenou závorku}posledního blokucatcha nadreturn 0;(kde jste skončili v předchozím stručném úvodu) 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-MsalToken z modulu MSAL.PS, který jste nainstalovali dříve, v nastavení a konfiguraci sady MIP SDK.
Vytvořte soubor skriptu PowerShellu (.ps1 příponu) a zkopírujte a vložte do souboru následující skript:
-
$authoritya$resourceUrlaktualizují se později v následující části. - Aktualizujte
$appIdhodnoty, které jste zadali v registraci Microsoft Entra aplikace, a$redirectUriaby odpovídaly hodnotám, které jste zadali.
$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-
Uložte soubor skriptu, abyste ho mohli spustit později, když to vyžaduje klientská aplikace.
Sestavení a otestování aplikace
Sestavte a otestujte klientskou aplikaci.
K sestavení klientské aplikace použijte kombinaci kláves Ctrl+Shift+B (Sestavit řešení). Pokud sestavení neobsahuje žádné chyby, spusťte aplikaci pomocí klávesy F5 (Spustit ladění).
Pokud se projekt sestaví a úspěšně spustí, aplikace zobrazí výzvu 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é
$authoritya$resourceUrl. Musí odpovídat hodnotám zadaným ve výstupu konzoly v kroku 2.Spusťte skript PowerShellu. Cmdlet
Get-MsalTokenvyvolá ověřovací výzvu Microsoft Entra podobnou následujícímu příkladu. Zadejte stejný účet uvedený ve výstupu konzoly v kroku 2. Po úspěšném přihlášení PowerShell umístí přístupový token do schránky.Při spouštění pod přihlašovacím účtem může být také potřeba udělit souhlas, aby aplikace mohla přistupovat k rozhraním API MIP. 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). Výběrem možnosti Přijmout zaznamenáte 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), jak ho použijete v dalším rychlém startu.
Řešení problémů
Problémy při provádění aplikace jazyka C++
| Shrnutí | Zpráva o chybě | Ř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 s chybou: [class mip::PolicySyncException] Nepodařilo se načíst zásadu, požadavek selhal se stavovým kódem HTTP: 401, x-ms-diagnostics: [2000001;reason="Token OAuth odeslaný v požadavku nelze analyzovat.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' 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 PowerShell pro generování přístupových tokenů, opětovně vygenerujte přístupový token, znovu aktualizujte AcquireOAuth2Token() a poté znovu sestavte nebo otestujte. 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:
- Prozkoumejte ukázku sady MIP Protection SDK C++ na GitHub.