Microsoft Information Protection SDK - Dosya SDK'sı altyapısı kavramları
mip::FileEngine
IÇINDEKI MIP Dosya SDK'sı, belirtilen kimlik adına gerçekleştirilen tüm işlemler için bir arabirim sağlar. Uygulamada oturum açabilen her kullanıcı için bir altyapı eklenir ve altyapının gerçekleştirdiği tüm işlemler bu kimlik bağlamında gerçekleştirilir.
iki FileEngine
birincil sorumluluk içerir: Kimliği doğrulanmış bir kullanıcının etiketlerini listeleme ve kullanıcı adına dosya işlemleri gerçekleştirmek için dosya işleyicileri oluşturma.
mip::FileEngine
ListSensitivityLabels()
: Yüklenen altyapı için etiketlerin listesini alır.CreateFileHandler()
: Belirli bir dosya veya akış için birmip::FileHandler
oluşturur.
Dosya Altyapısı Ekleme
Profil ve Altyapı nesneleri bölümünde açıklandığı gibi, bir altyapının iki durumu olabilir: CREATED
veya LOADED
. Bu iki eyaletten biri değilse, yok demektir. Hem durum oluşturmak hem de yüklemek için yalnızca öğesine tek bir çağrı FileProfile::LoadAsync
yapmak gerekir. Altyapı önbelleğe alınmış durumda zaten varsa, olacaktır LOADED
. Yoksa ve LOADED
olacaktırCREATED
. CREATED
uygulamanın, altyapıyı yüklemek için gereken hizmetten gelen tüm bilgilere sahip olduğunu gösterir. LOADED
altyapıdan yararlanmak için gereken tüm veri yapılarının bellekte oluşturulduğunu gösterir.
Dosya Altyapısı oluşturma Ayarlar
Bir profile benzer şekilde, altyapı da bir ayarlar nesnesi gerektirir. mip::FileEngine::Settings
Bu nesne benzersiz altyapı tanımlayıcısını, mip::AuthDelegate
uygulamayı, 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.
FileEngine::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:
FileEngine::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 parametresi, id
altyapının ilişkili kullanıcıya kolayca bağlanmasına olanak tanıyan bir şey olmalıdır. E-posta adresi, UPN veya AAD nesne GUID'si gibi bir şey, kimliğin hem benzersiz olmasını hem de hizmeti çağırmadan yerel durumdan yüklenebilmesini sağlar.
Dosya Altyapısını Ekleme
Altyapıyı eklemek için profili yüklemek için kullanılan promise/future desenine geri döneceğiz. için mip::FileProfile
promise oluşturmak yerine kullanılarak mip::FileEngine
oluşturulur.
//auto profile will be std::shared_ptr<mip::FileProfile>
auto profile = profileFuture.get();
// Instantiate the AuthDelegate implementation.
auto authDelegateImpl = std::make_shared<sample::auth::AuthDelegateImpl>(appInfo, userName, password);
//Create the FileEngine::Settings object
FileEngine::Settings engineSettings("UniqueID", authDelegateImpl, "");
//Create a promise for std::shared_ptr<mip::FileEngine>
auto enginePromise = std::make_shared<std::promise<std::shared_ptr<mip::FileEngine>>>();
//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::FileEngine>
auto engine = engineFuture.get();
Yukarıdaki kodun sonucu, kimliği doğrulanmış kullanıcının altyapısının profile eklenmesidir.
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.
Daha fazla bilgi için buraya bakın mip::Label
.
ListSensitivityLabels()
std::vector<shared_ptr<mip::Label>> labels = engine->ListSensitivityLabels();
Veya basitleştirilmiş:
auto labels = engine->ListSensitivityLabels();
Etiketleri ve Kimlikleri Yazdırma
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. Aşağıdaki kod tüm etiketlerde yinelenir ve her üst ve alt etiket için ve id
değerlerini görüntülername
.
//Iterate through all labels in the vector
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 GetSensitivityLabels()
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.
Sonraki Adımlar
Artık profil yüklendiğine, altyapı eklendiğine ve etiketlerimiz olduğuna göre, dosyaları okumaya, yazmaya veya dosyalardan etiketleri kaldırmaya başlamak için bir işleyici ekleyebiliriz. Bkz. MIP SDK'sında dosya işleyicileri.
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