SDK de Microsoft Information Protection: conceptos de los objetos Perfil y Motor
Perfiles
En aquellos casos en los que MipContext
es la clase para almacenar la configuración específica del SDK, el perfil es la clase raíz de todas las operaciones específicas de etiquetado y protección de MIP en el SDK de MIP. Antes de usar cualquiera de los tres conjuntos de API, la aplicación cliente debe crear un perfil. Las operaciones futuras las realiza el perfil u otros objetos agregados al perfil. Se recomienda tener un único objeto de perfil por proceso. La creación de más de un objeto puede dar lugar a un comportamiento inesperado.
Hay tres tipos de perfil en el SDK de MIP:
PolicyProfile
: la clase de perfil para el SDK de directivas de MIP.ProtectionProfile
: la clase de perfil para el SDK de protección de MIP.FileProfile
: la clase de perfil para el SDK de archivos de MIP.
La API usada en la aplicación de consumo determina qué clase de perfil se debe usar.
El perfil proporciona la funcionalidad siguiente:
- Define si el estado debe cargarse en la memoria o conservarse en el disco y, si se conserva en el disco, si debe cifrarse.
- Define el objeto
mip::ConsentDelegate
que se debe usar para las operaciones de consentimiento. - Define la implementación de
mip::FileProfile::Observer
que se usará para devoluciones de llamada asincrónicas para las operaciones del perfil.
Configuración del perfil
MipContext
: objetoMipContext
que se inicializó para almacenar la información de la aplicación, la ruta de acceso de estado, etc.CacheStorageType
: define cómo almacenar el estado: en la memoria, en el disco o en el disco con cifrado.consentDelegate
: puntero compartido de la clasemip::ConsentDelegate
.observer
: puntero compartido en la implementación del perfilObserver
(enPolicyProfile
,ProtectionProfile
yFileProfile
).applicationInfo
: un objetomip::ApplicationInfo
. Información sobre la aplicación que consume el SDK, que coincide con el id. y el nombre del registro de aplicación de Microsoft Entra.
Motores
Los motores del SDK de archivos, perfil y protección proporcionan una interfaz para las operaciones realizadas por una identidad específica. Se agrega un motor al objeto Profile para cada usuario o entidad de servicio que inicie sesión en la aplicación. Es posible realizar operaciones delegadas a través de mip::ProtectionSettings
y el controlador de archivos o protección. Consulte la sección de configuración de la protección en los conceptos de FileHandler para obtener más información.
Hay tres clases de motor en el SDK, una para cada API. En la lista siguiente se muestran las clases de motor y algunas de las funciones asociadas a cada una de ellas:
mip::ProtectionEngine
mip::PolicyEngine
ListSensitivityLabels()
: obtiene la lista de etiquetas para el motor cargado.GetSensitivityLabel()
: obtiene la etiqueta del contenido existente.ComputeActions()
: se proporciona con un identificador de etiqueta y metadatos opcionales, y devuelve la lista de acciones que deben producirse para un elemento específico.
mip::FileEngine
ListSensitivityLabels()
: obtiene la lista de etiquetas para el motor cargado.CreateFileHandler()
: crea unmip::FileHandler
para un archivo o una secuencia específicos.
La creación de un motor requiere pasar un objeto de configuración de motor específico que contenga la configuración del tipo de motor que se va a crear. El objeto de configuración permite al desarrollador especificar detalles sobre el identificador del motor, la implementación de mip::AuthDelegate
, la configuración regional y la configuración personalizada, así como otros detalles específicos de la API.
Estados del motor
Un motor puede tener uno de estos dos estados:
CREATED
: indica que el SDK tiene suficiente información de estado local después de llamar a los servicios back-end necesarios.LOADED
: el SDK ha creado las estructuras de datos necesarias para que el motor esté operativo.
Debe crearse y cargarse un motor para poder realizar cualquier operación. La clase Profile
expone algunos métodos de administración de motores: AddEngineAsync
, DeleteEngineAsync
y UnloadEngineAsync
.
En la tabla siguiente se describen los posibles estados del motor y qué métodos pueden cambiar ese estado:
Estado del motor | NONE | CREATED | LOADED |
---|---|---|---|
NONE | AddEngineAsync | ||
CREATED | DeleteEngineAsync | AddEngineAsync | |
LOADED | DeleteEngineAsync | UnloadEngineAsync |
Id. del motor
Cada motor tiene un identificador único, id
, que se usa en todas las operaciones de administración del motor. La aplicación puede proporcionar un id
. En caso contrario, el SDK puede generar uno. El resto de propiedades del motor (por ejemplo, la dirección de correo electrónico de la información de identidad) son cargas opacas para el SDK. El SDK NO ejecuta ninguna lógica para mantener ninguna de las demás propiedades exclusivas o aplicar cualquier otra restricción.
Importante
** A modo de procedimiento recomendado, use un identificador de motor que sea único para el usuario y úselo cada vez que el usuario realice una operación con el SDK. Si no se proporciona un id. del motor existente y único para un usuario o servicio, se producirán recorridos de ida y vuelta adicionales del servicio. Estos recorridos de ida y vuelta del servicio pueden provocar una degradación del rendimiento y otras limitaciones. **
// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended.
mAuthDelegate, // authDelegate implementation
"", // ClientData
"en-US", // Client Locale
false); // Load Sensitive Information Types
Métodos de administración del motor
Como se mencionó anteriormente, hay tres métodos de administración del motor en el SDK: AddEngineAsync
, DeleteEngineAsync
y UnloadEngineAsync
.
AddEngineAsync
Este método carga un motor existente o crea uno si aún no existe un motor con el estado local.
Si la aplicación no proporciona un id
en FileEngineSettings
, AddEngineAsync
genera un nuevo id
. A continuación, comprueba si ya existe algún motor con ese id
en la caché de almacenamiento local. Si lo hace, carga ese motor. Si el motor no existe en la memoria caché local, se crea un nuevo motor. Para ello, se llama a las API y los servicios back-end necesarios.
En ambos casos, si el método se completa correctamente, el motor se carga y estará listo para usarse.
DeleteEngineAsync
Elimina el motor con el id
especificado. Se elimina todo rastro del motor en la caché local.
UnloadEngineAsync
Descarga las estructuras de datos en la memoria para el motor con el id
especificado. El estado local de este motor sigue intacto y se puede volver a cargar con AddEngineAsync
.
Este método permite que la aplicación sea prudente con el uso de la memoria, descargando motores que no se prevé que se usen a corto plazo.
Pasos siguientes
- A continuación, obtenga más información sobre los conceptos de autenticación y los observadores. MIP proporciona un modelo de autenticación extensible, mientras que los observadores se usan para proporcionar notificaciones de eventos asincrónicos. Ambos son fundamentales y se aplican a todos los SDK de MIP.
- Después, trabaje con los conceptos de perfil y motor para los SDK de archivos, directivas y protección.