Condividi tramite


Microsoft Information Protection SDK - Concetti relativi all'oggetto profilo e motore

Profili

MipContext Dove è la classe per l'archiviazione delle impostazioni specifiche dell'SDK, il profilo è la classe radice per tutte le operazioni specifiche di MIP e di etichettatura MIP in MIP SDK. Prima di usare uno dei tre set di API, l'applicazione client deve creare un profilo. Le operazioni future vengono eseguite dal profilo o da altri oggetti aggiunti al profilo. È consigliabile usare un solo oggetto profilo per processo. La creazione di più di una può comportare un comportamento imprevisto.

Esistono tre tipi di profilo in MIP SDK:

L'API usata nell'applicazione di utilizzo determina quale classe di profilo deve essere usata.

Il profilo stesso offre le funzionalità seguenti:

  • Definisce se lo stato deve essere caricato in memoria o salvato in modo permanente su disco e, se persistente su disco, deve essere crittografato.
  • Definisce l'oggetto mip::ConsentDelegate che deve essere utilizzato per le operazioni di consenso.
  • Definisce l'implementazione mip::FileProfile::Observer che verrà usata per i callback asincroni per le operazioni del profilo.

Impostazioni del profilo

  • MipContextMipContext: oggetto inizializzato per archiviare le informazioni sull'applicazione, il percorso dello stato e così via.
  • CacheStorageType: definisce come archiviare lo stato: in memoria, su disco o su disco e crittografato.
  • consentDelegate: puntatore condiviso della classe mip::ConsentDelegate.
  • observer: puntatore condiviso all'implementazione del profilo Observer (in PolicyProfile, ProtectionProfilee FileProfile).
  • applicationInfomip::ApplicationInfo: oggetto . Informazioni sull'applicazione che utilizza l'SDK, che corrisponde all'ID e al nome della registrazione dell'applicazione Microsoft Entra.

Motori

I motori File, Profilo e Protection SDK forniscono un'interfaccia per le operazioni eseguite su da un'identità specifica. Un motore viene aggiunto all'oggetto Profile per ogni utente o entità servizio che accede all'applicazione. È possibile eseguire operazioni delegate tramite mip::ProtectionSettings e il gestore di file o protezione. Per altri dettagli, vedere la sezione relativa alle impostazioni di protezione nei concetti relativi a FileHandler.

Nell'SDK sono disponibili tre classi del motore, una per ogni API. L'elenco seguente mostra le classi del motore e alcune delle funzioni associate a ognuna:

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): ottiene l'elenco di etichette per il motore caricato.
    • GetSensitivityLabel(): ottiene l'etichetta dal contenuto esistente.
    • ComputeActions(): fornito con un ID etichetta e metadati facoltativi, restituisce l'elenco di azioni che devono verificarsi per un elemento specifico.
  • mip::FileEngine
    • ListSensitivityLabels(): ottiene l'elenco di etichette per il motore caricato.
    • CreateFileHandler(): crea un oggetto per un file o un mip::FileHandler flusso specifico.

La creazione di un motore richiede il passaggio di un oggetto impostazioni del motore specifico che contiene le impostazioni per il tipo di motore da creare. L'oggetto impostazioni consente allo sviluppatore di specificare i dettagli sull'identificatore del motore, l'implementazione mip::AuthDelegate , le impostazioni locali e le impostazioni personalizzate, nonché altri dettagli specifici dell'API.

Stati del motore

Un motore può avere uno dei due stati seguenti:

  • CREATED: creato indica che l'SDK dispone di informazioni sullo stato locale sufficienti dopo aver chiamato i servizi back-end necessari.
  • LOADED: l'SDK ha compilato le strutture di dati necessarie per il motore da rendere operativo.

Per eseguire qualsiasi operazione, è necessario creare e caricare un motore. La Profile classe espone alcuni metodi di gestione del motore: AddEngineAsync, DeleteEngineAsynce UnloadEngineAsync.

Nella tabella seguente vengono descritti i possibili stati del motore e quali metodi possono modificare tale stato:

Stato del motore NONE CREATED CARICATO
NONE AddEngineAsync
CREATED DeleteEngineAsync AddEngineAsync
CARICATO DeleteEngineAsync UnloadEngineAsync

ID motore

Ogni motore ha un identificatore univoco, id, usato in tutte le operazioni di gestione del motore. L'applicazione può fornire un ido l'SDK può generarne uno, se non viene fornito dall'applicazione. Tutte le altre proprietà del motore (ad esempio, l'indirizzo di posta elettronica nelle informazioni sull'identità) sono payload opachi per l'SDK. L'SDK non esegue alcuna logica per mantenere univoca qualsiasi altra proprietà o applicare altri vincoli.

Importante

**Come procedura consigliata, usare un ID motore univoco per l'utente e usarlo ogni volta che l'utente esegue un'operazione con l'SDK. Se non si specifica un engineId univoco esistente per un utente o un servizio, si verifica un round trip aggiuntivo del servizio. Questi round trip del servizio possono comportare una riduzione delle prestazioni e una limitazione delle richieste. **

// 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

Metodi di gestione del motore

Come accennato in precedenza, nell'SDK sono disponibili tre metodi di gestione del motore: AddEngineAsync, DeleteEngineAsynce UnloadEngineAsync.

AddEngineAsync

Questo metodo carica un motore esistente o ne crea uno se non esiste già nello stato locale.

Se l'applicazione non fornisce un oggetto id in FileEngineSettings, AddEngineAsync genera un nuovo idoggetto . Verifica quindi se esiste già un motore nella id cache di archiviazione locale. In caso affermativo, carica il motore. Se il motore non esiste nella cache locale, viene creato un nuovo motore chiamando le API e i servizi back-end necessari.

In entrambi i casi, se il metodo riesce, il motore viene caricato e pronto per l'uso.

DeleteEngineAsync

Elimina il motore con l'oggetto specificato id. Tutte le tracce del motore vengono rimosse dalla cache locale.

UnloadEngineAsync

Scarica le strutture di dati in memoria per il motore con l'oggetto specificato id. Lo stato locale di questo motore è ancora intatto e può essere ricaricato con AddEngineAsync.

Questo metodo consente all'applicazione di essere succosa sull'utilizzo della memoria, scaricando motori che non dovrebbero essere usati presto.

Passaggi successivi