Partilhar via


Guia de início rápido: modelos de proteção de lista (C++)

Este Guia de início rápido mostra como usar o SDK de proteção MIP para modelos de proteção disponíveis para o usuário.

Pré-requisitos

Se ainda não o fez, certifique-se de que preenche os seguintes pré-requisitos antes de continuar:

Adicionar lógica para listar os modelos de proteção

Adicione lógica à lista de modelos de proteção disponíveis para um usuário, usando o objeto Mecanismo de proteção.

  1. Abra a solução Visual Studio que você criou no artigo anterior "Guia de início rápido - inicialização do aplicativo cliente - SDK de proteção (C++)".

  2. Usando o Gerenciador de Soluções, abra o arquivo de .cpp em seu projeto que contém a main() implementação do método. O 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 após using mip::ProtectionEngine;, perto da parte superior do arquivo:

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

     // List protection templates
     const shared_ptr<ProtectionEngineObserver> engineObserver = std::make_shared<ProtectionEngineObserver>();
     // Create a context to pass to 'ProtectionEngine::GetTemplateListAsync'. That context will be forwarded to the
     // corresponding ProtectionEngine::Observer methods. In this case, we use promises/futures as a simple way to detect
     // the async operation completes synchronously.
     auto loadPromise = std::make_shared<std::promise<vector<shared_ptr<mip::TemplateDescriptor>>>>();
     std::future<vector<shared_ptr<mip::TemplateDescriptor>>> loadFuture = loadPromise->get_future();
     engine->GetTemplatesAsync(engineObserver, loadPromise);
     auto templates = loadFuture.get();
    
     cout << "*** Template List: " << endl;
    
     for (const auto& protectionTemplate : templates) {
         cout << "Name: " << protectionTemplate->GetName() << " : " << protectionTemplate->GetId() << endl;
     }
    
    

Criar um script do PowerShell para gerar tokens de acesso

Use o seguinte script do PowerShell para gerar tokens de acesso, que são solicitados pelo SDK em sua AuthDelegateImpl::AcquireOAuth2Token implementação. O script usa o Get-ADALToken cmdlet do módulo ADAL.PS instalado anteriormente, em "MIP SDK Setup and configuration".

  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 registo da aplicação Microsoft Entra.
    $authority = '<authority-url>'                   # Specified when SDK calls AcquireOAuth2Token()
    $resourceUrl = '<resource-url>'                  # Specified when SDK calls AcquireOAuth2Token()
    $appId = '<app-ID>'                              # App ID of the Azure AD app registration
    $redirectUri = '<redirect-uri>'                  # 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 seu aplicativo cliente.

Crie e teste o aplicativo

Finalmente, crie e teste seu aplicativo cliente.

  1. Use Ctrl+Shift+b (Build Solution) para criar seu aplicativo cliente. Se você não tiver erros de compilação, 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 $authority variáveis e $resourceUrl . Eles devem corresponder aos valores especificados na saída do console na etapa #2.

    • Execute o script do PowerShell. O Get-ADALToken cmdlet aciona 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 o login bem-sucedido, o token de acesso será colocado na área de transferência.

      Visual Studio acquire token sign-in

    • Você também pode precisar dar consentimento, para permitir que o aplicativo acesse as APIs MIP, enquanto estiver sendo executado sob a conta de login. Isso acontece quando o registro do aplicativo Microsoft Entra não é pré-consentido (conforme descrito em "Instalação e configuração do MIP SDK") ou quando você está entrando com uma conta de um locatário diferente (diferente daquele em que seu aplicativo está registrado). Basta clicar em Aceitar para registar o seu consentimento.

      Visual Studio consent

  4. Depois de colar o token de acesso no prompt da etapa #2, a saída do console deve mostrar os modelos de proteção, semelhante ao exemplo a seguir:

    *** Template List:
    Name: Confidential \ All Employees : a74f5027-f3e3-4c55-abcd-74c2ee41b607
    Name: Highly Confidential \ All Employees : bb7ed207-046a-4caf-9826-647cff56b990
    Name: Confidential : 174bc02a-6e22-4cf2-9309-cb3d47142b05
    Name: Contoso Employees Only : 667466bf-a01b-4b0a-8bbf-a79a3d96f720
    
    C:\MIP Sample Apps\ProtectionQS\Debug\ProtectionQS.exe (process 8252) exited with code 0.
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    
    Press any key to continue . . .
    

    Nota

    Copie e salve a ID de um ou mais modelos de proteção (por exemplo, f42a3342-8706-4288-bd31-ebb85995028z), como você usará no próximo Guia de 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 de API: profile_add_engine_async Falha com: [class mip::P olicySyncException] Falha na aquisição da política, Falha na solicitação com 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:[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 esta janela. . .
Se o seu projeto é compilado com êxito, mas você vê uma saída semelhante à esquerda, você provavelmente tem um token inválido ou expirado em seu AcquireOAuth2Token() método. Volte para Criar um script do PowerShell para gerar tokens de acesso e regenerar o token de acesso, atualizar AcquireOAuth2Token() novamente e reconstruir/testar. Você também pode examinar e verificar o token e suas declarações, usando o jwt.ms aplicativo Web de página única.

Passos Seguintes

Agora que você aprendeu como listar os modelos de proteção disponíveis para um usuário autenticado, tente o próximo início rápido:

[Encriptar e desencriptar texto] (quick-protection-encrypt-decrypt text-cpp.md)