Menerapkan kontrol akses berbasis peran
Kontrol akses berbasis peran (RBAC) memungkinkan pengguna atau grup untuk memiliki izin khusus untuk mengakses dan mengelola sumber daya. Biasanya, menerapkan RBAC untuk melindungi sebuah sumber daya termasuk melindungi aplikasi web, aplikasi halaman-tunggal (SPA), atau sebuah API. Perlindungan ini dapat diterapkan untuk seluruh aplikasi atau API, area dan fitur, atau metode API tertentu. Untuk informasi selengkapnya tentang dasar-dasar otorisasi, lihat Dasar-dasar otorisasi.
Seperti yang dibahas dalam Kontrol akses berbasis peran untuk pengembang aplikasi, ada tiga cara untuk menerapkan RBAC menggunakan platform identitas Microsoft:
- Peran Aplikasi – menggunakan fitur Peran Aplikasi di sebuah aplikasi menggunakan logika di dalam aplikasi untuk menginterpretasikan penetapan peran aplikasi yang masuk.
- Grup – menggunakan penetapan grup identitas masuk menggunakan logika di dalam aplikasi untuk menginterpretasikan penetapan grup.
- Penyimpanan Data Kustom – mengambil dan menginterpretasikan penetapan peran menggunakan logika di dalam aplikasi.
Pendekatan yang disukai adalah menggunakan Peran Aplikasi karena paling mudah diterapkan. Pendekatan ini didukung langsung oleh SDK yang digunakan dalam pembangunan aplikasi yang memanfaatkan platform identitas Microsoft. Untuk informasi selengkapnya tentang cara memilih pendekatan, lihat Memilih pendekatan.
Menentukan peran aplikasi
Langkah pertama untuk menerapkan RBAC untuk sebuah aplikasi adalah menentukan peran yang dibutuhkan oleh aplikasi, dan menetapkan pengguna atau grup ke dalamnya. Proses ini dijelaskan di Langkah-langkah: Menambahkan peran aplikasi ke aplikasi Anda dan menerimanya di token. Setelah menentukan peran aplikasi dan menetapkan pengguna atau grup kepada mereka, akses penetapan peran di dalam token yang masuk ke aplikasi dan ambil tindakan yang sesuai.
Menerapkan RBAC di dalam ASP.NET Core
ASP.NET Core mendukung penambahan RBAC ke aplikasi web ASP.NET Core atau API web. Menambahkan RBAC memungkinkan penerapan yang mudah dengan menggunakan pemeriksaan peran dengan atribut Authorize ASP.NET Core. Hal ini juga memungkinkan penggunaan dukungan ASP.NET Core untuk pemeriksaan peran berbasis-kebijakan.
Aplikasi web ASP.NET Core MVC
Menerapkan RBAC dalam aplikasi web ASP.NET Core MVC sangat mudah. Hal ini terutama melibatkan penggunaan atribut Authorize untuk menentukan peran mana yang harus diizinkan untuk mengakses pengontrol atau tindakan tertentu di pengontrol. Ikuti langkah-langkah ini untuk menerapkan RBAC di dalam aplikasi ASP.NET Core MVC:
Buat pendaftaran aplikasi dengan peran dan peran aplikasi sebagaimana diuraikan dalam Tentukan peran aplikasi di atas.
Lakukan salah satu langkah berikut:
Buat proyek aplikasi web ASP.NET Core MVC baru menggunakan dotnet cli.
--auth
Tentukan bendera dengan untukSingleOrg
autentikasi penyewa tunggal atauMultiOrg
untuk autentikasi multi-penyewa,--client-id
bendera dengan klien jika dari pendaftaran aplikasi, dan--tenant-id
bendera dengan penyewa jika dari penyewa Microsoft Entra:dotnet new mvc --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>
Tambahkan pustaka Microsoft.Identity.Web dan Microsoft.Identity.Web.UI ke proyek ASP.NET Core MVC yang sudah ada:
dotnet add package Microsoft.Identity.Web dotnet add package Microsoft.Identity.Web.UI
Ikuti petunjuk yang ditentukan di Mulai Cepat: Tambahkan masuk dengan Microsoft ke aplikasi web ASP.NET Core untuk menambahkan autentikasi ke aplikasi Anda.
Tambahkan pemeriksaan peran pada tindakan pengontrol sebagaimana diuraikan dalam Menambahkan pemeriksaan peran.
Uji aplikasi dengan mencoba mengakses salah satu rute MVC yang dilindungi.
web API ASP.NET Core
Menerapkan RBAC di web API ASP.NET Core terutama melibatkan penggunaan atribut Authorize untuk menentukan peran mana yang harus diizinkan untuk mengakses pengontrol atau tindakan tertentu di pengontrol. Ikuti langkah-langkah berikut untuk menerapkan RBAC di web API ASP.NET Core:
Buat pendaftaran aplikasi dengan peran dan peran aplikasi sebagaimana diuraikan dalam Tentukan peran aplikasi di atas.
Lakukan salah satu langkah berikut:
Buat proyek web API ASP.NET Core MVC baru menggunakan dotnet cli.
--auth
Tentukan bendera dengan untukSingleOrg
autentikasi penyewa tunggal atauMultiOrg
untuk autentikasi multi-penyewa,--client-id
bendera dengan klien jika dari pendaftaran aplikasi, dan--tenant-id
bendera dengan penyewa jika dari penyewa Microsoft Entra:dotnet new webapi --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>
Tambahkan pustaka Microsoft.Identity.Web dan Swashbuckle.AspNetCore ke proyek web API ASP.NET Core yang sudah ada:
dotnet add package Microsoft.Identity.Web dotnet add package Swashbuckle.AspNetCore
Ikuti petunjuk yang ditentukan di Mulai Cepat: Tambahkan masuk dengan Microsoft ke aplikasi web ASP.NET Core untuk menambahkan autentikasi ke aplikasi Anda.
Tambahkan pemeriksaan peran pada tindakan pengontrol sebagaimana diuraikan dalam Menambahkan pemeriksaan peran.
Hubungi API dari aplikasi klien. Lihat Aplikasi satu halaman Angular memanggil API web ASP.NET Core dan menggunakan Peran Aplikasi untuk menerapkan Kontrol Akses Berbasis Peran untuk sampel ujung ke ujung.
Menerapkan RBAC di platform lainnya
SPA Sudut
Menerapkan RBAC dalam Angular SPA melibatkan penggunaan Microsoft Authentication Library for Angular untuk mengotorisasi akses ke rute Angular yang terkandung dalam aplikasi. Contoh ditampilkan dalam Sampel MSAL Angular v3.
Catatan
Implementasi RBAC sisi klien harus dipasangkan dengan RBAC sisi server untuk mencegah aplikasi yang tidak sah mengakses sumber daya sensitif.
Node.js dengan aplikasi Ekspres
Menerapkan RBAC dalam Node.js dengan aplikasi ekspres melibatkan penggunaan MSAL untuk mengotorisasi akses ke rute Ekspres yang ada dalam aplikasi. Contoh ditampilkan di dalam sampel Memungkinkan aplikasi web Node.js untuk masuk ke pengguna dan memanggil API dengan platform identitas Microsoft.
Langkah berikutnya
- Baca selengkapnya di izin dan persetujuan di platform identitas Microsoft.
- Baca selengkapnya di kontrol akses berbasis peran untuk pengembang aplikasi.