Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penegakan hak manajemen hak informasi yang ditentukan di portal kepatuhan adalah tanggung jawab pengembang aplikasi. SDK menyediakan API dan set enumerator untuk menyederhanakan pemeriksaan akses ini.
Contoh dan tabel di bawah ini akan menunjukkan skenario mana yang memerlukan pemeriksaan akses, daftar hak untuk diperiksa, dan cara melakukan pemeriksaan.
Daftar hak dan hasil
Untuk daftar lengkap hak dan deskripsi penggunaan, lihat Mengonfigurasi hak penggunaan untuk Perlindungan Informasi Microsoft Purview. Artikel ini mendefinisikan tanggung jawab pengembang aplikasi dalam penegakan hak dan fungsi yang diaktifkan saat hak tertentu, atau tidak, ada.
Penting
Ini adalah tanggung jawab pengembang aplikasi untuk memeriksa dan menegakkan hak. Kegagalan untuk melakukan pemeriksaan dapat mengakibatkan kehilangan data.
Skenario
Di mana dan bagaimana aplikasi Anda melakukan pemeriksaan akses akan bergantung pada jenis aplikasi yang Anda bangun. Aplikasi yang menangani output file penuh dan tidak memiliki antarmuka pengguna akan menggunakan EXTRACT hak atau OWNER paling sering. Aplikasi dengan antarmuka pengguna akan memerlukan kontrol yang paling terperinci, memblokir akses ke kontrol pengguna dan mengekspor jalur dalam aplikasi. Lihat bagian melakukan pemeriksaan akses untuk contoh kode.
Aplikasi tanpa antarmuka pengguna
Aplikasi tanpa antarmuka pengguna sering kali berbasis layanan atau antarmuka commandline (CLI). Saat aplikasi Anda menangani file yang dilindungi oleh Perlindungan Informasi Purview, aplikasi harus memastikan bahwa pengguna tanpa hak yang benar tidak dapat menggunakan layanan atau CLI untuk mengekspor file dalam format yang tidak terlindungi.
Aplikasi ini harus memvalidasi bahwa hak OWNER atau EXTRACT ada. Pengguna dengan OWNER dapat melakukan operasi apa pun. Pengguna dengan EXTRACT dapat langsung menghapus perlindungan atau menyimpan ke format baru, meskipun format tersebut tidak mendukung perlindungan.
Aplikasi dengan antarmuka pengguna
Aplikasi File SDK dengan antarmuka pengguna harus menerapkan kontrol yang membatasi akses ke operasi yang tidak diizinkan untuk dilakukan pengguna. Salah satu contoh aplikasi tersebut adalah Penampil Perlindungan Informasi Microsoft Purview. Penampil untuk sementara mendekripsi file dan merender konten di jendela aplikasi. Ini melakukan pemeriksaan akses terperinci sebelum menampilkan dokumen dan menonaktifkan elemen antarmuka pengguna berdasarkan hasil pemeriksaan akses.
Alur kerja parsial untuk melakukan pemeriksaan akses bisa terlihat seperti:
- Apakah pengguna memiliki hak PEMILIK ? Jika ya, aktifkan semua kontrol dan hentikan pemrosesan hak lain.
- Apakah pengguna memiliki hak PRINT ? Jika ya, aktifkan kontrol cetak. Jika tidak, nonaktifkan kontrol cetak.
- Apakah pengguna memiliki hak EKSPOR ? Jika ya, aktifkan kontrol ekspor dan elemen UI. Jika tidak, nonaktifkan elemen-elemen ini.
- Apakah pengguna memiliki HAK EXTRACT ? Jika ya, aktifkan penyalinan dan cuplikan layar. Jika tidak, nonaktifkan fungsi-fungsi ini.
- Apakah pengguna memiliki hak EDIT ? Jika ya, aktifkan pengeditan dan simpan item saat ini. Jika tidak, buat item baca saja.
Pemeriksaan ini harus dilakukan untuk semua izin dalam daftar hak dan tabel hasil , kecuali untuk hak LIHAT . File tidak akan dapat diakses tanpa hak ini.
Melakukan pemeriksaan akses
Pola untuk melakukan pemeriksaan akses serupa di seluruh File dan Protection SDK untuk C++, .NET, dan Java.
Sampel kode ini mengasumsikan Anda telah melalui langkah-langkah untuk menginisialisasi SDK dan telah membuat instans mesin dan handler.
- Mulai cepat: Inisialisasi aplikasi klien (C++)
- Mulai cepat: Inisialisasi aplikasi klien (C#)
- Mulai cepat: Inisialisasi aplikasi klien untuk SDK Perlindungan (C++)
- Mulai cepat: Inisialisasi aplikasi klien untuk SDK Perlindungan (C#)
Melakukan Pemeriksaan Akses di File SDK dengan .NET
Cuplikan kode ini mengasumsikan bahwa FileHandler telah dibuat dan menunjuk ke file yang valid.
// Validate that the file referred to by the FileHandler is protected.
if(handler.Protection != null)
{
// Validate that user has rights to remove protection from the file.
if(handler.Protection.AccessCheck(Rights.Extract))
{
// If user has Extract right, remove protection and commit the change. Otherwise, throw exception.
handler.RemoveProtection();
bool result = handler.CommitAsync(outputPath).GetAwaiter().GetResult();
return result;
}
else
{
throw new Microsoft.InformationProtection.Exceptions.AccessDeniedException("User lacks EXPORT right.");
}
}
Melakukan Pemeriksaan Akses di SDK Perlindungan dengan .NET
Cuplikan kode ini mengasumsikan bahwa ProtectionHandler telah dibuat untuk dikonsumsi.
// Validate that the file referred to by the FileHandler is protected.
if(protectionHandler != null)
{
// Validate that user has rights to remove protection from the file.
if(protectionHandler.AccessCheck(Rights.Print))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Melakukan Pemeriksaan Akses di File SDK dengan C++
Cuplikan kode ini mengasumsikan bahwa FileHandler telah dibuat dan menunjuk ke file yang valid.
// Validate that the file referred to by the FileHandler is protected.
if (fileHandler->GetProtection() != nullptr)
{
if (fileHandler->GetProtection()->AccessCheck(mip::rights::Extract()))
{
auto commitPromise = std::make_shared<std::promise<bool>>();
auto commitFuture = commitPromise->get_future();
fileHandler->RemoveProtection();
fileHandler->CommitAsync(outputFile, commitPromise);
result = commitFuture.get();
}
else
{
throw std::runtime_error("User doesn't have EXTRACT right.");
}
}
Melakukan Pemeriksaan Akses di SDK Perlindungan dengan C++
Cuplikan kode ini mengasumsikan bahwa ProtectionHandler telah dibuat untuk dikonsumsi.
// Validate that the file referred to by the FileHandler is protected.
if (protectionHandler != nullptr)
{
if (protectionHandler->AccessCheck(mip::rights::Print()))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Langkah Berikutnya
Sekarang setelah Anda memiliki gambaran tentang cara melakukan pemeriksaan akses dengan benar dan untuk menegakkan hak yang terkait dengan pemeriksaan tersebut, lanjutkan dengan konsep penanganan file untuk mempelajari lebih lanjut tentang menghapus perlindungan dari file.