Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
mip::PolicyEngine , profili yükleme dışında İlke SDK'sının gerçekleştirebileceği tüm işlemleri uygular.
Uygulama: İlke motoru ekleme
Uygulama: İlke motoru ayarlarını oluşturun
Bir profile benzer şekilde, altyapı da bir ayarlar nesnesi gerektirir. mip::PolicyEngine::Settings Bu nesne benzersiz altyapı tanımlayıcısını, uygulamanızın mip::AuthDelegate bir nesnesini, hata ayıklama veya telemetri için özelleştirilebilir istemci verilerini ve isteğe bağlı olarak yerel ayarı depolar.
Aşağıdaki örnek, uygulama kullanıcısının kimliğini kullanarak engineSettings adlı bir PolicyEngine::Settings nesne oluşturur:
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.
EngineSettings'i bu şekilde oluştururken, açıkça benzersiz bir engineId de ayarlayın:
engineSettings.SetEngineId(engineId);
Kullanıcı adı veya e-postanın kullanılması, kullanıcı hizmeti veya uygulamayı her kullandığında aynı altyapının yüklenmesini sağlamaya yardımcı olur.
Özel bir motor kimliği belirtmek de geçerlidir:
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.
En iyi yöntem olarak, motoru ilişkili kullanıcıya(tercihen kullanıcı asıl adı) bağlayan ilk parametreyi ( id) kullanın.
Uygulama: İlke motorunu ekleyin
Motoru eklemek için, profili yüklemek amacıyla kullanılan future/promise desenine geri dönün.
mip::Profile için söz oluşturmak yerine mip::PolicyEngine kullanın.
// 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();
Kod, kimliği doğrulanmış kullanıcı için profile bir altyapı ekler.
Uygulama: Duyarlılık etiketlerini listeleme
Eklenen altyapıyı kullanarak kimliği doğrulanmış kullanıcının kullanabileceği tüm duyarlılık etiketlerini çağırarak engine->ListSensitivityLabels()listeleyebilirsiniz.
ListSensitivityLabels() hizmetten belirli bir kullanıcı için bu etiketlerin etiket ve özniteliklerinin listesini getirir. Sonuç, vektörde std::shared_ptr<mip::Label>depolanır.
Uygulama: ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Uygulama: Etiketleri yazdırma
//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;
}
}
Adların yazdırılması, uygulamanın hizmetten politikayı başarıyla aldığını ve etiketleri edindiğini gösterir. Etiketi uygulamak için etiket tanımlayıcısına ihtiyacınız vardır. Etiket kimliğini döndürmek için önceki kod parçacığını değiştirin:
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;
}
}
Kullanıcının kullanabileceği tüm etiketleri görüntülemek için mip::Label tarafından döndürülen ListSensitivityLabels() koleksiyonunu kullanabilir ve ardından bir etiket seçildiğinde, etiketi bir dosyaya uygulamak için ID’yi kullanabilirsiniz.