Microsoft Information Protection SDK - konsep objek profil dan mesin

Profil

Kelas MipContext menyimpan pengaturan khusus SDK. Profil adalah kelas induk untuk semua operasi khusus untuk pelabelan dan perlindungan MIP yang ada di MIP SDK. Sebelum menggunakan salah satu dari tiga set API, aplikasi klien harus membuat profil. Profil, atau objek lain yang ditambahkan ke profil, melakukan operasi di masa mendatang. Gunakan hanya satu objek profil per proses. Membuat lebih dari satu mungkin mengakibatkan perilaku tak terduga.

MIP SDK memiliki tiga jenis profil:

API yang digunakan oleh aplikasi konsumen menentukan kelas profil mana yang harus digunakan.

Profil itu sendiri menyediakan fungsionalitas berikut:

  • Penyimpanan status: Menentukan apakah akan memuat status dalam memori atau mempertahankannya ke disk, dan apakah akan mengenkripsi status jika disimpan ke disk.
  • Delegasi persetujuan: Menentukan mip::ConsentDelegate untuk digunakan untuk operasi persetujuan.
  • Pengamat profil file: Menentukan implementasi mip::FileProfile::Observer yang digunakan untuk callback asinkron bagi operasi profil.

Pengaturan profil

  • MipContext: Objek MipContext yang diinisialisasi untuk menyimpan info aplikasi, jalur status, dll.
  • CacheStorageType: Menentukan cara menyimpan status: Dalam memori, pada disk, atau pada disk dan dienkripsi.
  • consentDelegate: Pointer bersama kelas mip::ConsentDelegate.
  • observer: Pointer bersama ke implementasi profil Observer (dalam PolicyProfile, ProtectionProfile, dan FileProfile).
  • applicationInfo: Objek mip::ApplicationInfo. Informasi tentang aplikasi yang menggunakan SDK dan cocok dengan ID dan nama pendaftaran aplikasi Microsoft Entra Anda.

Mesin

Mesin SDK File, Kebijakan, dan Perlindungan menyediakan antarmuka untuk operasi yang dilakukan oleh identitas tertentu. Tambahkan satu mesin ke objek profil untuk setiap pengguna atau perwakilan layanan yang masuk ke aplikasi. Anda dapat melakukan operasi yang didelegasikan menggunakan mip::ProtectionSettings dan penangan berkas atau perlindungan. Untuk informasi selengkapnya, lihat bagian pengaturan perlindungan di konsep FileHandler.

SDK memiliki tiga kelas mesin, satu untuk setiap API. Daftar berikut menunjukkan kelas mesin dan beberapa fungsi yang terkait dengan masing-masing:

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): Mendapatkan daftar label untuk mesin yang dimuat.
    • GetSensitivityLabel(): Mendapatkan label dari konten yang ada.
    • ComputeActions(): Disediakan dengan ID label dan metadata opsional, mengembalikan daftar tindakan yang harus terjadi untuk item tertentu.
  • mip::FileEngine
    • ListSensitivityLabels(): Mendapatkan daftar label untuk mesin yang dimuat.
    • CreateFileHandler(): Membuat mip::FileHandler untuk file atau aliran tertentu.

Untuk membuat mesin, berikan objek pengaturan mesin tertentu yang berisi pengaturan untuk jenis mesin yang akan dibuat. Objek pengaturan memungkinkan pengembang menentukan detail tentang pengidentifikasi mesin, mip::AuthDelegate implementasi, lokal, pengaturan kustom, dan detail khusus API lainnya.

Status mesin

Mesin dapat memiliki salah satu dari dua status:

  • CREATED: Dibuat menunjukkan bahwa SDK memiliki informasi status lokal yang cukup setelah memanggil layanan backend yang diperlukan.
  • LOADED: SDK telah membangun struktur data yang diperlukan agar mesin dapat beroperasi.

Mesin harus dibuat dan dimuat untuk melakukan operasi apa pun. Kelas ini Profile mengekspos beberapa metode manajemen mesin: AddEngineAsync, , DeleteEngineAsyncdan UnloadEngineAsync.

Tabel berikut menjelaskan kemungkinan status mesin, dan metode mana yang dapat mengubah status tersebut:

Status mesin NONE DIBUAT DIMUAT
NONE AddEngineAsync
DIBUAT DeleteEngineAsync AddEngineAsync
DIMUAT DeleteEngineAsync UnloadEngineAsync

ID Mesin

Setiap mesin memiliki pengidentifikasi unik, id, yang digunakan dalam semua operasi manajemen mesin. Aplikasi dapat menyediakan id. Jika aplikasi tidak menyediakannya, SDK dapat menghasilkannya. Semua properti mesin lainnya, seperti alamat email dalam informasi identitas, merupakan data yang tidak ditafsirkan oleh SDK. SDK tidak melakukan logika untuk menjaga properti lain tetap unik atau memberlakukan batasan lainnya.

Penting

Gunakan ID mesin yang unik untuk pengguna, dan gunakan ID mesin tersebut setiap kali pengguna melakukan operasi dengan SDK. Jika Anda tidak memberikan ID engine unik yang sudah ada untuk pengguna atau layanan, SDK akan melakukan permintaan bolak-balik tambahan ke layanan. Perjalanan pulang pergi layanan ini dapat mengakibatkan penurunan performa dan pembatasan.

// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended. 
													          mAuthDelegate,            // authDelegate implementation 
													          "",                       // ClientData
													          "en-US",                  // Client Locale
                                    false);                   // Load Sensitive Information Types

Metode manajemen mesin

SDK memiliki tiga metode manajemen mesin: AddEngineAsync, , DeleteEngineAsyncdan UnloadEngineAsync.

AddEngineAsync

Metode ini memuat mesin yang sudah ada, atau membuat mesin baru jika belum ada dalam status lokal.

Jika aplikasi tidak menyediakan id di FileEngineSettings, AddEngineAsync menghasilkan baru id. Kemudian memeriksa apakah mesin dengan id tersebut sudah ada di cache penyimpanan lokal. Jika memang begitu, sistem akan memuat mesin tersebut. Jika mesin tidak ada di cache lokal, mesin baru dibuat dengan memanggil API dan layanan backend yang diperlukan.

Dalam kedua kasus, jika metode berhasil, mesin dimuat dan siap digunakan.

DeleteEngineAsync

Menghapus mesin dengan yang diberikan id. Semua jejak mesin dihapus dari cache lokal.

UnloadEngineAsync

Mengeluarkan struktur data dalam memori untuk mesin dengan id yang diberikan. Status lokal engine ini tetap terjaga, dan Anda dapat memuatnya ulang dengan AddEngineAsync.

Metode ini memungkinkan aplikasi untuk bersikap bijaksana tentang penggunaan memori, dengan melepaskan mesin yang tidak diharapkan untuk digunakan dalam waktu dekat.

Langkah berikutnya