Bagikan melalui


Microsoft Information Protection SDK - Konsep objek Profil dan Mesin Pengolah

Profil

MipContext adalah kelas untuk menyimpan pengaturan khusus SDK, sedangkan profil adalah kelas dasar untuk semua operasi pelabelan dan perlindungan khusus dalam MIP SDK. Sebelum menggunakan salah satu dari tiga set API, aplikasi klien harus membuat profil. Operasi mendatang dilakukan oleh profil, atau oleh objek lain yang ditambahkan ke profil. Hanya satu objek profil per proses yang direkomendasikan. Membuat lebih dari satu dapat mengakibatkan perilaku yang tidak terduga.

Ada tiga jenis profil di MIP SDK:

API yang digunakan dalam aplikasi yang menggunakan menentukan kelas profil mana yang harus digunakan.

Profil itu sendiri menyediakan fungsionalitas berikut:

  • Menentukan apakah status harus dimuat dalam memori atau disimpan ke penyimpanan dan, jika disimpan, apakah harus dienkripsi.
  • Menentukan mip::ConsentDelegate yang harus digunakan untuk operasi persetujuan.
  • mip::FileProfile::Observer Menentukan implementasi yang akan digunakan untuk panggilan balik asinkron untuk 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, yang cocok dengan ID dan nama pendaftaran aplikasi Microsoft Entra Anda.

Mesin

Mesin SDK File, Profil, dan Perlindungan menyediakan antarmuka untuk operasi yang dilakukan oleh identitas tertentu. Satu mesin ditambahkan ke objek Profil untuk setiap pengguna atau perwakilan layanan yang masuk ke aplikasi. Dimungkinkan untuk melakukan operasi yang didelegasikan melalui mip::ProtectionSettings dan file atau pengendali perlindungan. Lihat bagian pengaturan perlindungan di konsep FileHandler untuk detail selengkapnya.

Ada tiga kelas mesin di SDK, 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.

Membuat mesin memerlukan melewati 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, dan pengaturan kustom, serta detail khusus API lainnya.

Status Mesin

Mesin mungkin 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, atau SDK dapat menghasilkannya, jika tidak disediakan oleh aplikasi. Semua properti mesin lainnya (misalnya, alamat email dalam info identitas) adalah payload buram untuk SDK. SDK TIDAK melakukan logika apa pun untuk menjaga properti lain tetap unik, atau memberlakukan batasan lainnya.

Penting

**Sebagai praktik terbaik, gunakan Id mesin yang unik untuk pengguna dan gunakan setiap kali pengguna melakukan operasi dengan SDK. Gagal menyediakan engineId yang unik dan sudah ada untuk pengguna atau layanan akan mengakibatkan siklus layanan tambahan. Perjalanan pulang pergi layanan ini dapat mengakibatkan penurunan kinerja dan pembatasan kapasitas. **

// 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

Seperti disebutkan sebelumnya, ada tiga metode manajemen mesin di SDK: AddEngineAsync, DeleteEngineAsync, dan 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 mesin ini masih utuh, dan dapat dimuat 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