Kontrol akses berbasis peran untuk pengembang aplikasi

Kontrol akses berbasis peran (RBAC) memungkinkan pengguna atau grup tertentu memiliki izin khusus untuk mengakses dan mengelola sumber daya. RBAC aplikasi berbeda dari kontrol akses berbasis peran Azure dan kontrol akses berbasis peran Microsoft Entra. Peran kustom Azure dan peran bawaan keduanya merupakan bagian dari Azure RBAC, yang digunakan untuk membantu mengelola sumber daya Azure. Microsoft Entra RBAC digunakan untuk mengelola sumber daya Microsoft Entra. Artikel ini menjelaskan RBAC khusus aplikasi. Untuk informasi tentang menerapkan RBAC khusus aplikasi, lihat Cara menambahkan peran aplikasi ke aplikasi Anda dan menerimanya dalam token.

Definisi peran

RBAC adalah mekanisme populer untuk menegakkan otorisasi dalam aplikasi. Ketika sebuah organisasi menggunakan RBAC, pengembang aplikasi mendefinisikan peran daripada mengotorisasi pengguna individu atau grup. Administrator kemudian dapat menetapkan peran ke pengguna dan grup yang berbeda untuk mengontrol siapa yang memiliki akses ke konten dan fungsionalitas.

RBAC membantu pengembang aplikasi untuk mengelola sumber daya dan penggunaannya. RBAC juga memungkinkan pengembang aplikasi untuk mengontrol area aplikasi yang dapat diakses pengguna. Administrator dapat mengontrol pengguna mana yang memiliki akses ke aplikasi menggunakan properti Penugasan pengguna yang diperlukan. Pengembang perlu mempertanyakan pengguna tertentu dalam aplikasi dan apa yang dapat dilakukan pengguna dalam aplikasi.

Pengembang aplikasi terlebih dahulu membuat definisi peran dalam bagian pendaftaran aplikasi di pusat admin Microsoft Entra. Definisi peran mencakup nilai yang dikembalikan untuk pengguna yang ditugaskan untuk peran itu. Seorang pengembang kemudian dapat menggunakan nilai ini untuk menerapkan logika aplikasi untuk menentukan apa yang dapat atau tidak dapat dilakukan pengguna tersebut dalam suatu aplikasi.

Opsi (kontrol akses berbasis peran) RBAC

Panduan berikut harus diterapkan saat mempertimbangkan termasuk otorisasi kontrol akses berbasis peran dalam aplikasi:

  • Tentukan peran yang diperlukan untuk kebutuhan otorisasi aplikasi.
  • Terapkan, simpan, dan ambil peran yang bersangkutan untuk pengguna yang diautentikasi.
  • Tentukan perilaku aplikasi berdasarkan peran yang ditetapkan untuk pengguna saat ini.

Setelah peran ditentukan, platform identitas Microsoft mendukung beberapa solusi berbeda yang dapat digunakan untuk menerapkan, menyimpan, dan mengambil informasi peran untuk pengguna yang diautentikasi. Solusi ini termasuk peran aplikasi, grup Microsoft Entra, dan penggunaan datastore kustom untuk informasi peran pengguna.

Pengembang memiliki fleksibilitas untuk memberikan implementasi mereka sendiri untuk bagaimana tugas peran harus ditafsirkan sebagai izin aplikasi. Interpretasi izin ini dapat melibatkan penggunaan middleware atau opsi lain yang disediakan oleh platform aplikasi atau pustaka terkait. Aplikasi biasanya menerima informasi peran pengguna sebagai klaim dan kemudian memutuskan izin pengguna berdasarkan klaim tersebut.

Peran aplikasi

MICROSOFT Entra ID memungkinkan Anda menentukan peran aplikasi untuk aplikasi Anda dan menetapkan peran tersebut kepada pengguna dan aplikasi lainnya. Peran yang Anda tetapkan kepada pengguna atau aplikasi menentukan tingkat akses mereka ke sumber daya dan operasi di aplikasi Anda.

Saat ID Microsoft Entra mengeluarkan token akses untuk pengguna atau aplikasi yang diautentikasi, ID tersebut menyertakan nama peran yang telah Anda tetapkan entitasnya (pengguna atau aplikasi) dalam klaim token roles akses. Aplikasi seperti API web yang menerima token akses tersebut dalam permintaan kemudian dapat membuat keputusan otorisasi berdasarkan nilai dalam klaim roles.

Grup

Pengembang juga dapat menggunakan grup Microsoft Entra untuk menerapkan RBAC dalam aplikasi mereka, di mana keanggotaan pengguna dalam grup tertentu ditafsirkan sebagai keanggotaan peran mereka. Saat organisasi menggunakan grup, token menyertakan klaim grup. Klaim grup menentukan pengidentifikasi semua grup pengguna yang ditetapkan dalam penyewa.

Penting

Ketika bekerja dengan kelompok, pengembang perlu menyadari konsep klaim kelebihan. Secara default, jika pengguna adalah anggota lebih dari batas kelebihan (150 untuk token SAML, 200 untuk token JWT, 6 jika menggunakan alur implisit), ID Microsoft Entra tidak mengeluarkan klaim grup dalam token. Sebagai gantinya, ini mencakup "klaim kelebihan penggunaan" dalam token yang menunjukkan bahwa konsumen token perlu meminta Microsoft Graph API untuk mengambil keanggotaan grup pengguna. Untuk informasi selengkapnya tentang bekerja dengan klaim kelebihan, lihat Klaim dalam token akses. Dimungkinkan untuk hanya memancarkan grup yang ditetapkan ke aplikasi, meskipun penugasan berbasis grup memerlukan edisi Microsoft Entra ID P1 atau P2.

Penyimpanan data kustom

Peran dan grup aplikasi menyimpan informasi tentang penetapan pengguna di direktori Microsoft Entra. Pilihan lain untuk mengelola informasi peran pengguna yang tersedia bagi pengembang adalah dengan menyimpan informasi di luar direktori di toko data khusus. Misalnya, dalam database SQL, penyimpanan Azure Table, atau Azure Cosmos DB for Table.

Menggunakan penyimpanan khusus memungkinkan pengembang melakukan penyesuaian dan kontrol ekstra atas cara menetapkan peran kepada pengguna dan cara menyatakannya. Namun, fleksibilitas ekstra juga memperkenalkan lebih banyak tanggung jawab. Misalnya, saat ini tidak ada mekanisme yang tersedia untuk menyertakan informasi ini dalam token yang dikembalikan dari ID Microsoft Entra. Aplikasi harus mengambil peran jika informasi peran dipertahankan di penyimpanan data kustom. Mengambil peran biasanya dilakukan menggunakan titik ekstensibilitas yang ditentukan di middleware yang tersedia untuk platform yang digunakan untuk mengembangkan aplikasi. Pengembang bertanggung jawab untuk mengamankan penyimpanan data khusus dengan benar.

Menggunakan kebijakan Azure AD B2C Custom, Anda dapat berinteraksi dengan penyimpanan data kustom dan menyertakan klaim kustom dalam token.

Pilih pendekatan

Secara umum, peran aplikasi adalah solusi yang direkomendasikan. Peran aplikasi menyediakan model pemrograman yang paling sederhana dan tujuan yang dibuat untuk implementasi RBAC. Namun, persyaratan aplikasi tertentu dapat menunjukkan bahwa pendekatan yang berbeda akan menjadi solusi yang lebih baik.

Pengembang dapat menggunakan peran aplikasi untuk mengontrol apakah pengguna dapat masuk ke aplikasi, atau aplikasi dapat memperoleh token akses untuk API web. Peran aplikasi lebih disukai daripada grup Microsoft Entra oleh pengembang ketika mereka ingin menjelaskan dan mengontrol parameter otorisasi dalam aplikasi mereka. Misalnya, aplikasi yang menggunakan grup untuk otorisasi putus di penyewa berikutnya karena pengidentifikasi dan nama grup bisa berbeda. Aplikasi yang menggunakan peran aplikasi tetap aman.

Meskipun peran aplikasi atau grup dapat digunakan untuk otorisasi, perbedaan utama di antara mereka dapat memengaruhi solusi terbaik untuk skenario tertentu.

Peran aplikasi Grup Microsoft Entra Penyimpanan data kustom
Model pemrograman Paling sederhana. Mereka khusus untuk aplikasi dan didefinisikan dalam pendaftaran aplikasi. Bergerak dengan aplikasi. Lebih kompleks. Pengidentifikasi grup bervariasi antara penyewa dan klaim kelebihan mungkin perlu dipertimbangkan. Grup tidak spesifik untuk aplikasi, tetapi untuk penyewa Microsoft Entra. Yang paling kompleks. Pengembang harus menerapkan cara-cara di mana informasi peran disimpan dan diambil.
Nilai peran statis antara penyewa Microsoft Entra Ya Tidak Tergantung pada implementasinya.
Nilai peran dapat digunakan dalam beberapa aplikasi Tidak (Kecuali konfigurasi peran diduplikasi di setiap pendaftaran aplikasi.) Ya Ya
Informasi yang disimpan dalam direktori Ya Ya Tidak
Informasi disampaikan melalui token Ya (klaim peran) Ya (Jika kelebihan, klaim grup mungkin perlu diambil saat runtime) Tidak (Diambil saat runtime melalui kode kustom.)
Masa pakai Berada di pendaftaran aplikasi di direktori. Dihapus ketika pendaftaran aplikasi dihapus. Berada di direktori. Tetap utuh bahkan jika pendaftaran aplikasi dihapus. Berada di penyimpanan data kustom. Tidak terikat dengan pendaftaran aplikasi.

Langkah berikutnya