Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
- Conclua primeiro o Guia de início rápido - Inicialização do aplicativo cliente - SDK de proteção (C++), que cria uma solução inicial do Visual Studio. Este "Início Rápido - Lista de modelos de proteção" depende do anterior para criar adequadamente a solução inicial.
- Opcionalmente: Reveja os conceitos de Modelos do RMS .
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 do mecanismo de proteção.
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++)".
Usando o Gerenciador de Soluções, abra o arquivo de .cpp em seu projeto que contém a
main()implementação do método. Por padrão, é atribuído o mesmo nome do projeto que o acolhe, que você especificou durante a criação do projeto.Adicione a seguinte
usingdiretiva apósusing mip::ProtectionEngine;, perto da parte superior do arquivo:using std::endl;Perto do final do corpo
main(), abaixo da chave}de fechamento do últimocatchbloco e acima dereturn 0;(onde você parou no guia de 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, na secção "Configuração e instalação do MIP SDK".
Crie um arquivo de script do PowerShell (extensão.ps1) e copie/cole o seguinte script no arquivo:
-
$authoritye$resourceUrlsão atualizados posteriormente, na seção a seguir. - Atualize
$appIde$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-
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.
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.
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:Para gerar um token de acesso para o prompt, volte para o script do PowerShell e:
Atualize as
$authorityvariáveis e$resourceUrl. Eles devem corresponder aos valores especificados na saída do console na etapa #2.Execute o script do PowerShell. O
Get-ADALTokencmdlet 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 início de sessão bem-sucedido, o token de acesso será colocado na área de transferência.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.
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 . . .Observação
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.
Soluçã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 de API falhada: profile_add_engine_async falhou com: [class mip::PolicySyncException] Falha na obtenção da política, Solicitação falhada 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 teu projeto for compilado com êxito, mas surgir um resultado semelhante ao da esquerda, é provável que exista um token inválido ou expirado no teu método AcquireOAuth2Token().
Volte para Criar um script do PowerShell para gerar tokens de acesso, regenere o token de acesso, atualize AcquireOAuth2Token() novamente e reconstrua/teste. Você também pode examinar e verificar o token e suas declarações, usando o jwt.ms aplicativo Web de página única. |
Próximos passos
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)