Compartilhar via


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

Este Início Rápido mostra como usar o SDK de Arquivo 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 de 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. Usando o 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. Até o fim do corpo main(), embaixo do colchete de fechamento } do último bloco catch e acima de return 0; (no ponto em que 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-ADALToken do módulo ADAL.PS instalado anteriormente, em "Instalação e configuração do SDK do MIP".

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

    • $authority e $resourceUrl são atualizados posteriormente, na seção a seguir.
    • Atualize $appId e $redirectUri para corresponder aos valores especificados no registro do seu aplicativo 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 Azure AD app registration
    $redirectUri = 'bltest://authorize'              # 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. Salve o arquivo de script para que você possa executá-lo mais tarde, quando solicitado pelo aplicativo cliente.

Criar e testar o aplicativo

Por fim, crie e teste seu aplicativo cliente.

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

  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 solicitado 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 nº 2. Os valores no parâmetro challenge de AcquireOAuth2Token() são fornecidos pelo SDK do MIP.

    • Execute o script do PowerShell. O Get-ADALToken cmdlet dispara um prompt de autenticação do Microsoft Entra, semelhante ao exemplo abaixo. Especifique a mesma conta fornecida na saída do console na etapa nº 2. Após uma conexão bem-sucedida, o token de acesso será colocado na área de transferência.

      Credenciais do token de aquisição do Visual Studio

    • Talvez você também precise dar consentimento para permitir que o aplicativo acesse as APIs da PIM, enquanto estiver em execução na conta de entrada. 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). Basta clicar em Aceitar para registrar seu consentimento.

      Consentimento do Visual Studio

  4. Depois de colar o token de acesso no prompt da etapa nº 2, a saída do console deve mostrar os rótulos de sensibilidade, semelhantes ao 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 rótulos de confidencialidade (por exemplo, f42a3342-8706-4288-bd31-ebb85995028z), pois 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?

Chamada à API com falha: profile_add_engine_async falhou com: [class mip::PolicySyncException] Falha na aquisição de política, Falha na solicitação com o código de status http: 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 (processo 29924) foi encerrado com o código 0.

Pressione qualquer tecla para fechar esta janela. . .
Se o projeto foi compilado com sucesso, mas você viu uma saída semelhante à da esquerda, provavelmente você tem um token inválido ou expirado em seu método AcquireOAuth2Token(). 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 êxito, mas você não tiver saída na janela do console, certifique-se de que as etiquetas de sensibilidade da sua organização estejam configuradas corretamente. Consulte a configuração e a configuração do SDK do MIP em "Definir configurações de proteção e taxonomia de rótulo" para obter detalhes.

Próximas etapas

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