Video: Firebase Database Rules Tutorial 2024
Salah satu metode yang paling umum untuk mengamankan data di NoSQL adalah memberi setiap catatan (atau dokumen atau grafik, tergantung pada jenis database Anda) dengan seperangkat hak akses yang terkait dengan peran. Ini adalah kontrol akses berbasis peran, atau RBAC untuk jangka pendek.
Pertimbangkan sebuah rilis berita untuk sebuah situs web yang disimpan dalam database (agregat) database NoSQL. Peran editor mungkin memiliki izin update untuk dokumen, sedangkan peran publik yang lebih mungkin hanya membaca izin.
Kasus penggunaan ini memerlukan hak izin peran , bukan izin pengguna . Pengguna dapat ditugaskan ke satu atau lebih peran. Dengan demikian, pengguna mewarisi izin berdasarkan jumlah peran mereka.
Harus membuat peran untuk memberi izin kepada pengguna untuk melakukan fungsi tertentu mungkin tampak seperti kerja ekstra, namun pendekatan ini sangat berguna. Pertimbangkan pengguna yang pindah ke departemen lain atau yang pergi seluruhnya.
Anda tidak ingin melihat secara manual setiap dokumen yang izinnya menyebutkan pengguna ini dan mengubah atau menghapusnya. Sebagai gantinya ganti tugas peran pengguna itu dalam satu operasi. Menggunakan role-based access control (RBAC) jauh lebih mudah untuk pemeliharaan keamanan jangka panjang.
Perhatikan bagaimana database menangani hak akses dan peran. Pertimbangkan penjamin emisi di perusahaan asuransi, di mana mungkin ada penjamin pelaksana, junior, dan senior, masing-masing dengan akses yang meningkat terhadap berbagai jenis informasi.
Anda bisa menetapkan penjamin junior hak akses yang diberikan trainee, ditambah beberapa lagi. Kemudian Anda bisa memberikan semua izin penjamin junior untuk penjamin senior, ditambah lagi beberapa lagi. Jika Anda ingin menambahkan izin tambahan untuk semua peran ini, Anda harus membuat tiga perubahan yang sama.
Jika Anda memiliki lima tingkat peran, itu lima eksemplar. Selain itu, setiap sistem akan memiliki banyak peran seperti ini. Ada cara yang lebih baik daripada melakukan tugas biasa yang sama berulang-ulang: Peran pewarisan.
Beberapa sistem mencakup pewarisan peran. Dalam kasus ini, peran JuniorUnderwriter mewarisi peran TraineeUnderwriter, dan peran SeniorUnderwriter mewarisi peran JuniorUnderwiter. Sekarang yang perlu Anda lakukan untuk menambahkan izin ke semua peran adalah menambahkannya ke peran TraineeUnderwriter (tingkat warisan terendah), dan semua peran akan mewarisi izin. Warisan peran jauh lebih mudah dipahami dan dipelihara.
Logika izin peran umumnya diimplementasikan dengan logika OR. Artinya, jika Anda menetapkan tiga peran - RoleA, RoleB, dan RoleC - untuk merekam dengan izin baca, pengguna memiliki izin ini jika dia memiliki RoleA ATAU RoleB, ATAU RoleC.Jika Anda tidak memberikan izin baca peran ke catatan, pengguna tidak akan membaca izin pada catatan itu (tentu saja warisan).