Microsoft Information Protection SDK - İlke SDK'sı altyapısı kavramları
mip::PolicyEngine
, profili yükleme dışında İlke SDK'sının gerçekleştirebileceği tüm işlemleri uygular.
Uygulama: İlke Altyapısı Ekleme
Uygulama: İlke Altyapısı oluşturma Ayarlar
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 kullanılabilecek özelleştirilebilir istemci verilerini ve isteğe bağlı olarak yerel ayarı depolar.
Burada uygulama kullanıcısının kimliğini kullanarak engine Ayarlar adlı bir FileEngine::Settings
nesne oluşturuyoruz:
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.
Altyapı oluştururken Ayarlar bu şekilde benzersiz bir engineId ayarlamak da önemlidir:
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üklendiğinden emin olmak için yardımcı olur.
Ayrıca, özel bir altyapı kimliği sağlamak da 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, ilk parametre olan id, motorun ilişkili kullanıcıya, tercihen kullanıcı asıl adına kolayca bağlanmasına olanak tanıyan bir şey olmalıdır.
Uygulama: İlke Altyapısını Ekleme
Altyapıyı eklemek için profili yüklemek için kullanılan gelecek/promise desenine geri döneceğiz. için mip::Profile
söz oluşturmak yerine kullanacağız mip::PolicyEngine
.
// 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();
Yukarıdaki kodun sonucu, kimliği doğrulanmış kullanıcı için profile başarıyla bir altyapı eklemiş olmamızdır.
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()
listelemek artık mümkündür.
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ı yazdırmak, ilkeyi hizmetten başarıyla çektiğimizi ve etiketleri alabildiğimizi göstermenin kolay bir yoludur. Etiketi uygulamak için etiket tanımlayıcısı gereklidir. Etiket kimliğini döndürmek için yukarıdaki ekran alıntısını değiştirme:
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;
}
}
tarafından ListSensitivityLabels()
döndürülen koleksiyonumip::Label
, kullanıcının kullanabileceği tüm etiketleri görüntülemek için kullanılabilir ve seçildiğinde, bir dosyaya etiket uygulamak için kimliği kullanabilir.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin