Bagikan melalui


Microsoft Information Protection SDK - Konsep mesin SDK Perlindungan

Implementasi: Menambahkan Mesin Perlindungan

Dalam File SDK, mip::ProtectionProfile kelas adalah kelas root untuk semua operasi SDK. Setelah membuat profil, kita sekarang dapat menambahkan mesin ke profil.

Contoh di bawah ini menunjukkan penggunaan satu mesin untuk satu pengguna yang diautentikasi.

Implementasi: Membuat mesin perlindungan Pengaturan

Mirip dengan profil, mesin juga memerlukan objek pengaturan, mip::ProtectionEngine::Settings. Objek ini menyimpan pengidentifikasi mesin unik, data klien yang dapat disesuaikan yang dapat digunakan untuk penelusuran kesalahan atau telemetri, dan, secara opsional, lokal.

Di sini kita membuat objek yang ProtectionEngine::Settings disebut mesin Pengaturan.

ProtectionEngine::Settings engineSettings("UniqueID", "");

Catatan

Jika menggunakan metode ini untuk membuat objek pengaturan perlindungan, Anda juga harus mengatur identitas secara manual pada ProtectionEngine Pengaturan melalui setIdentity() atau lingkungan cloud target melalui setCloud().

Sebagai praktik terbaik, parameter pertama, id, harus menjadi sesuatu yang memungkinkan mesin untuk dengan mudah terhubung ke pengguna terkait, ataumip::Identity objek. Untuk menginisialisasi pengaturan dengan mip::Identity:

ProtectionEngine::Settings engineSettings(mip::Identity("Bob@Contoso.com", "");

Saat membuat mesin Pengaturan dengan cara ini, penting untuk juga secara eksplisit mengatur engineId unik melalui:

engineSettings.SetEngineId(engineId);

Menggunakan nama pengguna atau email membantu memastikan bahwa mesin yang sama dimuat setiap kali pengguna menggunakan layanan atau aplikasi.

Implementasi: Tambahkan Mesin Perlindungan

Untuk menambahkan mesin, kita akan kembali ke pola future/promise yang digunakan untuk memuat profil. Alih-alih membuat janji untuk mip::ProtectionProfile, kita akan menggunakan mip::ProtectionEngine.


  //auto profile will be std::shared_ptr<mip::ProtectionProfile>
  auto profile = profileFuture.get();

  //Create the ProtectionEngine::Settings object
  ProtectionEngine::Settings engineSettings("UniqueID", "");

  //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();

Hasil akhir kode di atas adalah bahwa kami telah berhasil menambahkan mesin untuk pengguna yang diautentikasi ke profil.

Implementasi: Templat Daftar

Menggunakan mesin yang ditambahkan, sekarang dimungkinkan untuk mencantumkan semua templat sensitivitas yang tersedia untuk pengguna yang diautentikasi dengan memanggil engine->GetTemplatesAsync().

GetTemplatesAsync() akan mengambil daftar pengidentifikasi templat. Hasilnya disimpan dalam vektor std::shared_ptr<std::string>.

Implementasi: ListSensitivityTemplates()

auto loadPromise = std::make_shared<std::promise<shared_ptr<vector<string>>>>();
std::future<std::shared_ptr<std::vector<std::string>>> loadFuture = loadPromise->get_future();
mEngine->GetTemplatesAsync(engineObserver, loadPromise);
auto templates = loadFuture.get();

Implementasi: Cetak Id Templat

//Iterate through all template IDs in the vector
for (const auto& temp : *templates) {
  cout << "Template:" << "\n\tId: " << temp << endl;
}

Mencetak nama adalah cara mudah untuk menunjukkan bahwa kami berhasil menarik kebijakan dari layanan dan bisa mendapatkan templat. Untuk menerapkan templat, pengidentifikasi templat diperlukan.

Pemetaan templat ke label hanya dapat dilakukan melalui Policy SDK dengan memeriksa hasil .ComputeActions()

Langkah berikutnya

Sekarang setelah profil dimuat, mesin ditambahkan, dan kita memiliki templat, kita dapat menambahkan handler untuk mulai membaca, menulis, atau menghapus templat dari file. Lihat Konsep handler perlindungan.