Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Implementazione: aggiungere un motore di protezione
In File SDK la mip::ProtectionProfile classe è la classe radice per tutte le operazioni SDK. Dopo aver creato il profilo, è possibile aggiungere un motore al profilo.
Nell'esempio seguente viene illustrato come usare un singolo motore per un singolo utente autenticato.
Implementazione: creare le impostazioni del motore di protezione
Analogamente a un profilo, il motore richiede anche un oggetto impostazioni, mip::ProtectionEngine::Settings. Questo oggetto archivia l'identificatore univoco del motore, l'oggetto mip::AuthDelegate usato per acquisire token, dati client personalizzabili che è possibile usare per il debug o la telemetria e, facoltativamente, le impostazioni locali.
Il codice seguente crea un ProtectionEngine::Settings oggetto denominato engineSettings.
ProtectionEngine::Settings engineSettings("UniqueID", authDelegate, "");
Annotazioni
Se si crea l'oggetto impostazioni di protezione con questo metodo, impostare anche l'identità nell'oggetto ProtectionEngine::Settings usando SetCloud() oppure l'ambiente cloud di destinazione usando SetIdentity().
Come procedura consigliata, usare il primo parametro, id, per identificare l'utente associato o usare un mip::Identity oggetto . Per inizializzare le impostazioni con mip::Identity:
ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com"), authDelegate, "");
Quando si crea engineSettings in questo modo, imposta anche in modo esplicito un engineId univoco usando:
engineSettings.SetEngineId(engineId);
Usare il nome utente o il messaggio di posta elettronica per assicurarsi che il motore venga caricato in modo coerente ogni volta che l'utente usa il servizio o l'applicazione.
Implementazione: aggiungere il motore di protezione
Utilizzare il pattern future/promise utilizzato per caricare il profilo per aggiungere il motore. Anziché creare la promessa per mip::ProtectionProfile, usare 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();
Il codice aggiunge un motore per l'utente autenticato al profilo.
Implementazione: elencare i modelli
Dopo aver aggiunto il motore, è possibile elencare tutti i modelli di riservatezza disponibili per l'utente autenticato chiamando engine->GetTemplatesAsync().
GetTemplatesAsync() recupera l'elenco dei descrittori di modello. Il metodo archivia il risultato in un vettore di std::shared_ptr<mip::TemplateDescriptor>.
Implementazione: 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();
Implementazione: stampare gli ID modello
//Iterate through all template IDs in the vector
for (const auto& temp : templates) {
cout << "Template:" << "\n\tId: " << temp->GetId() << endl;
}
La stampa dei nomi mostra che l'applicazione ha eseguito correttamente il pull dei criteri dal servizio e ha recuperato i modelli. Per applicare il modello, è necessario l'identificatore del modello.
È possibile eseguire il mapping dei modelli alle etichette solo tramite Policy SDK esaminando il risultato di ComputeActions().
Passaggi successivi
Dopo aver caricato il profilo, aggiunto il motore e avere modelli, è possibile aggiungere un gestore per iniziare a leggere, scrivere o rimuovere modelli dai file. Vedere Concetti relativi al gestore di protezione.
- Per il codice di esempio, vedere l'esempio C++ di MIP Protection SDK in GitHub.