Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O mip::FileEngine no SDK de Arquivo MIP fornece uma interface para todas as operações executadas em nome de uma identidade especificada. Adicione um mecanismo para cada usuário que fizer login no aplicativo. O mecanismo executa todas as operações no contexto dessa identidade.
Ele FileEngine tem duas responsabilidades principais: listar rótulos para um usuário autenticado e criar manipuladores de arquivos para executar operações de arquivo em nome do usuário.
mip::FileEngine-
ListSensitivityLabels(): obtém a lista de rótulos para o mecanismo carregado. -
CreateFileHandler(): cria ummip::FileHandlerpara um arquivo ou fluxo específico.
Adicionar um mecanismo de arquivo
Conforme abordado em objetos de perfil e mecanismo, um mecanismo pode ter dois estados - CREATED ou LOADED. Se não for um desses dois estados, ele não existe. Para criar e carregar um estado, faça uma única chamada para FileProfile::LoadAsync. Se o mecanismo já existir no estado armazenado em cache, ele será LOADED. Se não existir, é CREATED e LOADED.
CREATED significa que a aplicação tem todas as informações necessárias do serviço para carregar o motor.
LOADED implica que todas as estruturas de dados necessárias para usar o mecanismo existem na memória.
Criar configurações do mecanismo de arquivo
Semelhante a um perfil, o mecanismo também requer um objeto de configurações, mip::FileEngine::Settings. Esse objeto armazena o identificador exclusivo do mecanismo, a mip::AuthDelegate implementação, os dados personalizáveis do cliente para depuração ou telemetria e, opcionalmente, a localidade.
Aqui, criamos um objeto FileEngine::Settings denominado engineSettings usando a identidade do usuário do aplicativo.
FileEngine::Settings engineSettings(
mip::Identity(mUsername), // mip::Identity.
authDelegateImpl, // auth delegate object
"", // Client data. Customizable by developer, stored with engine.
"en-US", // Locale.
false); // Load sensitive information types for driving classification.
Ao criar engineSettings dessa maneira, também defina explicitamente uma engineId exclusiva:
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.
Também é válido fornecer uma ID de mecanismo personalizador:
FileEngine::Settings engineSettings(
"myEngineId", // string
authDelegateImpl, // auth delegate object
"", // Client data in string format. Customizable by developer, stored with engine.
"en-US", // Locale. Default is en-US
false); // Load sensitive information types for driving classification. Default is false.
Como prática recomendada, use um primeiro parâmetro, id, que conecta o mecanismo ao usuário associado. Um endereço de e-mail, UPN ou GUID do objeto do Microsoft Entra ajuda a garantir que o identificador seja exclusivo e possa ser carregado do estado local sem chamar o serviço.
Adicionar o mecanismo de arquivo
Para adicionar o mecanismo, retorne ao padrão promise/future usado para carregar o perfil. Em vez de criar a promessa para mip::FileProfile, crie-a usando mip::FileEngine.
//auto profile will be std::shared_ptr<mip::FileProfile>
auto profile = profileFuture.get();
// Instantiate the AuthDelegate implementation.
auto authDelegateImpl = std::make_shared<sample::auth::AuthDelegateImpl>(appInfo, userName, password);
//Create the FileEngine::Settings object
FileEngine::Settings engineSettings("UniqueID", authDelegateImpl, "");
//Create a promise for std::shared_ptr<mip::FileEngine>
auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::FileEngine>>>();
//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::FileEngine>
auto engine = engineFuture.get();
O código adiciona o mecanismo do usuário autenticado ao perfil.
Listar rótulos de confidencialidade
Usando o mecanismo adicionado, você pode listar todos os rótulos de confidencialidade disponíveis para o usuário autenticado chamando engine->ListSensitivityLabels().
ListSensitivityLabels() busca a lista de rótulos e atributos desses rótulos para um usuário específico do serviço. O resultado é armazenado em um vetor de std::shared_ptr<mip::Label>.
Para obter mais informações, consulte a mip::Labelreferência da classe.
ListarEtiquetasdeSensibilidade()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Ou, simplificando:
auto labels = engine->ListSensitivityLabels();
Imprimir rótulos e IDs
Imprimir os nomes mostra que o aplicativo retirou a política com êxito do serviço e obteve os rótulos. Para aplicar o rótulo, você precisa do identificador de rótulo. O código a seguir percorre todos os rótulos e exibe o name e o id de cada rótulo pai e filho.
//Iterate through all labels in the vector
for (const auto& label : labels) {
//Print label name and GUID
cout << label->GetName() << " : " << label->GetId() << endl;
//Print child label name and GUID
for (const auto& child : label->GetChildren()) {
cout << "-> " << child->GetName() << " : " << child->GetId() << endl;
}
}
Você pode usar a coleção de mip::Label retornados por GetSensitivityLabels() para exibir todos os rótulos disponíveis para o usuário e, depois de selecionados, usar o ID para aplicar os rótulos a um arquivo.
Próximas Etapas
Agora que o perfil é carregado, o mecanismo é adicionado e os rótulos estão disponíveis, você pode adicionar um manipulador para começar a ler, gravar ou remover rótulos de arquivos. Para obter mais informações, consulte manipuladores de arquivos no SDK do MIP.