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:
- Conclua primeiro o Guia de início rápido: inicialização de aplicativo cliente (C++), que compila uma solução inicial do Visual Studio. Esse início rápido "Listar rótulos de confidencialidade" se baseia no anterior, referente à criação correta da solução de inicializador.
- Como alternativa: examine os conceitos de rótulos de classificação.
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.
Abra a solução do Visual Studio que você criou no artigo anterior "Início rápido: inicialização do aplicativo cliente (C++)".
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.Adicione a seguinte diretiva
using
apósusing mip::FileEngine;
, próximo à parte superior do arquivo:using std::endl;
Até o fim do corpo
main()
, embaixo do colchete de fechamento}
do último blococatch
e acima dereturn 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".
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
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.
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.
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.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âmetrochallenge
deAcquireOAuth2Token()
: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.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.
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: