Microsoft Information Protection SDK - Concetti relativi agli oggetti profilo e motore

Profili

La MipContext classe archivia le impostazioni specifiche dell'SDK. Il profilo è la classe radice per tutte le operazioni specifiche di etichettatura e protezione MIP in MIP SDK. Prima di usare uno dei tre set di API, l'applicazione client deve creare un profilo. Il profilo o altri oggetti aggiunti al profilo eseguono operazioni future. Usare un solo oggetto profilo per processo. La creazione di più di una potrebbe comportare un comportamento imprevisto.

MIP SDK ha tre tipi di profilo:

L'API utilizzata dall'applicazione consumer determina quale classe di profilo utilizzare.

Il profilo stesso offre le funzionalità seguenti:

  • Archiviazione stato: definisce se caricare lo stato in memoria o salvarlo in modo permanente su disco e se crittografare lo stato se persistente su disco.
  • Delegato per il consenso: definisce il mip::ConsentDelegate da usare per le operazioni di consenso.
  • Osservatore del profilo file: definisce l'implementazione mip::FileProfile::Observer da usare per i callback asincroni per le operazioni sul profilo.

Impostazioni del profilo

  • MipContext MipContext: 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).
  • applicationInfo: Un oggetto mip::ApplicationInfo. Informazioni sull'applicazione che usa l'SDK e corrisponde all'ID e al nome della registrazione dell'applicazione Microsoft Entra.

Motori

I motori File, Policy e Protection SDK forniscono un'interfaccia per le operazioni eseguite da un'identità specifica. Aggiungere un motore all'oggetto profilo per ogni utente o entità servizio che accede all'applicazione. È possibile eseguire operazioni delegate usando mip::ProtectionSettings e il gestore file o protezione. Per altre informazioni, vedere la sezione relativa alle impostazioni di protezione nei concetti relativi a FileHandler.

L'SDK ha 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 delle 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 delle etichette per il motore caricato.
    • CreateFileHandler(): crea un mip::FileHandler per un file o un flusso specifico.

Per creare un motore, fornire un oggetto specifico di impostazioni del motore che contenga le impostazioni per il tipo di motore da creare. L'oggetto settings consente allo sviluppatore di specificare dettagli sull'identificatore del motore, l'implementazione, le mip::AuthDelegate impostazioni locali, le impostazioni personalizzate e 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 costruito le strutture di dati necessarie per renderlo 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 CREATO CARICATO
NONE AddEngineAsync
CREATO 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 oggetto id. Se l'applicazione non ne fornisce uno, l'SDK può generarlo. 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 la logica per mantenere univoce altre proprietà o applicare altri vincoli.

Importante

Usare un ID motore univoco per l'utente e usare tale ID motore ogni volta che l'utente esegue un'operazione con l'SDK. Se non si fornisce un ID del motore univoco ed esistente per un utente o un servizio, l’SDK effettua richieste aggiuntive al servizio. Queste andate e ritorno al servizio potrebbero causare un degrado delle prestazioni e la 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

L'SDK include 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 nella cache di archiviazione locale esiste già un motore con quel id. 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 il dato id. Tutte le tracce del motore vengono rimosse dalla cache locale.

UnloadEngineAsync

Scarica dal motore le strutture di dati caricate in memoria con il dato id. Lo stato locale di questo motore rimane intatto ed è possibile ricaricarlo con AddEngineAsync.

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

Passaggi successivi