Merancang Peran Secara Efektif

Dalam banyak skenario, keamanan berbasis peran adalah mekanisme yang sangat efektif, tetapi ada situasi di mana itu kurang efektif. Anda harus mempertimbangkan sejumlah faktor saat memutuskan di mana dan bagaimana menerapkan keamanan berbasis peran ke aplikasi tertentu.

Karakteristik Pengguna dan Data dan Kesesuaian Peran

Peran bekerja sangat baik untuk mencirikan grup pengguna dan, atas dasar itu, memfilter tindakan apa yang dapat dilakukan pengguna tersebut. Sering kali, ini dilakukan dalam praktiknya dengan membuat peran yang mencerminkan tempat pengguna dalam organisasi—misalnya, peran "Manajer" dan "Tellers," "Administrator" dan "Pembaca," "Project Satu Karyawan" dan "Project Dua Karyawan." Dalam kasus seperti itu, di mana data yang diakses cukup umum relatif terhadap pengguna, peran dapat digunakan secara efisien untuk menegakkan aturan bisnis seperti berikut:

  • "Manajer dapat mentransfer sejumlah uang. Teller hanya dapat mentransfer hingga $10.000."

  • "Administrator dapat mengubah apa pun. Orang lain hanya dapat membaca."

  • "Project Satu karyawan dapat mengakses database tertentu. Tidak ada orang lain yang bisa."

Pengguna mungkin secara alami termasuk dalam beberapa peran, tergantung pada bagaimana peran memodelkan struktur organisasi bisnis.

Namun, peran tidak berfungsi dengan baik ketika keputusan akses keamanan bertumpu pada karakteristik bagian data tertentu. Misalnya, akan sulit untuk menggunakan peran untuk mencerminkan hubungan data pengguna yang rumit seperti berikut ini:

  • "Manajer tertentu dapat mengakses data personel hanya untuk laporannya."

  • "Joe Konsumen dapat mencari saldo rekeningnya."

Dalam kasus seperti itu, pemeriksaan keamanan harus sering dilakukan di database itu sendiri, di mana lebih mudah untuk mempertimbangkan karakteristik bawaan data yang diakses. Ini berarti Anda harus menggunakan peniruan identitas klien untuk meneruskan identitas klien bersama ke database dan membiarkan database memvalidasi permintaan. Ini dapat memengaruhi performa dan dapat memengaruhi desain aplikasi—misalnya, pengumpulan koneksi mungkin tidak berfungsi saat koneksi dibuka di bawah identitas pengguna tertentu. Untuk diskusi tentang masalah yang terlibat, lihat Keamanan Aplikasi Multi-Tingkat dan Peniruan dan Delegasi Klien.

Kompleksitas dan Skalabilitas Kebijakan Otorisasi Role-Based

Kebijakan keamanan apa pun yang Anda terapkan hanya akan seefektif implementasinya oleh administrator sistem yang menyebarkan aplikasi Anda. Jika administrator membuat kesalahan dalam menetapkan pengguna ke peran yang benar sesuai dengan kebijakan keamanan Anda, kebijakan Anda tidak akan berfungsi seperti yang dimaksudkan. Masalah kemungkinan besar terjadi dalam keadaan berikut:

  • Anda telah membuat kebijakan berbasis peran yang sangat rumit, dengan banyak peran dan pemetaan pengguna ke banyak peran.
  • Anda membuat peran dengan kriteria ambigu untuk siapa yang harus menjadi milik mereka.
  • Ada banyak pengguna di situs tempat aplikasi diinstal, dan pengguna sering berpindah dalam organisasi, berubah sehubungan dengan peran yang telah Anda buat.
  • Ada banyak administrator di situs tempat aplikasi diinstal, dengan pembagian tanggung jawab, sehingga administrator yang terbiasa dengan persyaratan keamanan aplikasi Anda berpotensi tidak terbiasa dengan kelompok besar pengguna yang harus menggunakannya. Hal ini menjadi perhatian khusus saat pengguna berpindah dalam organisasi—informasi tersebut perlu dikomunikasikan dengan baik.

Selain itu, karena jumlah peran yang ditetapkan ke aplikasi meningkat, begitu juga jumlah waktu yang harus dihabiskan COM+ untuk mencari keanggotaan penelepon dalam peran tersebut, dengan kemungkinan penurunan performa.

Untuk mengelola kompleksitas dan mengurangi masalah ini, Anda dapat menggunakan panduan berikut:

  • Pilih nama peran yang deskriptif sendiri. Buat senyaman mungkin pengguna mana yang harus termasuk dalam peran mana.
  • Buat kebijakan berbasis peran Anda sesingkat mungkin (dan tidak lebih sederhana). Pilih peran sesediam mungkin, sambil mempertahankan kebijakan yang efektif.
  • Dokumentasikan dengan jelas kebijakan berbasis peran yang Anda buat untuk administrator, apakah keanggotaan peran sudah jelas (bagi Anda). Secara khusus, gunakan bidang deskripsi yang tersedia untuk setiap peran untuk menjelaskan niat peran. Jika Anda tidak dapat menggambarkan secara umum siapa yang harus termasuk dalam peran dalam beberapa kalimat, itu mungkin terlalu rumit.
  • Sangat menyarankan agar administrator aplikasi Anda mengisi peran dengan grup pengguna alih-alih pengguna individual. Ini adalah solusi yang jauh lebih dapat diskalakan. Ini memudahkan untuk menetapkan ulang atau menghapus pengguna saat mereka bergerak dalam organisasi dan mengisolasi administrator dari sejumlah pengawasan dan masalah dalam komunikasi.

Batas Keamanan

Informasi Konteks Panggilan Keamanan

Properti Konteks Keamanan

Menggunakan Peran untuk Otorisasi Klien