Início rápido: listar rótulos de confidencialidade (C++)

Este guia de início rápido mostra como usar o SDK de Arquivos do MIP para listar os rótulos de confidencialidade configurados para sua organização.

Pré-requisitos

Caso ainda não tenha feito isso, certifique-se de concluir os seguintes pré-requisitos antes de continuar:

Adicionar lógica para listar os rótulos de confidencialidade

Adicione lógica para listar os rótulos de confidencialidade da sua organização usando o objeto do mecanismo de arquivo.

  1. Abra a solução do Visual Studio que você criou no artigo "Início Rápido: Inicialização do aplicativo cliente (C++)" anterior.

  2. Em Gerenciador de Soluções, abra o arquivo .cpp em seu projeto que contém a implementação do main() método. Ele usa como padrão o mesmo nome do projeto que o contém, que você especificou durante a criação do projeto.

  3. Adicione a seguinte using diretiva depois using mip::FileEngine;, perto da parte superior do arquivo:

    using std::endl;
    
  4. No final do main() corpo, após a chave } de fechamento do último catch bloco e antes return 0; (de onde você parou no início rápido anterior), insira o seguinte código:

    // 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");
    

Criar um script do PowerShell para gerar tokens de acesso

Use o script do PowerShell a seguir para gerar tokens de acesso, que são solicitados pelo SDK em sua AuthDelegateImpl::AcquireOAuth2Token implementação. O script usa o cmdlet Get-MsalToken do módulo MSAL.PS que você instalou anteriormente, em "Configuração e instalação do SDK da MIP".

  1. Crie um arquivo de script do PowerShell ( extensão.ps1) e copie e cole o seguinte script no arquivo:

    • Atualize $authority e $resourceUrl posteriormente, na seção a seguir.
    • Atualize $appId e $redirectUri para corresponder aos valores especificados no registro do seu aplicativo no 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. Salve o arquivo de script para que você possa executá-lo mais tarde quando o aplicativo cliente o solicitar.

Criar e testar o aplicativo

Crie e teste seu aplicativo cliente.

  1. Use F6 (Build Solution) para criar seu aplicativo cliente. Se você não tiver erros de compilação, use F5 (Iniciar depuração) para executar sua aplicação.

  2. Se o projeto for compilado e executado com êxito, o aplicativo solicitará um token de acesso sempre que o SDK chamar seu AcquireOAuth2Token() método. Você pode reutilizar um token gerado anteriormente se o aplicativo solicitar várias vezes e os valores solicitados forem os mesmos.

  3. Para gerar um token de acesso para o prompt, volte para o script do PowerShell e:

    • Atualize as variáveis $authority e $resourceUrl. Eles devem corresponder aos valores especificados na saída do console na etapa 2. O SDK do MIP fornece esses valores no parâmetro challenge de AcquireOAuth2Token().

    • Execute o script do PowerShell. O Get-MsalToken cmdlet dispara um prompt de autenticação Microsoft Entra, semelhante ao exemplo a seguir. Especifique a mesma conta fornecida na saída do console na etapa 2. Após iniciar sessão com êxito, o cmdlet copia o token de acesso para a área de transferência.

      Prompt de login do token de aquisição do Visual Studio.

    • Talvez você também precise conceder consentimento para permitir que o aplicativo acesse as APIs do MIP enquanto estiver em execução na conta usada para fazer login. Isso acontece quando o registro de aplicativo do Microsoft Entra não é pré-consentido (conforme descrito em "Configuração e configuração do SDK do MIP"), ou você está entrando com uma conta de um locatário diferente (diferente daquela em que seu aplicativo está registrado). Selecione Aceitar para registrar seu consentimento.

      Visual Studio aviso de consentimento.

  4. Depois de colar o token de acesso no prompt da etapa 2, a saída do console deve mostrar os rótulos de confidencialidade, como no exemplo a seguir:

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

    Observação

    Copie e salve a ID de um ou mais dos rótulos de confidencialidade (por exemplo), f42a3342-8706-4288-bd31-ebb85995028zporque você a usará no próximo início rápido.

Resolução de problemas

Problemas durante a execução do aplicativo C++

Resumo Mensagem de erro Solução
Token de acesso incorreto Ocorreu uma exceção... O token de acesso está incorreto/expirado?

Falha na chamada da API: profile_add_engine_async falhou com: [classe mip::PolicySyncException] Falha ao obter a política, a solicitação falhou com o código de status HTTP: 401, x-ms-diagnostics: [2000001;reason="O token OAuth enviado com a solicitação não pode ser analisado.";error_category="invalid_token"], correlationId:[aaaa0000-bb11-2222-33cc-444444dddddd]"

C:\VSProjects\MipDev\Quickstarts\AppInitialization\x64\Debug\AppInitialization.exe (processo 29924) foi encerrado com o código 0.

Pressione qualquer tecla para fechar esta janela. . .
Se o seu projeto for compilado com sucesso, mas você vir uma saída semelhante à mostrada à esquerda, o token no método AcquireOAuth2Token() provavelmente é inválido ou está expirado. Volte para Criar um script do PowerShell para gerar tokens de acesso e regenerar o token de acesso, atualizar AcquireOAuth2Token() novamente e recompilar/retestir. Você também pode examinar e verificar o token e suas declarações usando o jwt.ms aplicativo Web de página única.
Os rótulos de confidencialidade não estão configurados n/a Se o projeto for compilado com sucesso, mas nenhuma saída for exibida na janela do console, verifique se os rótulos de confidencialidade da sua organização estão configurados corretamente. Para obter detalhes, consulte configuração e configuração do SDK do MIP em "Definir configurações de proteção e taxonomia de rótulo".

Próximas Etapas 

Agora que você sabe como listar os rótulos de confidencialidade da sua organização, experimente o próximo guia de início rápido: