Démarrage rapide : Répertorier les étiquettes de sensibilité (C++)

Ce guide de démarrage rapide vous montre comment utiliser le Kit de développement logiciel (SDK) de fichier MIP pour répertorier les étiquettes de confidentialité configurées pour votre organisation.

Prerequisites

Si ce n’est déjà fait, veillez à remplir les conditions préalables suivantes avant de continuer :

Ajouter une logique pour répertorier les étiquettes de confidentialité

Ajoutez une logique pour répertorier les étiquettes de confidentialité de votre organisation à l’aide de l’objet du moteur de fichiers.

  1. Ouvrez la solution Visual Studio que vous avez créée dans l’article précédent « Démarrage rapide : Initialisation de l’application cliente (C++) ».

  2. Dans Explorateur de solutions, ouvrez le fichier .cpp dans votre projet qui contient l’implémentation de la main() méthode. Il a par défaut le même nom que le projet qui le contient, que vous avez spécifié lors de la création du projet.

  3. Ajoutez la directive suivante using après using mip::FileEngine;, près du haut du fichier :

    using std::endl;
    
  4. Vers la fin du corps main(), après l’accolade fermante } du dernier bloc catch et avant return 0; (où vous vous êtes arrêté dans le guide de démarrage rapide précédent), insérez le code suivant :

    // List sensitivity labels
    cout << "\nSensitivity labels for your organization:\n";
    auto labels = engine->ListSensitivityLabels();
    for (const auto& label : labels)
    {
       cout << label->GetName() << " : " << label->GetId() << endl;
    
       for (const auto& child : label->GetChildren())
       {
         cout << "->  " << child->GetName() << " : " << child->GetId() << endl;
       }
    }
    system("pause");
    

Créer un script PowerShell pour générer des jetons d’accès

Utilisez le script PowerShell suivant pour générer des jetons d’accès, qui sont demandés par le Kit de développement logiciel (SDK) dans votre AuthDelegateImpl::AcquireOAuth2Token implémentation. Le script utilise l’applet Get-MsalToken de commande à partir du module MSAL.PS que vous avez installé précédemment, dans « Configuration et configuration du SDK MIP ».

  1. Créez un fichier de script PowerShell (extension.ps1), copiez et collez le script suivant dans le fichier :

    • Mettez à jour $authority et $resourceUrl plus tard, dans la section suivante.
    • Mettez à jour $appId et $redirectUri pour faire correspondre les valeurs que vous avez spécifiées dans votre inscription d’application Microsoft Entra.
    $authority = '<authority-url>'                   # Specified when SDK calls AcquireOAuth2Token()
    $resourceUrl = '<resource-url>'                  # Specified when SDK calls AcquireOAuth2Token()
    $appId = '0edbblll-8773-44de-b87c-b8c6276d41eb'  # App ID of the Microsoft Entra app registration
    $redirectUri = 'bltest://authorize'              # 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
    
  2. Enregistrez le fichier de script pour pouvoir l’exécuter ultérieurement lorsque votre application cliente le demande.

Concevoir et tester l’application

Générez et testez votre application cliente.

  1. Utilisez F6 (Build Solution) pour générer votre application cliente. Si vous n’avez pas d’erreurs de build, utilisez F5 (Démarrer le débogage) pour exécuter votre application.

  2. Si votre projet génère et s’exécute correctement, l’application invite à entrer un jeton d’accès chaque fois que le SDK appelle votre AcquireOAuth2Token() méthode. Vous pouvez réutiliser un jeton généré précédemment si l’application invite plusieurs fois et que les valeurs demandées sont identiques.

  3. Pour générer un jeton d’accès pour l’invite, revenez à votre script PowerShell et :

    • Mettez à jour les variables $authority et $resourceUrl. Ils doivent correspondre aux valeurs spécifiées dans la sortie de la console à l’étape 2. Le SDK MIP fournit ces valeurs dans le challenge paramètre de AcquireOAuth2Token().

    • Exécutez le script PowerShell. L’applet Get-MsalToken de commande déclenche une invite d’authentification Microsoft Entra, similaire à l’exemple suivant. Spécifiez le même compte fourni dans la sortie de la console à l’étape 2. Une fois la connexion réussie, l’applet de commande place le jeton d’accès dans le Presse-papiers.

      Acquisition par Visual Studio d’une requête de connexion par jeton.

    • Vous devrez peut-être également donner son consentement pour autoriser l’application à accéder aux API MIP lors de l’exécution sous le compte de connexion. Cela se produit lorsque l’inscription de l’application Microsoft Entra n’est pas préalablement consentée (comme indiqué dans « Configuration et configuration du SDK MIP ») ou que vous vous connectez avec un compte à partir d’un autre locataire (autre que celui où votre application est inscrite). Sélectionnez Accepter pour enregistrer votre consentement.

      Visual Studio invite de consentement.

  4. Après avoir collé le jeton d’accès dans l’invite de l’étape 2, la sortie de la console doit afficher les étiquettes de confidentialité, comme dans l’exemple suivant :

    Non-Business : 87ba5c36-17cf-14793-bbc2-bd5b3a9f95cz
    Public : 83867195-f2b8-2ac2-b0b6-6bb73cb33afz
    General : f42a3342-8706-4288-bd31-ebb85995028z
    Confidential : 074e457c-5848-4542-9a6f-34a182080e7z
    Highly Confidential : f55c2dea-db0f-47cd-8520-a52e1590fb6z
    
    Press any key to continue . . .
    

    Note

    Copiez et enregistrez l’ID d’une ou de plusieurs étiquettes de confidentialité (par exemple, f42a3342-8706-4288-bd31-ebb85995028z), car vous l’utiliserez dans le guide de démarrage rapide suivant.

Résolution des problèmes

Problèmes lors de l’exécution de l’application C++

Résumé Message d'erreur Solution
Jeton d’accès incorrect Une exception s’est produite... Le jeton d’accès est-il incorrect/expiré ?

Échec de l’appel API : profile_add_engine_async a échoué avec : [class mip::PolicySyncException] Échec de l’acquisition de la stratégie, la requête a échoué avec le code d’état HTTP 401, x-ms-diagnostics : [2000001;reason="Le jeton OAuth envoyé avec la requête ne peut pas être analysé.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (processus 29924) quitté avec le code 0.

Appuyez sur n’importe quelle touche pour fermer cette fenêtre. . .
Si votre projet est correctement généré, mais que la sortie est similaire à l’exemple à gauche, il est probable que le jeton dans votre méthode AcquireOAuth2Token() soit non valable ou qu'il ait expiré. Revenez à créer un script PowerShell pour générer des jetons d’accès et régénérer le jeton d’accès, le mettre à jour AcquireOAuth2Token() à nouveau et regénérer/retester. Vous pouvez également examiner et vérifier le jeton et ses revendications à l’aide de l’application web monopage jwt.ms .
Les étiquettes de confidentialité ne sont pas configurées n/a Si votre projet se compile correctement, mais qu’aucune sortie n’apparaît dans la fenêtre de la console, assurez-vous que les étiquettes de confidentialité de votre organisation sont correctement configurées. Pour plus d’informations, consultez configuration et configuration du SDK MIP, sous « Définir les paramètres de taxonomie et de protection des étiquettes ».

Étapes suivantes

Maintenant que vous savez comment répertorier les étiquettes de confidentialité pour votre organisation, essayez le guide de démarrage rapide suivant :