Compartilhar via


SDK de Proteção de Informações da Microsoft – Conceitos do mecanismo de SDK de Proteção

Implementação: adicionar um mecanismo de proteção

No SDK de Arquivo, a mip::ProtectionProfile classe é a classe raiz para todas as operações do SDK. Já tendo criado o perfil, agora podemos adicionar um mecanismo ao perfil.

O exemplo a seguir demonstra o uso de um único mecanismo para um único usuário autenticado.

Implementação: criar configurações do mecanismo de proteção

Semelhante a um perfil, o mecanismo também requer um objeto de configurações. mip::ProtectionEngine::Settings Esse objeto armazena o identificador exclusivo do mecanismo, os dados personalizáveis do cliente que podem ser usados para depuração ou telemetria e, opcionalmente, a localidade.

Aqui, criamos um ProtectionEngine::Settings objeto chamado engineSettings.

ProtectionEngine::Settings engineSettings("UniqueID", "");

Observação

Se estiver usando esse método para criar o objeto de configurações de proteção, você também deverá definir manualmente a identidade em ProtectionEngineSettings usando setIdentity() ou definir o ambiente de nuvem de destino usando setCloud().

Como prática recomendada, o primeiro parâmetro, id, deve ser algo que permita que o mecanismo seja facilmente conectado ao usuário associado ou a um mip::Identity objeto. Para inicializar as configurações com mip::Identity:

ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com", "");

Ao criar engineSettings dessa maneira, é importante também definir explicitamente uma engineId exclusiva por meio de:

engineSettings.SetEngineId(engineId);

O uso do nome de usuário ou email ajuda a garantir que o mesmo mecanismo seja carregado sempre que o usuário usar o serviço ou o aplicativo.

Implementação: Adicionar o Mecanismo de Proteção

Para adicionar o mecanismo, voltaremos ao padrão futuro/promessa usado para carregar o perfil. Em vez de criar a promessa para mip::ProtectionProfile, usaremos mip::ProtectionEngine.


  //auto profile will be std::shared_ptr<mip::ProtectionProfile>
  auto profile = profileFuture.get();

  //Create the ProtectionEngine::Settings object
  ProtectionEngine::Settings engineSettings("UniqueID", "");

  //Create a promise for std::shared_ptr<mip::ProtectionEngine>
  auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::ProtectionEngine>>>();

  //Instantiate the future from the promise
  auto engineFuture = enginePromise->get_future();

  //Add the engine using AddEngineAsync, passing in the engine settings and the promise
  profile->AddEngineAsync(engineSettings, enginePromise);

  //get the future value and store in std::shared_ptr<mip::ProtectionEngine>
  auto engine = engineFuture.get();

O resultado final do código acima é que adicionamos com êxito um mecanismo para o usuário autenticado ao perfil.

Implementação: listar modelos

Usando o mecanismo adicionado, agora é possível listar todos os modelos de confidencialidade disponíveis para o usuário autenticado chamando engine->GetTemplatesAsync().

GetTemplatesAsync() buscará a lista de identificadores de modelos. O resultado é armazenado em um vetor de std::shared_ptr<std::string>.

Implementação: ListSensitivityTemplates()

auto loadPromise = std::make_shared<std::promise<shared_ptr<vector<string>>>>();
std::future<std::shared_ptr<std::vector<std::string>>> loadFuture = loadPromise->get_future();
mEngine->GetTemplatesAsync(engineObserver, loadPromise);
auto templates = loadFuture.get();

Implementação: imprimir as IDs do modelo

//Iterate through all template IDs in the vector
for (const auto& temp : *templates) {
  cout << "Template:" << "\n\tId: " << temp << endl;
}

A impressão dos nomes é uma maneira fácil de mostrar que retiramos com êxito a política do serviço e conseguimos obter os modelos. Para aplicar o modelo, o identificador de modelo é necessário.

O mapeamento de modelos para rótulos só pode ser feito por meio do SDK de política, examinando o resultado de ComputeActions().

Próximas etapas

Agora que o perfil de usuário está carregado, o mecanismo foi adicionado e temos esquemas, podemos incluir um manipulador para começar a ler, escrever ou excluir esquemas de arquivos. Consulte Conceitos do manipulador de proteção.