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:
PolicyProfile
: classe del profilo per MIP Policy SDK.ProtectionProfile
: classe del profilo per MIP Protection SDK.FileProfile
: classe del profilo per MIP File 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
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 classemip::ConsentDelegate
.observer
: puntatore condiviso all'implementazione del profiloObserver
(inPolicyProfile
,ProtectionProfile
eFileProfile
).applicationInfo
mip::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 unmip::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
, DeleteEngineAsync
e 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 id
o 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
, DeleteEngineAsync
e 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 id
oggetto . 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
- Altre informazioni sui concetti relativi all'autenticazione e sugli osservatori. MIP fornisce un modello di autenticazione estendibile, mentre gli osservatori vengono usati per fornire notifiche degli eventi per gli eventi asincroni. Entrambi sono fondamentali e si applicano a tutti gli SDK MIP.
- Usare quindi i concetti relativi al profilo e al motore per gli SDK di file, criteri e protezione