Delen via


Quickstart: Sjablonen voor lijstbeveiliging (C++)

In deze quickstart ziet u hoe u de MIP Protection SDK gebruikt om sjablonen te beveiligen die beschikbaar zijn voor de gebruiker.

Vereisten

Als u dat nog niet hebt gedaan, moet u de volgende vereisten voltooien voordat u doorgaat:

Logica toevoegen om de beveiligingssjablonen weer te geven

Voeg logica toe om beveiligingssjablonen weer te geven die beschikbaar zijn voor een gebruiker met behulp van het beveiligingsengineobject.

  1. Open de Visual Studio-oplossing die u hebt gemaakt in het vorige artikel 'Quickstart - Initialisatie van clienttoepassing - Beveiligings-SDK (C++)'.

  2. Open met Solution Explorer het CPP-bestand in uw project dat de implementatie van de main() methode bevat. Deze wordt standaard ingesteld op dezelfde naam als het project dat het bevat, die u hebt opgegeven tijdens het maken van het project.

  3. Voeg de volgende using instructie toe na using mip::ProtectionEngine;, boven aan het bestand:

    using std::endl;
    
  4. Voeg aan het einde van de main() hoofdtekst, onder de accolade } sluiten van het laatste catch blok en hoger return 0; (waar u was gebleven in de vorige quickstart), de volgende code in:

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

Een PowerShell-script maken om toegangstokens te genereren

Gebruik het volgende PowerShell-script om toegangstokens te genereren die door de SDK in uw AuthDelegateImpl::AcquireOAuth2Token implementatie worden aangevraagd. Het script maakt gebruik van de Get-ADALToken cmdlet uit de ADAL.PS module die u eerder hebt geïnstalleerd, in 'MIP SDK Setup and configuration'.

  1. Maak een PowerShell-scriptbestand (.ps1-extensie) en kopieer/plak het volgende script in het bestand:

    • $authority en $resourceUrl worden later bijgewerkt in de volgende sectie.
    • Werk $appId bij en $redirectUri, zodat deze overeenkomt met de waarden die u hebt opgegeven in de registratie van uw Microsoft Entra-app.
    $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. Sla het scriptbestand op, zodat u het later kunt uitvoeren wanneer dit door uw clienttoepassing wordt aangevraagd.

De toepassing bouwen en testen

Ten slotte bouwt en test u uw clienttoepassing.

  1. Gebruik Ctrl+Shift+b (Build Solution) om uw clienttoepassing te bouwen. Als u geen buildfouten hebt, gebruikt u F5 (Foutopsporing starten) om uw toepassing uit te voeren.

  2. Als uw project wordt gebouwd en uitgevoerd, vraagt de toepassing om een toegangstoken, telkens wanneer de SDK uw AcquireOAuth2Token() methode aanroept. U kunt een eerder gegenereerd token opnieuw gebruiken als hierom meerdere keren wordt gevraagd en de aangevraagde waarden hetzelfde zijn:

  3. Als u een toegangstoken voor de prompt wilt genereren, gaat u terug naar uw PowerShell-script en:

    • Werk de $authority en $resourceUrl variabelen bij. Ze moeten overeenkomen met de waarden die zijn opgegeven in de console-uitvoer in stap 2.

    • Voer het PowerShell-script uit. De Get-ADALToken cmdlet activeert een Microsoft Entra-verificatieprompt, vergelijkbaar met het onderstaande voorbeeld. Geef hetzelfde account op dat is opgegeven in de console-uitvoer in stap 2. Nadat u zich hebt aangemeld, wordt het toegangstoken op het klembord geplaatst.

      Visual Studio acquire token sign-in

    • Mogelijk moet u ook toestemming geven om de toepassing toegang te geven tot de MIP-API's, terwijl deze wordt uitgevoerd onder het aanmeldingsaccount. Dit gebeurt wanneer de registratie van de Microsoft Entra-toepassing niet vooraf is toegestaan (zoals wordt beschreven in 'MIP SDK-installatie en -configuratie'), of als u zich aanmeldt met een account van een andere tenant (anders dan het account waarin uw toepassing is geregistreerd). Klik op Accepteren om uw toestemming vast te leggen.

      Visual Studio consent

  4. Nadat u het toegangstoken in de prompt van stap 2 hebt geplakt, moet in de console-uitvoer de beveiligingssjablonen worden weergegeven, vergelijkbaar met het volgende voorbeeld:

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

    Notitie

    Kopieer en sla de id van een of meer beveiligingssjablonen (bijvoorbeeld f42a3342-8706-4288-bd31-ebb85995028z) op, zoals u in de volgende quickstart gaat gebruiken.

Problemen oplossen

Problemen tijdens de uitvoering van de C++-toepassing

Samenvatting Foutbericht Oplossing
Ongeldig toegangstoken Er is een uitzondering opgetreden... Is het toegangstoken onjuist/verlopen?

Mislukte API-aanroep: profile_add_engine_async Mislukt met: [klasse mip::P olicySyncException] Kan beleid niet ophalen, aanvraag is mislukt met http-statuscode: 401, x-ms-diagnostics: [2000001; reason="OAuth token submitted with the request cannot be parsed."; error_category="invalid_token"], correlationId:[35bc0023-3727-4eff-8062-000006d5d672]'

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (proces 29924) afgesloten met code 0.

Druk op een willekeurige toets om dit venster te sluiten. . .
Als uw project is gebouwd, maar de uitvoer lijkt op de linkerkant, hebt u waarschijnlijk een ongeldig of verlopen token in uw AcquireOAuth2Token() methode. Ga terug naar Een PowerShell-script maken om toegangstokens te genereren en het toegangstoken opnieuw te genereren, AcquireOAuth2Token() opnieuw bij te werken en opnieuw te bouwen/opnieuw te testen. U kunt het token en de bijbehorende claims ook onderzoeken en controleren met behulp van de jwt.ms webtoepassing met één pagina.

Volgende stappen

Nu u hebt geleerd hoe u de beveiligingssjablonen kunt weergeven die beschikbaar zijn voor een geverifieerde gebruiker, kunt u de volgende quickstart proberen:

[Tekst versleutelen en ontsleutelen] (quick-protection-encrypt-decrypt-decrypt-text-cpp.md)