Share via


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

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

Pré-requisitos

Conclua os seguintes pré-requisitos antes de continuar, caso ainda não tenha feito isso:

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 anterior "Início rápido: inicialização do aplicativo cliente (C++)".

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

  3. Adicione a seguinte diretiva using após using mip::FileEngine;, próximo à 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 na sua implementação de AuthDelegateImpl::AcquireOAuth2Token. O script usa o cmdlet Get-ADALToken do módulo ADAL.PS que você instalou anteriormente, em "Configuração e instalação do SDK da PIM".

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

    • $authority e $resourceUrl são atualizados mais tarde, na seção a seguir.
    • Atualize $appId e $redirectUri para que correspondam aos valores especificados por você no registro do seu aplicativo do 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 poder executá-lo posteriormente quando solicitado pelo aplicativo cliente.

Criar e testar o aplicativo

Por fim, crie e teste o seu aplicativo cliente.

  1. Use F6 (Compilar solução) para compilar o aplicativo cliente. Se não houver erros de build, use F5 (Iniciar depuração) para executar o aplicativo.

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

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

    • Atualize as variáveis $authority e $resourceUrl. Elas devem corresponder aos valores especificados na saída do console na etapa 2. Esses valores são fornecidos pelo SDK da MIP no parâmetro challenge de AcquireOAuth2Token():

    • Execute o script do PowerShell. O cmdlet Get-ADALToken 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 2. Após uma conexão bem-sucedida, o token de acesso será colocado na área de transferência.

      Visual Studio acquire token sign-in

    • 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 ocorre quando o registro de aplicativo do Microsoft Entra não tem consentimento prévio (conforme descrito em "Configuração e instalação do SDK da PIM") ou quando você está se conectando usando a conta de outro locatário (diferente daquele em que seu aplicativo está registrado). Basta clicar em Aceitar para registrar seu consentimento.

      Visual Studio consent

  4. Após colar o token de acesso no prompt da etapa 2, sua saída de console deverá mostrar os rótulos de confidencialidade, de modo semelhante ao seguinte do exemplo:

    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.

Solução de problemas

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

Resumo Mensagem de erro Solução
Token de acesso inválido 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) saiu com o código 0.

Pressione qualquer tecla para fechar essa 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 gere novamente o token de acesso, atualize AcquireOAuth2Token() outra vez e recompile/teste de novo. Você também pode examinar e verificar o token e suas declarações usando o aplicativo Web de página única jwt.ms.
Os rótulos de confidencialidade não estão configurados N/D Se o projeto for compilado com sucesso, mas não houver saída na janela do console, verifique se os rótulos de confidencialidade da sua organização estão configurados corretamente. Confira Configuração e instalação do SDK da PIM, em "Definir configurações de taxonomia e proteção do 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: