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. Depois de criar o perfil, você pode adicionar um mecanismo ao perfil.

O exemplo a seguir demonstra como usar 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, o mip::AuthDelegate usado para adquirir tokens, dados de cliente personalizáveis que você pode usar para depuração ou telemetria e, opcionalmente, a localidade.

O código a seguir cria um ProtectionEngine::Settings objeto chamado engineSettings.

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

Observação

Se você criar o objeto de configurações de proteção com esse método, também defina a identidade no ProtectionEngine::Settings objeto usando SetIdentity() ou o ambiente de nuvem de destino usando SetCloud().

Como prática recomendada, use o primeiro parâmetro, a ID, para identificar o usuário associado ou usar um mip::Identity objeto. Para inicializar as configurações com mip::Identity:

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

Ao criar engineSettings dessa forma, também defina explicitamente uma engineId exclusiva usando:

engineSettings.SetEngineId(engineId);

Use o nome de usuário ou o email para ajudar a garantir que o mecanismo seja carregado consistentemente sempre que o usuário usar o serviço ou o aplicativo.

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

Use o padrão futuro/promessa usado para carregar o perfil para adicionar o mecanismo. Em vez de criar a promessa para mip::ProtectionProfile, use mip::ProtectionEngine.


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

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

  //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 código adiciona um mecanismo para o usuário autenticado ao perfil.

Implementação: listar modelos

Depois de adicionar o mecanismo, você pode listar todos os modelos de sensibilidade disponíveis ao usuário autenticado chamando engine->GetTemplatesAsync().

GetTemplatesAsync() busca a lista de descritores de modelo. O método armazena o resultado em um vetor de std::shared_ptr<mip::TemplateDescriptor>.

Implementação: ListSensitivityTemplates()

auto loadPromise = std::make_shared<std::promise<std::vector<std::shared_ptr<mip::TemplateDescriptor>>>>();
auto loadFuture = loadPromise->get_future();
engine->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->GetId() << endl;
}

Imprimir os nomes mostra que o aplicativo retirou a política com êxito do serviço e recuperou os modelos. Para aplicar o modelo, você precisa do identificador de modelo.

Você pode mapear modelos para rótulos somente por meio do SDK de Política examinando o resultado de ComputeActions().

Próximas Etapas 

Agora que você carregou o perfil, adicionou o mecanismo e tem templates, pode adicionar um manipulador para começar a ler, gravar ou remover templates dos arquivos. Consulte Conceitos do manipulador de proteção.