Microsoft Information Protection SDK - Conceitos do motor do SDK de Proteção

Implementação: Adicionar um motor de proteção

No File SDK, a mip::ProtectionProfile classe é a classe raiz para todas as operações do SDK. Depois de criar o perfil, pode adicionar um motor ao perfil.

O exemplo seguinte demonstra como usar um único motor para um único utilizador autenticado.

Implementação: Criar definições do motor de proteção

Semelhante a um perfil, o motor também requer um objeto de definições, mip::ProtectionEngine::Settings. Este objeto armazena o identificador único do motor, dados personalizáveis do cliente que pode usar para depuração ou telemetria e, opcionalmente, a localização.

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

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

Note

Se criar o objeto de definição de proteção com este método, defina também a identidade em ProtectionEngineSettings usando setIdentity() ou no ambiente cloud de destino usando setCloud().

Como boa prática, use o primeiro parâmetro, id, para identificar o utilizador associado, ou use um mip::Identity objeto. Para inicializar as definições com mip::Identity:

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

Quando crias engineSettings desta forma, define também explicitamente um engineId único ao usar:

engineSettings.SetEngineId(engineId);

Use o nome de utilizador ou email para ajudar a garantir que o motor carrega de forma consistente sempre que o utilizador utiliza o serviço ou aplicação.

Implementação: Adicionar o motor de proteção

Usa o padrão de futuro/promessa usado para carregar o perfil e adicionar o motor. 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", "");

  //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 motor para o utilizador autenticado ao perfil.

Implementação: Modelos de lista

Depois de adicionar o motor, pode listar todos os modelos de sensibilidade disponíveis para o utilizador autenticado chamando engine->GetTemplatesAsync().

GetTemplatesAsync() obtém a lista de identificadores de modelo. O método armazena o resultado num 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 os IDs do modelo

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

Imprimir os nomes mostra que a aplicação conseguiu retirar a política do serviço e recuperar os modelos. Para aplicar o modelo, precisa do identificador do modelo.

Pode mapear modelos para rótulos apenas através do Policy SDK, examinando o resultado de ComputeActions().

Passos seguintes

Agora que carregaste o perfil, adicionaste o motor e tens templates, podes adicionar um handler para começar a ler, escrever ou remover templates de ficheiros. Ver conceitos de manipulador de proteção.