Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
mip::PolicyEngine implementeert alle bewerkingen die de Beleids-SDK kan uitvoeren, met uitzondering van het laden van het profiel.
Implementatie: Een beleidsengine toevoegen
Implementatie: Instellingen voor beleidsengine maken
Net als bij een profiel vereist de engine ook een instellingenobject. mip::PolicyEngine::Settings Dit object slaat de unieke engine-id, een object van uw mip::AuthDelegate implementatie, aanpasbare clientgegevens op voor foutopsporing of telemetrie, en optioneel de landinstelling.
In het volgende voorbeeld wordt een PolicyEngine::Settings object met de naam engineSettings gemaakt met behulp van de identiteit van de toepassingsgebruiker:
PolicyEngine::Settings engineSettings(
mip::Identity(mUsername), // mip::Identity.
authDelegateImpl, // Auth delegate object
"", // Client data. Customizable by developer, stored with engine.
"en-US", // Locale.
false); // Load sensitive information types for driving classification.
Stel bij het maken van engineSettings op deze manier ook expliciet een unieke engineId in:
engineSettings.SetEngineId(engineId);
Door de gebruikersnaam of e-mail te gebruiken, zorgt u ervoor dat dezelfde engine telkens wordt geladen wanneer de gebruiker de service of toepassing gebruikt.
Geldig is ook het verstrekken van een aangepaste engine-id:
PolicyEngine::Settings engineSettings(
"myEngineId", // String
authDelegateImpl, // Auth delegate object
"", // Client data in string format. Customizable by developer, stored with engine.
"en-US", // Locale. Default is en-US
false); // Load sensitive information types for driving classification. Default is false.
Als best practice gebruikt u een eerste parameter, id, die de engine verbindt met de bijbehorende gebruiker, bij voorkeur de principal-naam van de gebruiker.
Implementatie: De beleidsengine toevoegen
Als u de engine wilt toevoegen, gaat u terug naar het Future/Promise-patroon dat wordt gebruikt om het profiel te laden. Gebruik mip::PolicyEngine in plaats van de belofte voor mip::Profile te maken.
// Auto profile will be std::shared_ptr<mip::Profile>.
auto profile = profileFuture.get();
// Create the delegate
auto authDelegateImpl = std::make_shared<sample::auth::AuthDelegateImpl>(appInfo, userName, password);
// Create the PolicyEngine::Settings object.
PolicyEngine::Settings engineSettings("UniqueID", authDelegateImpl, "");
// Create a promise for std::shared_ptr<mip::PolicyEngine>.
auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::PolicyEngine>>>();
// 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::PolicyEngine>.
auto engine = engineFuture.get();
De code voegt een engine voor de geverifieerde gebruiker toe aan het profiel.
Implementatie: Vertrouwelijkheidslabels vermelden
Met behulp van de toegevoegde engine kunt u alle vertrouwelijkheidslabels weergeven die beschikbaar zijn voor de geverifieerde gebruiker door aan te roepen engine->ListSensitivityLabels().
ListSensitivityLabels() haalt de lijst met labels en kenmerken van deze labels voor een specifieke gebruiker van de service op. Het resultaat wordt opgeslagen in een vector van std::shared_ptr<mip::Label>.
Implementatie: ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Implementatie: De etiketten afdrukken
//Iterate through all labels in the vector
for (const auto& label : labels) {
//print the label name
cout << label->GetName() << endl;
//Iterate through all child labels
for (const auto& child : label->GetChildren()) {
//Print the label with some formatting
cout << "-> " << child->GetName() << endl;
}
}
Het afdrukken van de namen laat zien dat de applicatie het beleid van de service heeft opgehaald en de labels heeft opgehaald. Als u het label wilt toepassen, hebt u de label-id nodig. Wijzig het vorige fragment om de label-id te retourneren:
for (const auto& label : labels) {
//Print label name and GUID
cout << label->GetName() << " : " << label->GetId() << endl;
//Print child label name and GUID
for (const auto& child : label->GetChildren()) {
cout << "-> " << child->GetName() << " : " << child->GetId() << endl;
}
}
U kunt de door ListSensitivityLabels() geretourneerde verzameling mip::Label gebruiken om alle labels weer te geven die beschikbaar zijn voor de gebruiker en vervolgens, wanneer een label is geselecteerd, de ID gebruiken om labels op een bestand toe te passen.