SDK de Microsoft Information Protection: conceptos del motor del SDK de protección

Implementación: Adición de un motor de protección

En el SDK de archivos, la mip::ProtectionProfile clase es la clase raíz para todas las operaciones del SDK. Después de crear el perfil, puede agregar un motor al perfil.

En el ejemplo siguiente se muestra cómo usar un solo motor para un único usuario autenticado.

Implementación: Creación de la configuración del motor de protección

De forma similar a un perfil, el motor también requiere un objeto de configuración, mip::ProtectionEngine::Settings. Este objeto almacena el identificador de motor único, el mip::AuthDelegate utilizado para adquirir tokens, datos de cliente personalizables que puede usar para la depuración o telemetría, y, opcionalmente, la configuración regional.

El código siguiente crea un ProtectionEngine::Settings objeto denominado engineSettings.

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

Nota:

Si crea el objeto de configuración de protección con este método, establezca también la identidad en el ProtectionEngine::Settings objeto mediante SetIdentity() o el entorno de nube de destino mediante SetCloud().

Como procedimiento recomendado, use el primer parámetro, identificador, para identificar al usuario asociado o usar un mip::Identity objeto . Para inicializar la configuración con mip::Identity:

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

Cuando cree engineSettings de esta manera, establezca también explícitamente un engineId único mediante:

engineSettings.SetEngineId(engineId);

Use el nombre de usuario o el correo electrónico para asegurarse de que el motor se carga de forma coherente cada vez que el usuario usa el servicio o la aplicación.

Implementación: adición del motor de protección

Utilice el patrón future/promise empleado para cargar el perfil a fin de añadir el motor. En lugar de crear la promesa 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();

El código agrega un motor para el usuario autenticado al perfil.

Implementación: Enumerar plantillas

Una vez agregado el motor, puede obtener una lista de todas las plantillas de confidencialidad disponibles para el usuario autenticado mediante una llamada a engine->GetTemplatesAsync().

GetTemplatesAsync() captura la lista de descriptores de plantilla. El método almacena el resultado en un vector de std::shared_ptr<mip::TemplateDescriptor>.

Implementación: 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();

Implementación: Imprimir los identificadores de plantilla

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

Al mostrar los nombres, se comprueba que la aplicación ha obtenido correctamente la directiva del servicio y ha recuperado las plantillas. Para aplicar la plantilla, necesita el identificador de plantilla.

Solo puede asociar plantillas a etiquetas mediante Policy SDK al examinar el resultado de ComputeActions().

Pasos siguientes

Ahora que cargó el perfil, agregó el motor y tiene plantillas, puede agregar un controlador para empezar a leer, escribir o quitar plantillas de archivos. Consulte Conceptos del controlador de protección.