Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här snabbstarten visar hur du använder MIP Protection SDK för att lista skyddsmallar som är tillgängliga för användaren.
Förutsättningar
Slutför följande förutsättningar innan du fortsätter:
- Slutför snabbstart – Initiering av klientprogram – Protection SDK (C++) först, som skapar en Visual Studio-startlösning. Den här snabbstarten ”Lista skyddsmallar” bygger på den föregående snabbstarten för att startlösningen ska skapas korrekt.
- Valfritt: Granska begrepp för RMS-mallar .
Lägg till logik för att lista skyddsmallarna
Lägg till logik för att lista skyddsmallar som är tillgängliga för en användare med hjälp av objektet Skyddsmotor.
Öppna Visual Studio-lösningen som du skapade i föregående artikel "Snabbstart – Initiering av klientprogram – Skydds-SDK (C++)."
I Prieskumník riešení öppnar du filen .cpp i projektet som innehåller implementeringen av
main()metoden. Det är som standard samma namn som det projekt som innehåller det, som du angav när projektet skapades.Lägg till följande
usingdirektiv efterusing mip::ProtectionEngine;, nära toppen av filen:using std::endl;Mot slutet av brödtexten
main(), under den avslutande klammerparentesen}för det sistacatchblocket och ovanreturn 0;(där du slutade i föregående snabbstart), infogar du följande kod:// 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; }
Skapa ett PowerShell-skript för att generera åtkomsttoken
Använd följande PowerShell-skript för att generera åtkomsttoken som SDK begär i implementeringen AuthDelegateImpl::AcquireOAuth2Token . Skriptet använder cmdleten Get-MsalToken från MSAL.PS-modulen som du installerade tidigare, i "MIP SDK-konfiguration".
Skapa en PowerShell-skriptfil (.ps1-tillägget) och kopiera och klistra in följande skript i filen:
-
$authorityoch$resourceUrluppdateras senare i följande avsnitt. - Uppdatera
$appIdoch$redirectUriså att de matchar de värden som du angav i appregistreringen i 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 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-
Spara skriptfilen så att du kan köra den senare, när det begärs av klientprogrammet.
Skapa och testa programmet
Skapa och testa klientprogrammet.
Använd Ctrl+Skift+B (bygglösning) för att skapa klientprogrammet. Om versionen inte har några fel använder du F5 (Starta felsökning) för att köra programmet.
Om projektet byggs och körs utan problem uppmanar applikationen dig att ange en åtkomsttoken varje gång SDK:t anropar din
AcquireOAuth2Token()-metod. Du kan återanvända en tidigare genererad token om du uppmanas till det flera gånger och de begärda värdena är desamma:Om du vill generera en åtkomsttoken för prompten går du tillbaka till ditt PowerShell-skript och:
Uppdatera variablerna
$authorityoch$resourceUrl. De måste matcha de värden som anges i konsolens utdata i steg 2.Kör PowerShell-skriptet. Cmdleten
Get-MsalTokenutlöser en Microsoft Entra autentiseringsprompt, ungefär som i följande exempel. Ange samma konto som anges i konsolens utdata i steg 2. Efter en lyckad inloggning placerar PowerShell åtkomsttokenen i urklippet.Du kan också behöva ge medgivande för att programmet ska få åtkomst till MIP-API:erna när det körs under inloggningskontot. Detta inträffar när Microsoft Entra-programregistreringen inte har godkänts i förväg (enligt beskrivningen i "MIP SDK-konfiguration" eller om du loggar in med ett konto från en annan klientorganisation (förutom den där ditt program är registrerat). Välj Acceptera för att registrera ditt medgivande.
När du har klistrat in åtkomsttoken i kommandotolken från steg 2 bör konsolens utdata visa skyddsmallarna, ungefär som i följande exempel:
*** 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 . . .Anmärkning
Kopiera och spara ID:t för en eller flera av skyddsmallarna (till exempel
f42a3342-8706-4288-bd31-ebb85995028z), när du använder det i nästa snabbstart.
Felsökning
Problem vid körning av C++-program
| Sammanfattning | Felmeddelande | Lösning |
|---|---|---|
| Felaktig åtkomsttoken |
Ett undantag inträffade... är åtkomsttoken felaktig/har upphört att gälla? API-anrop misslyckades: profile_add_engine_async Misslyckades med: [class mip::PolicySyncException] Det gick inte att hämta principen, begäran misslyckades med HTTP-statuskod: 401, x-ms-diagnostics: [2000001;reason="OAuth-token som skickades med begäran kan inte tolkas.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]' C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (process 29924) avslutades med kod 0. Tryck på valfri tangent för att stänga det här fönstret . . . |
Om projektet byggs framgångsrikt, men du ser utdata som liknar det till vänster, har du troligtvis en ogiltig eller förfallen token i din AcquireOAuth2Token() metod. Gå tillbaka till Skapa ett PowerShell-skript för att generera åtkomsttoken och återskapa åtkomsttoken, uppdatera AcquireOAuth2Token() igen och återskapa/testa igen. Du kan också undersöka och verifiera token och dess saker med hjälp av jwt.ms webbapplikation med en sida. |
Nästa steg
Nu när du har lärt dig hur du listar de skyddsmallar som är tillgängliga för en autentiserad användare kan du prova nästa snabbstart:
- Utforska MIP Protection SDK C++-exemplet på GitHub.