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.
Artikel ini dapat membantu Anda, sebagai pengembang, untuk merancang strategi izin aplikasi Anda untuk memberikan hak istimewa paling sedikit. Sebelum melanjutkan, lihat artikel perlindungan API untuk mempelajari praktik terbaik untuk pendaftaran, izin, dan akses.
Mari kita lihat bagaimana API yang dilindungi oleh platform identitas Microsoft menggunakan kerangka kerja persetujuan identitas Microsoft. Kami menggunakan Microsoft Graph API sebagai contoh kami karena membuat penggunaan paling ekstensif dari kerangka kerja persetujuan platform identitas Microsoft.
Konvensi penamaan untuk nama hak akses
Tim Microsoft Graph membuat konvensi penamaan untuk nama izin untuk mempermudah menyambungkan izin ke akses sumber daya yang diaktifkan izin. Nama izin Microsoft Graph mematuhi pola resource.operation.constraint sederhana. Dua operasi utama adalah Read and ReadWrite (yang mencakup pembaruan dan penghapusan).
Elemen batasan memengaruhi tingkat akses yang dimiliki aplikasi Anda dalam direktori. Microsoft Graph mendukung batasan ini:
- Semua memberikan izin bagi aplikasi Anda untuk melakukan operasi pada semua sumber daya dari jenis yang ditentukan dalam direktori.
- Berbagi memberikan izin bagi aplikasi Anda untuk melakukan operasi pada sumber daya yang telah dibagikan oleh pengguna lain kepada pengguna yang sedang masuk.
- AppFolder memberikan izin bagi aplikasi Anda untuk membaca dan menulis file di folder khusus di OneDrive. Batasan ini hanya diekspos pada objek izin File dan hanya valid untuk akun Microsoft.
- Jika Anda menentukan Tidak ada batasan, aplikasi Anda hanya dapat melakukan operasi pada sumber daya yang dimiliki pengguna yang masuk.
Akses dan operasi terhadap sumber daya tertentu
Mari kita lihat beberapa izin, atau cakupan, untuk objek pengguna di Microsoft Graph untuk melihat bagaimana perancang Microsoft API mengaktifkan akses dan operasi tertentu terhadap sumber daya tertentu:
| Persetujuan | Tampilkan String | Deskripsi |
|---|---|---|
User.Read |
Masuk dan membaca profil pengguna | Memungkinkan pengguna untuk masuk ke aplikasi dan memungkinkan aplikasi membaca profil pengguna yang masuk. Ini juga memungkinkan aplikasi untuk membaca informasi perusahaan dasar pengguna yang masuk. |
User.ReadWrite |
Membaca dan menulis akses ke profil pengguna | Memungkinkan aplikasi membaca profil lengkap pengguna yang masuk. Ini juga memungkinkan aplikasi untuk memperbarui informasi profil pengguna yang masuk atas nama mereka. |
User.Read dan User.ReadWrite ada (dibandingkan dengan satu izin seperti User.Access itu tidak ada) sehingga aplikasi dapat mengikuti prinsip Zero Trust dengan hak istimewa paling sedikit. Jika pengembang tidak memiliki persyaratan dan kode untuk memperbarui profil pengguna, aplikasi tidak meminta User.ReadWrite. Oleh karena itu, aktor jahat tidak dapat membahayakan aplikasi dan menggunakannya untuk mengubah data.
Perhatikan bahwa User.Read tidak hanya memberikan akses aplikasi ke objek pengguna. Setiap izin mewakili rentang operasi tertentu. Penting bahwa pengembang dan admin membaca deskripsi izin untuk melihat dengan tepat apa yang memungkinkan izin tertentu.
User.Read, selain mengaktifkan membaca profil lengkap pengguna saat ini, memungkinkan aplikasi untuk melihat informasi dasar dari objek Organisasi di Microsoft Graph.
Mari kita lihat izin lain:
| Persetujuan | Tampilkan String | Deskripsi |
|---|---|---|
User.ReadBasic.All |
Membaca profil dasar semua pengguna | Memungkinkan aplikasi membaca sekumpulan properti profil dasar pengguna lain di organisasi Anda atas nama pengguna yang masuk. Termasuk nama tampilan, nama depan dan keluarga, alamat email, ekstensi terbuka, dan foto. Memungkinkan aplikasi membaca profil lengkap pengguna yang masuk. |
Rentang operasi User.ReadBasic.All dimulai dengan segala sesuatu yang dilakukan User.Read. Selain itu, Anda dapat mengakses nama tampilan, nama depan dan keluarga, alamat email, foto, dan ekstensi terbuka untuk pengguna organisasi lain. Rentang operasi tertentu memungkinkan aplikasi untuk memiliki UI pemilih orang yang baik dan merupakan contoh perancang API menggunakan izin untuk mengaktifkan berbagai operasi tertentu.
Mari kita lihat beberapa izin lagi pada objek pengguna Microsoft Graph:
| Persetujuan | Tampilkan String | Deskripsi |
|---|---|---|
User.Read.All |
Membaca profil lengkap semua pengguna | Memungkinkan aplikasi membaca kumpulan lengkap properti profil, laporan, dan manajer pengguna lain di organisasi Anda, atas nama pengguna yang masuk. |
User.ReadWrite.All |
Membaca dan menulis profil lengkap semua pengguna | Memungkinkan aplikasi membaca dan menulis kumpulan lengkap properti profil, laporan, dan manajer pengguna lain di organisasi Anda, atas nama pengguna yang masuk. Juga memungkinkan aplikasi untuk membuat dan menghapus pengguna dan mengatur ulang kata sandi pengguna atas nama pengguna yang masuk. |
Seperti halnya dengan User.Read dan User.ReadWrite, User.Read.All dan User.ReadWrite.All adalah izin yang berbeda yang memungkinkan aplikasi untuk mengikuti prinsip Zero Trust dengan hak istimewa paling sedikit.
User.Read.All menarik karena setiap pengguna dalam organisasi memiliki kemampuan ini (misalnya, membuka Outlook, naik dan turun rantai pelaporan). Anda, sebagai individu, dapat melihat profil pengguna lengkap setiap pengguna lain di organisasi Anda. Namun, perancang Microsoft Graph API memutuskan bahwa hanya admin yang harus mengizinkan aplikasi untuk melakukan operasi yang sama karena User.Read.All menyertakan hierarki organisasi penyewa. Jika pelaku jahat mengakses informasi ini, mereka dapat memasang serangan phishing yang ditargetkan di mana email phishing berasal dari manajer seseorang atau manajer manajer mereka.
User.ReadWrite.All adalah cakupan operasi yang kuat. Aplikasi dengan izin ini dapat memperbarui, atau bahkan menghapus, setiap pengguna di penyewa. Sebagai izin yang didelegasikan, saat pengguna berada di depan aplikasi, aplikasi hanya dapat melakukan apa yang dapat dilakukan pengguna saat ini. Pengguna reguler tidak dapat memperbarui atau menghapus pengguna lain terlepas dari izin aplikasi. Namun, ketika admin penyewa menggunakan aplikasi, mereka dapat melakukan operasi ini. Saat Anda memutuskan untuk memberikan atau menolak izin ini, evaluasi aplikasi Anda dengan mempertimbangkan pengguna admin tenant.
Izin yang memerlukan persetujuan admin
Mengingat kekuatan User.Read.All dan User.ReadWrite.All, perancang Microsoft Graph API menunjuk izin ini sebagai memerlukan persetujuan admin. Mari kita tambahkan kolom Admin? ke tabel izin kami untuk menunjukkan kapan izin memerlukan persetujuan admin:
| Persetujuan | Tampilkan String | Deskripsi | Admin? |
|---|---|---|---|
User.Read |
Masuk dan membaca profil pengguna | Memungkinkan pengguna untuk masuk ke aplikasi dan memungkinkan aplikasi membaca profil pengguna yang masuk. Ini juga memungkinkan aplikasi untuk membaca informasi perusahaan dasar pengguna yang masuk. | No |
User.ReadWrite |
Membaca dan menulis akses ke profil pengguna | Memungkinkan aplikasi membaca profil lengkap pengguna yang masuk. Ini juga memungkinkan aplikasi untuk memperbarui informasi profil pengguna yang masuk atas nama mereka. | No |
User.ReadBasic.All |
Membaca profil dasar semua pengguna | Memungkinkan aplikasi membaca sekumpulan properti profil dasar pengguna lain di organisasi Anda atas nama pengguna yang masuk. Termasuk nama tampilan, nama depan dan keluarga, alamat email, ekstensi terbuka, dan foto. Memungkinkan aplikasi membaca profil lengkap pengguna yang masuk. | No |
User.Read.All |
Membaca profil lengkap semua pengguna | Memungkinkan aplikasi membaca kumpulan lengkap properti profil, laporan, dan manajer pengguna lain di organisasi Anda, atas nama pengguna yang masuk. | Yes |
User.ReadWrite.All |
Membaca dan menulis profil lengkap semua pengguna | Memungkinkan aplikasi membaca dan menulis kumpulan lengkap properti profil, laporan, dan manajer pengguna lain di organisasi Anda, atas nama pengguna yang masuk. Juga memungkinkan aplikasi untuk membuat dan menghapus pengguna dan mengatur ulang kata sandi pengguna atas nama pengguna yang masuk. | Yes |
Seperti yang ditunjukkan dalam artikel Meminta izin yang memerlukan persetujuan administratif, administrator penyewa dapat mengabaikan persyaratan dan menetapkan setiap atau semua perizinan aplikasi di penyewa mereka sebagai memerlukan persetujuan admin. Desain aplikasi Anda untuk menangani dengan baik saat Anda tidak menerima token dari permintaan Anda. Kurangnya persetujuan adalah salah satu dari banyak alasan aplikasi Anda mungkin tidak menerima token.
Langkah berikutnya
- Memanggil API dari API lain membantu Anda memastikan Zero Trust saat Anda memiliki satu API yang perlu memanggil API lain dan mengembangkan aplikasi Anda dengan aman saat bekerja atas nama pengguna.
- Memperoleh otorisasi untuk mengakses sumber daya membantu Anda memahami cara terbaik memastikan Zero Trust saat memperoleh izin akses sumber daya untuk aplikasi Anda.
- Menyesuaikan token menjelaskan informasi yang dapat Anda terima di token Microsoft Entra. Ini menjelaskan cara menyesuaikan token untuk meningkatkan fleksibilitas dan kontrol sambil meningkatkan keamanan Zero Trust aplikasi dengan hak istimewa paling sedikit.
- Mengonfigurasi klaim grup dan peran aplikasi dalam token menunjukkan kepada Anda cara mengonfigurasi aplikasi dengan definisi peran aplikasi dan menetapkan grup keamanan ke peran aplikasi. Metode ini membantu meningkatkan fleksibilitas dan kontrol sekaligus meningkatkan keamanan Zero Trust aplikasi dengan hak istimewa paling sedikit.
- Meminta izin yang memerlukan persetujuan administratif menjelaskan izin dan pengalaman persetujuan saat izin aplikasi memerlukan persetujuan administratif.
- Dalam Mulai Cepat ini: Lindungi API web dengan platform identitas Microsoft, unduh dan jalankan sampel kode yang menunjukkan cara melindungi API web ASP.NET.
- Dalam Tutorial ini - Transformasi dan lindungi API Anda di Azure API Management, pelajari tentang mengonfigurasi kebijakan umum untuk menyembunyikan info tumpukan teknologi dan URL asli di isi respons HTTP API.
- Praktik terbaik otorisasi membantu Anda menerapkan model otorisasi, izin, dan persetujuan terbaik untuk aplikasi Anda.